{"id":25266187,"url":"https://github.com/foonerd/z890-edge-ti","last_synced_at":"2026-01-18T17:33:51.996Z","repository":{"id":276441290,"uuid":"928935195","full_name":"foonerd/z890-edge-ti","owner":"foonerd","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-08T09:20:53.000Z","size":168,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T02:42:18.007Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/foonerd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-07T14:06:59.000Z","updated_at":"2025-02-08T09:20:57.000Z","dependencies_parsed_at":"2025-02-08T09:36:53.708Z","dependency_job_id":null,"html_url":"https://github.com/foonerd/z890-edge-ti","commit_stats":null,"previous_names":["foonerd/z890-edge-ti"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/foonerd/z890-edge-ti","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fz890-edge-ti","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fz890-edge-ti/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fz890-edge-ti/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fz890-edge-ti/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/foonerd","download_url":"https://codeload.github.com/foonerd/z890-edge-ti/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/foonerd%2Fz890-edge-ti/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28544918,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T14:59:57.589Z","status":"ssl_error","status_checked_at":"2026-01-18T14:59:46.540Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-12T08:35:49.001Z","updated_at":"2026-01-18T17:33:51.978Z","avatar_url":"https://github.com/foonerd.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# RAID1 Performance Tuning for NVMe Drives\n\nThis repository contains configuration and tuning scripts for optimizing RAID1 performance on systems with NVMe drives. The focus is on maximizing the efficiency of RAID1 arrays using NVMe devices, particularly when configured for intensive workloads like GCC builds, virtualization, Docker, and other high-performance applications.\n\n## Hardware Setup\n\nThe repository is designed to work with the following hardware configuration:\n\n- **Motherboard**: MSI MPG Z890I EDGE TI WIFI\n- **CPU**: Intel i9 Ultra 285K (24 cores)\n- **RAM**: 96GB DDR5-6600\n- **Storage Configuration**:\n  - **RAID1 Array**:  \n    - `nvme1n1`: Samsung Electronics NVMe SSD Controller S4LV008 [Pascal]  \n    - `nvme2n1`: Samsung Electronics NVMe SSD Controller S4LV008 [Pascal]  \n  - **Root Storage**:  \n    - `nvme0n1`: Micron/Crucial Technology T700 NVMe SSD\n- **Operating System**: Ubuntu 24.04.01 with kernel 6.8.0-52-generic\n\n## Features and Optimizations\n\nThis repository provides a series of optimizations and settings for the RAID1 configuration, including:\n\n- **I/O Scheduler Optimizations**: Tweaks for `mq-deadline` and other performance improvements.\n- **Queue Depth Tuning**: Configuration of the `nr_requests` parameter for better queue depth management.\n- **Volatile Write Cache Management**: Enabling write-back caching on NVMe devices for improved write performance.\n- **Active State Power Management (ASPM)**: Power management settings to enhance device responsiveness and reduce latency.\n- **Sysctl and GRUB Configurations**: Kernel-level tweaks and tuning parameters to optimize system performance.\n- **File System Tuning**: Adjustments for ext4 file systems in RAID1 arrays for better throughput and I/O operations.\n\n## Setup Instructions\n\n### 1. Install Required Tools\nEnsure that the necessary tools for configuring and optimizing NVMe drives and RAID1 arrays are installed on your system:\n\n```bash\nsudo apt update\nsudo apt install nvme-cli smartmontools sysstat\n```\n\n### 2. Apply RAID1 and NVMe Optimizations\n\nTo optimize your system's performance with RAID1 and NVMe devices, you will need to configure the following:\n\n- **Tuning Parameters**: The relevant parameters are already defined in `/etc/sysctl.d/99-sysctl.conf`.\n- **RAID1 Optimization**: Apply RAID-specific optimizations using sysctl parameters (e.g., `dev.raid.speed_limit_max`).\n- **NVMe Device Optimization**: Follow the guidelines in `/etc/udev/rules.d/99-nvme-optimization.rules` to adjust device-specific settings like write-back cache and read-ahead buffers.\n\n### 3. Modify GRUB Configuration\n\nThe following kernel parameters are essential for optimal system performance with RAID1 and NVMe drives. Ensure that your GRUB configuration file includes these settings:\n\n```bash\nGRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash intel_pstate=performance pcie_aspm=force\"\n```\n\nThen update GRUB:\n\n```bash\nsudo update-grub\n```\n\n### 4. Enable/Modify udev Rules\n\nEnsure that udev rules are properly set up to automatically adjust NVMe and RAID1 settings at boot:\n\n```bash\nsudo cp 99-nvme-optimization.rules /etc/udev/rules.d/\n```\n\nAfter modifying or adding new udev rules, reload the udev rules:\n\n```bash\nsudo udevadm control --reload-rules\n```\n\n### 5. Verify Changes\n\nOnce all optimizations are applied, it's important to verify the changes:\n\n- **Check NVMe Settings**:  \n  Verify that the NVMe settings are correctly applied:\n  ```bash\n  sudo nvme get-feature -f 0x06 /dev/nvme1\n  sudo nvme get-feature -f 0x06 /dev/nvme2\n  ```\n\n- **Check RAID1 Settings**:  \n  Make sure that the RAID1 settings are as expected:\n  ```bash\n  sudo mdadm --detail /dev/md0\n  ```\n\n## Performance Testing\n\nUse tools like `fio` to test the impact of the optimizations:\n\n1. **Sequential Read/Write Test**:\n   ```bash\n   sudo fio --name=seq_read --directory=/volume1 --filename=fio_testfile --rw=read --bs=1M --size=4G --numjobs=4 --iodepth=32 --runtime=60 --group_reporting\n   ```\n\n2. **Random Read/Write Test**:\n   ```bash\n   sudo fio --name=rand_write --directory=/volume1 --filename=fio_testfile --rw=randwrite --bs=4K --size=4G --numjobs=4 --iodepth=32 --runtime=60 --group_reporting\n   ```\n\n## Conclusion\n\nThis repository provides a comprehensive set of optimizations and configurations aimed at improving the performance of RAID1 arrays with NVMe devices. By carefully adjusting kernel parameters, NVMe settings, and utilizing tools like `fio`, you can achieve significant improvements in throughput and I/O performance for high-demand workloads.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n\n### Customization Notes:\n\n1. **Hardware Configuration**: Ensure that the specifics of your hardware setup (such as motherboard model, CPU, and storage) are correctly reflected.\n2. **Performance Testing**: Depending on your workload, the `fio` parameters in the \"Performance Testing\" section may need to be adjusted to better reflect your use case.\n3. **Other Configuration Files**: If additional configuration files or scripts are required (e.g., for RAID management), provide further details in the repository.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoonerd%2Fz890-edge-ti","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffoonerd%2Fz890-edge-ti","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffoonerd%2Fz890-edge-ti/lists"}