iostat -x 1
(查看设备级I/O统计)vmstat 1
(查看系统整体I/O情况)dstat --disk-util
(实时监控磁盘使用率)iotop -o
(查看进程级I/O使用情况)sar -d 1
(历史I/O数据收集)lsof +D /path
(查看特定目录下打开的文件)iotop
找出高I/O进程dmesg | grep -i error
fsck
检查文件系统smartctl -a /dev/sdX
调整I/O调度器:
# 查看当前调度器
cat /sys/block/sdX/queue/scheduler
# 修改为deadline或noop(SSD推荐)
echo deadline > /sys/block/sdX/queue/scheduler
优化内核参数:
# 增加脏页回写阈值
echo "vm.dirty_ratio = 20" >> /etc/sysctl.conf
echo "vm.dirty_background_ratio = 10" >> /etc/sysctl.conf
sysctl -p
使用LVM缓存或bcache:
日志轮转优化:
通过以上方法,您可以系统性地诊断和解决Linux系统中的磁盘I/O问题。