hung_task_timeout_secs和blocked for more than 120 seconds的解決方法


Linux系統出現hung_task_timeout_secs和blocked for more than 120 seconds的解決方法

Linux系統出現系統沒有響應。 在/var/log/message日志中出現大量的 “echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.” “blocked for more than 120 seconds”錯誤。

問題原因:

默認情況下, Linux會最多使用40%的可用內存作為文件系統緩存。當超過這個閾值后,文件系統會把將緩存中的內存全部寫入磁盤, 導致后續的IO請求都是同步的。將緩存寫入磁盤時,有一個默認120秒的超時時間。 出現上面的問題的原因是IO子系統的處理速度不夠快,不能在120秒將緩存中的數據全部寫入磁盤。IO系統響應緩慢,導致越來越多的請求堆積,最終系統內存全部被占用,導致系統失去響應。

解決方法:

根據應用程序情況,對vm.dirty_ratio,vm.dirty_background_ratio兩個參數進行調優設置。 例如,推薦如下設置:
# sysctl -w vm.dirty_ratio=10
# sysctl -w vm.dirty_background_ratio=5
# sysctl -p

如果系統永久生效,修改/etc/sysctl.conf文件。加入如下兩行:
#vi /etc/sysctl.conf

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

sysctl -p


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM