默認狀況下, Linux會最多使用40%的可用內存做爲文件系統緩存。當超過這個閾值後,文件系統會把將緩存中的內存所有寫入磁盤, 致使後續的IO請求都是同步的。緩存
將緩存寫入磁盤時,有一個默認120秒的超時時間。 出現上面的問題的緣由是IO子系統的處理速度不夠快,不能在120秒將緩存中的數據所有寫入磁盤。異步
IO系統響應緩慢,致使愈來愈多的請求堆積,最終系統內存所有被佔用,致使系統失去響應。spa
根據應用程序狀況,對vm.dirty_ratio,vm.dirty_background_ratio兩個參數進行調優設置。 例如,推薦以下設置:操作系統
# sysctl -w vm.dirty_ratio=10blog
# sysctl -w vm.dirty_background_ratio=5進程
# sysctl -p內存
若是系統永久生效,修改/etc/sysctl.conf文件。加入以下兩行:同步
#vi /etc/sysctl.conf io
vm.dirty_background_ratio = 5pdf
vm.dirty_ratio = 10
重啓系統生效
附錄: