1. 調整I/O調度算法
I/O調度算法決定了磁盤請求的處理順序,不同算法適用于不同存儲介質。對于HDD(機械硬盤),Deadline調度器能最小化請求平均等待時間,適合處理大量隨機I/O;對于SSD(固態硬盤),NOOP(無操作)或Deadline調度器更合適,因為SSD無機械尋道時間,簡化調度邏輯可減少CPU負載。
操作步驟:
cat /sys/block/sda/queue/scheduler
(輸出包含noop、deadline等選項);echo deadline > /sys/block/sda/queue/scheduler
;/etc/default/grub
,在GRUB_CMDLINE_LINUX
行添加elevator=deadline
,運行grub2-mkconfig -o /boot/grub2/grub.cfg
并重啟系統。2. 優化文件系統選擇與參數
noatime
掛載選項:避免每次訪問文件都更新訪問時間,減少不必要的磁盤寫操作。編輯/etc/fstab
,將掛載選項改為defaults,noatime,nodiratime
(nodiratime
進一步禁用目錄訪問時間更新)。3. 利用緩存機制加速I/O
/dev/sdb1
)和原始卷(如/dev/sdc1
);lvcreate
命令創建緩存邏輯卷(如lvcreate -L 10G -n lv_cache centos
);lvconvert --type cache --cachevol /dev/centos/lv_cache /dev/centos/root
)。bcache-tools
,配置緩存設備和后端設備(如make-bcache -B /dev/sdc1 -C /dev/sdb1
),格式化并掛載bcache設備。4. 升級硬件提升基礎性能
5. 監控與分析磁盤性能
使用工具定位性能瓶頸,針對性優化:
yum install sysstat
;yum install iotop
;vmstat 1
查看每秒I/O等待時間);sar -d 1 5
查看最近5次磁盤活動)。6. 其他優化建議
e4defrag
(ext4)或xfs_fsr
(XFS)工具整理碎片;vm.dirty_ratio
(臟頁占比,默認20%)和vm.dirty_background_ratio
(后臺刷臟頁閾值,默認10%),減少磁盤I/O等待時間(如設置為vm.dirty_ratio=30
,vm.dirty_background_ratio=15
);fs.file-max
(最大文件描述符數),適合高并發文件訪問場景(如fs.file-max=65536
)。innodb_buffer_pool_size
)、使用連接池;rsize
/wsize
設置為65536),啟用客戶端緩存。