我使用在 Windows XP 下运行的 Cygwin 建立与 RedHat 服务器的 X Windows ssh 连接。
我通过 Cygwin/X 接口运行了一些应用程序,它们运行良好。但是,我使用的主要应用程序是用于 C/C++ 开发的 Eclipse(使用 Eclipse CDT)。不幸的是,Eclipse 在通过 Cygwin/X 运行时有一些明显的延迟:
- 按 Ctrl+F 打开“查找/替换”对话框后,对话框会快速打开,但可能需要最多 5 秒钟对话框才会对按键做出响应。在此期间,对话框中的编辑框就像被禁用一样。如果您在对话框无响应时键入内容,则按键会被缓冲,因为对话框开始响应后它们就会被输入。
- 打开源文件相当快,但关闭文件选项卡可能需要长达 5 秒钟。
- 在 C/C++ 和 Git 视角之间切换可能需要 5 秒或更长时间。所有这些延迟都不是 Eclipse 的典型行为。
以下是我为排查问题而进行的一些测试:
- 我对 eclipse.ini 做了几项建议的更改。有一些改进,但没有什么大问题。问题似乎不是出在 Eclipse 上(参见下一个测试)。
- 我走到 RedHat 服务器,以我的帐户登录,然后运行 Eclipse。关闭选项卡并使用“查找/替换”对话框没有任何延迟。太好了!可惜我不能每天直接登录 RedHat。
- 我运行了 x11perf,结果显示直接在 RedHat 上运行速度较慢。这很奇怪,因为客观上直接在 RedHat 上运行 Eclipse 速度要快得多。因此,我只能假设不同 X 服务器的 x11perf 结果无法相互比较。
根据我所见,我认为问题与网络有关。仅供参考:这个私人网络的网络安全非常严格,但如果不与管理员交谈,我就不知道详细信息。
我使用此 xinit 命令启动 Cygwin/X 会话:C:\cygwin\bin\run.exe /usr/bin/bash.exe -l -c /usr/bin/xinit.exe 我的 .xinitrc 包含:xhost + xterm -e ssh -Y 192.168.1.2 /usr/bin/gnome-session
以下是一些版本信息:
- 仅供参考:我尝试过两个版本的 Cygwin/X。我尝试过 X Server 版本 1.10.1 和 1.13.1。ssh 版本是“OpenSSH_5.8p1,OpenSSL 0.9.8r 8 Feb 2011”和“OpenSSH_6.1p1,OpenSSL 1.0.1c 10 May 2012”
- 在 RedHat 上,X 服务器版本为 1.1.1,X11 为版本 7.1.1。ssh 版本为“OpenSSH_4.3p2,OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008”
我可以运行哪些测试来尝试找出问题?
我可以运行其他一些应用程序来查看它们是否表现出相同的缓慢行为吗?
您认为网络设置是导致该问题的原因吗?
答案1
您可以尝试以下操作:
- 启用 SSH 压缩(在 ssh 命令中添加 -C),尽管这可能会使其变得更慢
- 启用详细模式(添加 -v)并查找任何错误或警告
- 使用另一个 SSH 客户端,如 Putty(也可以使用或不使用压缩并检查事件日志)
您应该尝试像 OpenOffice 这样的应用程序或任何其他具有大量窗口和小部件的应用程序。