
pdflush 依 vm.dirty_background_ratio/vm.dirty_ratio 刷回磁碟。Bio 結構合併相鄰 Block 優化寫入Anticipatory:適合單碟桌面系統CFQ(預設):完全公平排隊,**極不適合資料庫**(DB 進程只能獲得公平份額)Deadline:依截止時間調度,近即時響應,吞吐佳,**資料庫磁碟首選**NOOP:單純 FIFO,不合併相鄰 I/O,**SSD 專用**(隨機/順序無差異,省 CPU)# 臨時修改(立即生效,重啟失效)
cat /sys/block/sda/queue/scheduler
echo deadline > /sys/block/sda/queue/scheduler
# 永久修改(需重啟)
# 編輯 /boot/grub/menu.lst,kernel 行加入 elevator=deadline
kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/ elevator=deadline rhgb quiet
iostat -d -m -x 2 3
# -d: 僅磁碟 -m: MB單位 -x: 擴展統計 2 3: 每2秒取樣3次

| 欄位 | 含義 | 異常閾值參考 |
|---|---|---|
tps | 每秒 I/O 請求數 | 視磁碟規格而定 |
r/s, w/s | 每秒讀/寫次數 | — |
rMB/s, wMB/s | 每秒讀/寫 MB 數 | 接近磁碟頂規 |
await | 平均 I/O 響應時間(ms),含佇列+服務 | > 10ms 偏高,> 20ms 嚴重 |
avgqu-sz | 平均 I/O 佇列長度 | 持續 > 10 疑似瓶頸 |
%util | 裝置忙碌百分比 | 接近 100% 表示飽和(多磁碟 RAID 除外) |
同時觀察 CPU %iowait 高企、avgqu-sz 大、await 高、%util 高,綜合判斷磁碟瓶頸。
vmstat 2:bi(讀入 Block/s)、bo(寫出 Block/s)sar -b 2 3:tps/rtps/wtps/bread/s/bwrtn/siotop:類 top 介面,依 I/O 排序,**快速定位佔用 I/O 最高的進程/執行緒**
iotop -k -u mysql 專看 mysql 用戶
案例:tps ~400、rMB/s ~5、wMB/s ~1、await < 5ms、%util > 80% → 響應正常但已繁忙。
noatime,nodiratime,選用 XFS 提升 TPS核心原則: 優化前必須搞清是隨機 I/O 多(上 RAID/SSD)還是順序 I/O 多(換更快控制器/帶寬),對症下藥。