现象,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