![背景](https://linux22.com/image/131787/%E8%83%8C%E6%99%AF.png)
背景
几年来,我的至强工作站一直遇到冻结问题。对于许多事情来说,它们的速度快如闪电,但有时应用程序甚至桌面会无缘无故地冻结。
去年情况变得如此糟糕,我将整个工作站更换为新硬件,但新机器上问题仍然存在。两者都是从相同的 RHEL6 启动映像安装的。两者都配备了不错的 CPU、充足的内存以及与公司网络 gig-e 交换机的直接连接。原来的机器有一个SSD,新的机器变成了一块旋转的铁锈。在原来的机器上,我什至短暂地切换到了 RHEL7,但它的表现是一样的,而且我发现 Gnome 3 在可用性方面倒退了一步,所以我重新安装了 RHEL6。
我没有对我的工作站的根访问权限,但我确实有能力通过以下方式使用其他软件模块。
问题如何体现
当运行我的 Eclipse 开发环境时,该问题最为严重(并且最容易重现)。通常,仅保存文件或通过 eGit 提交更改就会导致整个 Eclipse 停止响应 10 到 30 秒。发生这种情况时,我双击标题栏两次以恢复并最大化窗口,然后等待窗口重新绘制,然后才能继续工作。
我使用 synergy 与我的 Windows 笔记本电脑共享我的 Linux 工作站键盘和鼠标。有时整个桌面都会冻结,鼠标指针会弹回到工作站,我将无法控制笔记本电脑,直到工作站解冻。
我还发现 Firefox 出现冻结问题,每 30 秒就会冻结 10 秒,令人沮丧,在冻结期间我无法滚动或切换选项卡。现在它只是偶尔发生(在写这篇文章时发生过一次)。
虽然不像其他问题那么常见,但我也在 bash 命令行上看到过问题。仅按 Enter 键而不执行任何命令可能需要 10 到 30 秒才能显示后续提示。
到目前为止我尝试过的
我监控了应用程序冻结期间的 CPU 和 IO 使用情况,并且使用情况似乎很少。显然,当整个桌面冻结时,系统监视器和top
命令行等监控工具也会冻结,因此很难看到当时发生了什么。
我尝试将 Eclipse 应用程序移动到本地磁盘,并符号链接~/.eclipse
到本地磁盘上的目录,但这并没有产生显着差异。无论我的 Eclipse 工作区位于本地驱动器还是共享之一,也会出现该问题nfs
。
我尝试在 Eclipse 中跟踪文件访问,以尽量减少网络文件访问,但这并没有表明任何特定问题。
然而,调整我strace
以包含子进程,我在每次冻结时看到很多消息,其形式为:
[pid 13513] --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR, si_addr=0x7fe7db165000} ---
不过,我不确定如何进一步调查这些访问错误。
我尝试从头开始创建一个新的 Firefox 配置文件并使用它,但这并没有真正的区别。我无法将我的 Firefox 配置文件移动到本地磁盘,因为我需要在网络上的其他计算机上工作时能够访问它们。这些其他机器似乎没有与我在个人工作站上看到的相同问题,但我很少一次使用它们超过几个小时。
我尝试在我们的文件系统(本地和网络)上运行基准测试,但我发现的工具似乎集中在平均传输上,我怀疑这可能与更糟糕的情况/延迟相关,并且这些似乎被事实平均掉了大多数转移是快速地。
查看以下问题的答案如何找出导致我的机器冻结的原因?我可以确认本地文件系统是ext4
(在 LVM 上),而网络文件系统是 all nfs
,并且我的机器没有使用 LUKS。
看着我可以尝试引起计算机冻结以隔离导致冻结的原因吗?让我想起这个问题在许多内核版本、redhat 版本和 Nvidia Quadro 驱动程序中都持续存在。
我的怀疑
我一直怀疑我的问题与网络有关。但我不确定如何最好地进行调查。
我知道,如果我因任何原因失去网络连接,整个机器将冻结,直到网络恢复。我以前从未见过这种情况,但我们的系统似乎假设主目录和应用程序服务器共享始终可用且响应迅速。
我的问题
我需要注意什么才能弄清楚我的机器为什么会这样?
我可以使用哪些 RHEL 工具来追踪这些性能问题?我可以在没有 root 访问权限的情况下使用这些工具吗?