![Linux 冻结-如何找出是硬件还是软件导致的?](https://linux22.com/image/555518/Linux%20%E5%86%BB%E7%BB%93-%E5%A6%82%E4%BD%95%E6%89%BE%E5%87%BA%E6%98%AF%E7%A1%AC%E4%BB%B6%E8%BF%98%E6%98%AF%E8%BD%AF%E4%BB%B6%E5%AF%BC%E8%87%B4%E7%9A%84%EF%BC%9F.png)
几周前,我的 Linux 服务器(kubuntu 10.04)开始出现问题。
它在正常运行一段时间后就会冻结,时间大概在几分钟到几小时之间 - GUI 没有响应,鼠标或键盘也没有反应(甚至重新订阅),top
在 ssh 会话中停止更新,并且会话本身在超时后中止:
Read from remote host 10.1.1.9: Operation timed out
Connection to 10.1.1.9 closed.
当时,我认为是硬件问题,所以我开始更换越来越多的硬件 - 显卡、主板、CPU、RAM、硬盘、电源。现在我已经更换了整个机器,但它仍然冻结。
我检查了/var/log/messages
一些其他日志 - 其中根本没有任何线索。考虑到所有硬件都已更换,硬件问题似乎不太可能发生,但仍然有可能。
我已将机器精简到最低限度。我从 USB 启动器启动了 kubuntu live 系统,以只读方式安装了几个硬盘,并开始在它们上比较文件夹的差异。这似乎可以可靠地产生冻结。到目前为止,我还没有超过几个小时的正常运行时间。
我的服务器瘫痪了,这种情况已经持续了好几个星期了。我已经山穷水尽,只好绝望了。
我如何才能可靠地确定这是硬件问题还是软件问题?您将如何处理这样的问题?
答案1
由于您已经更换了这么多硬件,我假设您已经确定您的问题不是关于温度问题。
如果您尝试使用完全不同的发行版而不是 Kubuntu 10.04,结果会怎样?下载其他实时发行版,例如 openSUSE 或甚至某些 BSD 版本,看看它们是否也重现了冻结问题。这样您就可以确定这不是 Kubuntu 10.04 中的某种错误。
您正在比较的目录树下有多少数据?更重要的是,只有几个大文件还是有大量的小文件?
更换硬盘时,您是如何将数据从旧硬盘复制到另一个硬盘的?dd_rescue 还是某些映像程序?只是普通方法cp
?如果您使用某种映像程序或 dd_rescue,而原始文件系统以某种方式包含一些奇怪的损坏,那么差异处理是否会碰到损坏的区域并导致崩溃?这种情况很少见,但肯定是有可能的。就像闪电有可能击中您一样。
答案2
您需要获取崩溃转储并仔细查看。查看日志不会有帮助,因为在发生内核崩溃/错误时不会向日志写入任何内容。如果您有控制台访问权限,您可能会看到是否有崩溃消息。崩溃转储将包含内核环形缓冲区的内容(如果写入磁盘,您将在 dmesg 中看到的内容)。如果这没有帮助,您需要开始对转储进行全面分析
https://wiki.ubuntu.com/Kernel/CrashdumpRecipe?action=show&redirect=KernelTeam%2FCrashdumpRecipe
似乎是 ubuntu 的一个开始。谷歌搜索“redhat crash whitepaper”也会给你一些提示。
答案3
根据温度建议,尝试运行一些传感器监控软件,看看在冻结时它显示什么。
对于 KDE(因为您使用 Kubuntu:http://kde-look.org/content/show.php/Sensors-Monitor