1. 选择高性能RAID级别
RAID技术通过数据条带化、镜像或奇偶校验提升读写速度与冗余。根据需求选择合适级别:
mdadm工具创建RAID阵列,例如创建RAID 0:sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1。2. 优化分区对齐
分区不对齐会增加磁盘寻道时间,降低性能。确保分区起始扇区与磁盘物理扇区对齐(现代硬盘多为4K扇区),推荐起始扇区为2048的倍数(对应1MB边界)。使用parted工具进行对齐:
sudo parted /dev/sdb -- mklabel msdos # 创建MS-DOS分区表
sudo parted -a opt /dev/sdb -- mkpart primary 2048s 10GiB # 对齐分区(起始扇区为2048)
```。
**3. 使用LVM灵活管理存储**
LVM(逻辑卷管理)允许动态调整逻辑卷大小,支持跨多个物理磁盘的条带化(类似RAID 0),提升读写性能。创建LVM步骤:
- 初始化物理卷:`sudo pvcreate /dev/sdb1`;
- 创建卷组:`sudo vgcreate my_volume_group /dev/sdb1`;
- 创建逻辑卷(可选条带化,`-i`指定条带数,`-I`指定条带大小):`sudo lvcreate -i 2 -I 64 -L 10G -n my_lv my_volume_group`(`-i 2`表示使用2块磁盘条带化,`-I 64`表示条带大小为64KB);
- 格式化并挂载:`sudo mkfs.ext4 /dev/my_volume_group/my_lv`。
**4. 选择合适的文件系统并优化挂载选项**
- **文件系统选择**:
- **ext4**:兼容性好,适合大多数桌面和服务器场景;
- **XFS**:适合大容量存储和高性能需求(如数据库、视频编辑);
- **Btrfs**:支持透明压缩和快照,但性能略低于ext4/XFS(适合需要高级功能的场景)。
- **挂载选项优化**:
- `noatime`:不记录文件最后访问时间,减少磁盘I/O;
- `nodiratime`:不记录目录访问时间,提升目录操作性能;
- `commit=600`:调整日志提交间隔(默认5秒),减少频繁写操作(适合写密集型场景)。
在`/etc/fstab`中添加优化选项,例如:
```plaintext
UUID=your-uuid-here /mnt/my_partition ext4 defaults,noatime,nodiratime,commit=600 0 2
```。
**5. 调整内核I/O调度器**
根据工作负载选择合适的I/O调度器,优化磁盘请求处理顺序:
- **noop**:适用于SSD或虚拟机(无磁盘寻道时间,直接提交请求);
- **deadline**:适用于顺序访问(如视频流、数据库),平衡延迟与吞吐量;
- **bfq**:适用于随机访问(如文件服务器、桌面),注重公平性。
切换调度器命令(以deadline为例):
```bash
echo deadline | sudo tee /sys/block/sda/queue/scheduler # 临时生效
永久生效需修改/etc/default/grub中的GRUB_CMDLINE_LINUX参数,添加elevator=deadline,然后更新GRUB并重启。
6. 升级硬件提升基础性能
7. 监控与调优I/O性能
使用工具监控磁盘I/O状态,识别瓶颈并针对性优化:
sudo iostat -mx 1,每秒刷新一次);sudo iotop,需安装iotop包);sudo vmstat 1,关注bi(块输入)、bo(块输出)列)。