![linux ssh -X 系统负载高时图形应用程序将无法启动](https://linux22.com/image/594751/linux%20ssh%20-X%20%E7%B3%BB%E7%BB%9F%E8%B4%9F%E8%BD%BD%E9%AB%98%E6%97%B6%E5%9B%BE%E5%BD%A2%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%B0%86%E6%97%A0%E6%B3%95%E5%90%AF%E5%8A%A8.png)
所以我使用 ssh -X 访问服务器。我在 Xubuntu 桌面上访问隔壁房间的 Ubuntu 服务器。通常一切都运行正常,但当系统负载过高时,我拥有的任何图形应用程序都会冻结并且无法重新启动。
即使使用“nice -n 19”将导致高负载的进程降为低优先级,也会发生这种情况。即使系统负载很高,命令行仍能正常工作,没有延迟,服务器上运行的其他应用程序(例如虚拟机)也能正常运行。但通过 X 运行的任何图形应用程序都会死机。
当图形应用程序失败时,它们通常会发出提示超时的错误消息。
似乎与 X 连接的某些东西优先级较低并且超时。但这是什么?如何修复它?
答案1
由于我产生了兴趣,我决定进行几个实验。
首先,不使用 ssh,我在计算机上启动了三个使用 MPI 编写的相同程序。每个副本单独占用了我计算机的所有 8 个核心,达到 100%。当它们以相同优先级一起工作时,它们平均消耗相同的 CPU 时间。然后我将其中一个程序的优先级更改为 19。但它们平均消耗的 CPU 时间仍然相同。更让我惊讶的是,即使三个副本中的一个优先级为 -20,另外两个优先级为 19,也没有任何变化。
然后我决定使用 ssh。我从另一间房间的一台电脑以 X 模式连接到我的电脑,并启动了几个运行繁重的应用程序。它们不依赖于任何优先级(Xorg、ssh、3 个程序副本的优先级),以一种似乎不会停止的方式共享 CPU 时间,尽管 X 应用程序比平时慢一点。
当然,这个实验不能被视为 100% 正确,但事实上它让我想到问题不在于 CPU,而在于内存消耗(因为进程优先级不影响内存使用)或网络速度。尝试检查这两个问题。祝一切顺利!