系统hung_task_timeout_secs and blocked for more than 120 seconds
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了系统hung_task_timeout_secs and blocked for more than 120 seconds相关的知识,希望对你有一定的参考价值。
参考技术A "请教各位大佬一个问题,机器规格64C/256GB/14T,部署两个es实例,机器会突然出现ssh不通,但是ping可以通的情况,端口存在,但hung住了,会造成整个集群的通信阻塞,只有通过重启机器来解决。查看 /var/log/messages信息,发现信息hung_task_timeout_secs and blocked for more than 120 seconds。有大佬遇见过类似问题吗?"操作系统自动的flush cache中的数据到磁盘中时,由于和IO同步问题导致超时(120s)。
vm.dirty_ratio:
是绝对的脏数据限制,内存里的脏数据百分比不能超过这个值。如果脏数据超过这个数量,新的IO请求将会被阻挡,直到脏数据被写进磁盘。这是造成IO卡顿的重要原因,但这也是保证内存中不会存在过量脏数据的保护机制。
vm.dirty_background_ratio :
是内存可以填充“脏数据”的百分比。这些“脏数据”在稍后是会写入磁盘的,pdflush/flush/kdmflush这些后台进程会稍后清理脏数据。举一个例子,这个时候这个参数为10,我有32G内存,那么有3.2G的内存可以待着内存里,超过3.2G的话就会有后来进程来清理它。
vm.dirty_background_bytes和vm.dirty_bytes:
指定这些参数的另一种方法。如果设置bytes版本,则_ratio版本将变为0,反之亦然。
vm.dirty_expire_centisecs:
指定脏数据能存活的时间。当这个参数设置为30的时候,在这里它的值是30秒。当 pdflush/flush/kdmflush 进行起来时,它会检查是否有数据超过这个时限,如果有则会把它异步地写到磁盘中。毕竟数据在内存里待太久也会有丢失风险。
vm.dirty_writeback_centisecs:
指定多长时间 pdflush/flush/kdmflush 这些进程会起来一次。
可以通过降低cache的使用量,尽早,频繁高一些的把cache中的脏数据写到磁盘中,来避免这些问题。
张超大佬给出的调整参数:
网上有给出的调整参数:
以上是关于系统hung_task_timeout_secs and blocked for more than 120 seconds的主要内容,如果未能解决你的问题,请参考以下文章
"echo 0 /proc/sys/kernel/hung_task_timeout_secs" disable this message
报错echo 0 > /proc/sys/kernel/hung_task_timeout_secs disables this message.
linux主机hang住echo 0 > /proc/sys/kernel/hung_task_timeout_secs disables this message
more than 120 seconds|hung_task_timeout_secs 什么鬼?
hung_task_timeout_secs日志linux出现ssh无法登陆ping可以的解决方法
linux 出错 “INFO: task java: xxx blocked for more than 120 seconds.” 的3种解决方案