Linux系统的存储性能直接影响文件读写效率、应用响应速度乃至整体系统流畅度,当存储成为性能瓶颈时,系统会出现卡顿、延迟升高等问题,通过合理的优化手段可以显著提升存储性能,进而加快系统运行速度。

调整磁盘IO调度策略
Linux内核提供了多种磁盘IO调度算法,不同的调度策略适用于不同的存储设备和业务场景,选择合适的调度算法可以有效提升磁盘IO效率。
查看当前磁盘的调度策略可以使用以下命令:
# 查看sda磁盘当前的IO调度策略 cat /sys/block/sda/queue/scheduler
常见的调度算法说明如下:
- noop:适合SSD等固态存储,几乎不做调度,直接处理IO请求
- deadline:兼顾读写延迟,适合数据库等对IO延迟敏感的场景
- cfq:完全公平队列调度,适合多进程共享磁盘的通用场景
临时修改调度策略的命令如下,重启后会失效:
# 将sda磁盘的调度策略修改为deadline echo deadline > /sys/block/sda/queue/scheduler
如果需要永久生效,可以修改grub配置文件,在启动参数中添加elevator=deadline,然后更新grub配置即可。
优化文件系统参数
不同的文件系统在挂载时可以配置不同的参数,合理的挂载参数可以减少不必要的磁盘操作,提升读写性能。
以常用的ext4文件系统为例,常见的优化挂载参数如下:
| 参数 | 作用说明 |
|---|---|
| noatime | 不更新文件访问时间,减少写操作 |
| nodiratime | 不更新目录访问时间,进一步减少写操作 |
| data=writeback | 数据写入模式优化,提升写入性能,适合非关键数据场景 |
| barrier=0 | 关闭写入屏障,提升性能,但是断电时可能有数据丢失风险 |
修改/etc/fstab文件添加优化参数,示例如下:
# 原配置 /dev/sda1 / ext4 defaults 0 1 # 优化后配置 /dev/sda1 / ext4 defaults,noatime,nodiratime 0 1
修改完成后执行mount -a重新挂载即可生效。
合理配置系统缓存
Linux系统会使用空闲内存作为文件缓存,合理的缓存配置可以提升文件读写命中率,减少磁盘直接读写。
查看当前缓存使用情况可以使用free -h命令,缓存相关的内核参数可以通过/proc/sys/vm/目录下的文件调整:
dirty_ratio:系统内存中脏数据占比达到该值时,开始后台回写磁盘,默认是20,可以适当调低减少突发IOdirty_background_ratio:脏数据占比达到该值时,开始后台异步回写,默认是10,可以根据业务调整vfs_cache_pressure:控制内核回收目录项缓存和inode缓存的倾向,值越低越倾向于保留缓存,默认是100,可以调整为50提升缓存命中率
临时修改缓存参数的命令如下:
# 调整脏数据后台回写阈值 echo 5 > /proc/sys/vm/dirty_background_ratio # 调整缓存回收倾向 echo 50 > /proc/sys/vm/vfs_cache_pressure
如果需要永久生效,可以将参数写入/etc/sysctl.conf文件,然后执行sysctl -p生效。
清理无用数据与优化存储布局
存储空间中碎片过多或者存在大量无用数据,也会导致存储性能下降,定期清理可以维持存储性能。
首先可以清理系统内的无用文件,比如旧的日志文件、缓存文件、不需要的安装包等:
# 清理yum缓存(CentOS/RHEL系统) yum clean all # 清理apt缓存(Debian/Ubuntu系统) apt clean # 清理旧的内核文件 package-cleanup --oldkernels --count=2 -y
对于机械硬盘,可以定期进行磁盘碎片整理,ext4文件系统可以使用e4defrag工具:
# 整理/home目录的碎片 e4defrag /home
同时建议合理规划分区,将频繁读写的目录(比如/var/log、/tmp)单独分区,避免和系统分区相互影响IO性能。
其他实用优化技巧
除了上述方法,还有一些小技巧可以进一步提升存储性能:
- 如果是机械硬盘,启用
hdparm开启DMA和32位传输模式,提升磁盘传输效率 - 对于频繁读写的小文件场景,可以使用
tmpfs将部分目录挂载到内存中,比如将/tmp挂载为tmpfs - 避免在存储性能不足的磁盘上运行IO密集型应用,合理分配存储资源
- 定期监控磁盘IO状态,使用
iostat、iotop等工具定位IO瓶颈进程
通过以上多个维度的优化,可以有效提升Linux系统的存储性能,进而加快系统整体的运行速度,不同的场景可以选择对应的优化方法组合使用,达到最佳的效果。