我正在运行一个linux盒(Ubuntu),每隔几个月它就会结冰,我别无选择(SysRq和其他键盘快捷键不起作用),而是重新启动它,丢失所有的数据。
我想知道为什么内核没有杀死占用内存或CPU的进程(S)?
保持系统处于冻结/无响应状态有什么意义?
发布于 2018-01-16 21:44:10
如果当系统“冻结”时,SysRq键组合不能工作,并且您已经验证它们在系统正常运行时工作,那么问题要比资源耗尽更严重。可能是内核错误;可能是间歇性硬件问题。需要更多的信息。
如果系统是服务器级硬件,则可能有一个单独的管理处理器,可用于远程访问系统控制台、获取硬件问题警报或打开/关闭系统。甚至更便宜的服务器系统也可能有某种硬件错误日志。您可能需要ipmitool或特定于供应商的工具来访问它,但它可能会告诉您更多的东西。
发布于 2018-01-16 22:27:37
了解服务器的功能和资源是很有意义的;可能需要对某些配置进行调优,或者需要额外的资源来缓解服务器处于无响应状态的问题;或者经常在一段时间内监视和重新启动进程;您的帖子不清楚,这将是第一种方法。
但是,作为恢复没有响应的服务器的对策,有一种被称为“监视狗”的机制。
如果机器是物理的,您甚至可以购买linux内核支持的硬件看门狗。
一些iOT设备甚至带有一个已经内置在SoC中的看门狗。
对于物理服务器或VM,您可以--我过去也有--为有问题的服务器配置了软件监视狗(例如,学生服务器、正在计算的机器,甚至是躲避硬币挖掘(不是我自己!))--因为我宁愿重新启动,也不愿让这些服务没有响应。
软件看门狗基本上是一个周期性的中断,监视服务器的某些资源,以及一个与其对话的应用程序。当配置的验证失败和/或应用程序停止发送数据时,它将强制重新启动服务器。
什么是看门狗计时器?看门狗计时器是一种设备,如果它检测到系统挂起,就会触发系统重置。在系统上运行的程序应该通过编写“服务脉冲”来周期性地为看门狗计时器服务。如果在特定时间内未对该看门狗进行服务,则该看门狗假定系统已挂起,并触发系统重置。软狗是什么?通常,看门狗定时器是作为附加卡实现的,或者作为微控制器内的片上外围设备来实现.但是如果没有硬件看门狗,Linux内核可以提供一个使用内核定时器实现的软件监视狗。Linux看门狗机制在Linux中,看门狗驱动程序为用户空间提供字符驱动接口。当一些数据被写入到看门狗驱动程序时,看门狗驱动程序为看门狗硬件提供服务。用户空间应用程序定期向看门狗驱动程序写入一些数据,这取决于看门狗超时时间。如果由于某种原因,用户空间应用程序挂起,则监视狗设备不会得到服务,从而触发系统重置。通常,写入到看门狗驱动程序的应用程序是一个监视狗守护进程,它监视系统中的进程以及其他参数,如CPU利用率、内存利用率等等。软狗是如何工作的,当软狗驱动程序被打开时,软狗将内核计时器排在指定的计时器裕度之后过期。当一些数据被写入到驱动程序时,软狗驱动程序重新调度计时器.用户空间监视狗守护进程定期写入驱动程序,计时器被不断重新安排,因此永远不会调用计时器回调。如果看门狗守护进程停止写入驱动程序,则计时器过期,并调用回调。在计时器回调中,系统将重新启动。
另见Debian -包:看门狗-系统健康检查器和软件/硬件监视狗处理程序
看门狗程序每隔十秒钟就写一次/dev/监护仪。如果设备被打开,但没有在一分钟内写入,机器将重新启动。当内核具有“软件看门狗”支持( Debian内核中的标准支持)或机器配备了硬件看门狗时(在这种情况下,这个包也可以用来“宠爱”它,重置它的定时器),就可以使用这个特性。内核软件看门狗重新启动的能力将取决于机器的状态和中断。该看门狗工具本身运行几个健康检查,并采取适当的行动,如果系统不是良好的状态。
我还建议配置syslog守护进程,以便将日志发送到远程syslog服务器,以便在系统正常工作或不工作时对日志进行仔细阅读。
https://unix.stackexchange.com/questions/417618
复制相似问题