如何修复hung_task_timeout_secs 和 blocked for more than 120 seconds 的问题

现象,centos经常死机,cpu跑满

 

hung_task_timeout_secs的解决方案

说明

默认情况下,Linux使用高达40%的可用内存进行文件系统缓存。 达到此标记后,文件系统将所有未完成的数据刷新到磁盘,导致所有以下IO同步。 要将此数据刷新到磁盘,默认情况下有120秒的时间限制。 在这种情况下,IO子系统不够快,可以用120秒刷新数据。 由于IO子系统缓慢响应并提供更多请求,系统内存将被填满,从而导致上述错误,从而提供HTTP请求。

 

测试

我用以下方法测试了这个理论:

更改vm.dirty_ratio和vm.dirty_backgroud_ratio

sudo sysctl -w vm.dirty_ratio=10
sudo sysctl -w vm.dirty_background_ratio=5

提交更改

sudo sysctl -p

永久生效

编辑 vim /etc/sysctl.conf 文件,使它们在重新启动后使其永久保存。

sudo vi /etc/sysctl.conf

在底部添加2行

vm.dirty_background_ratio = 5
vm.dirty_ratio = 10

 

保存并退出。

sudo reboot

 

 

 

打赏

Share This!

在线客服
我们将24小时内回复。
2024-04-20 15:14:00
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
取消

选择聊天工具: