加快远程X会话的速度


16

我有一台运行Ubuntu 11.10 Server的远程计算机,我从OS X 10.7.3通过SSH连接到该计算机:

托管remote.example.com
 ForwardX11是
 转发X11信任是

有时,我想在那里启动GUI应用程序(最著名的是gitk)。但是UI相当慢。远程计算机和我自己的Mac都具有良好的Internet连接。它们之间的Ping约为55ms,并且没有数据包丢失。我可以做些什么来加快速度吗?

设置其他远程桌面解决方案是一种选择,但是我希望避免使用它,因为我并不经常需要此应用程序。


您是否在调用应用程序时尝试启用压缩?
Journeyman Geek

1
谢谢。从我的.ssh/config报价可以看出,不,我没有。我已经添加Compression yesCompressionLevel 9到主机的配置。现在似乎更快一些,但仍不足以舒适使用。我还能做什么?
亚历山大·格拉迪什

@AlexanderGladysh您的上行速度是多少?
EKW 2012年

scp上载下载到该远程计算机时说1.2 MB / s ,或多或少是我的ISP公布的数字。
亚历山大·格拉迪什

1
如果可能,使用sshfs或其他网络文件系统并在本地运行应用程序可能会更快(除非您的git repo确实很大)。
Eroen

Answers:


15

针对X11转发的最佳SSH选项文章建议使用性能更好得多的arcfour和河豚密码代替默认的AES密码。

因此,应使用:

ssh -c arcfour,blowfish-cbc -XC host.com

Seb的技术说明(如果站点关闭,则为存档版本)建议:

ssh -Y -C -o CompressionLevel=9 -c arcfour,blowfish-cbc user@hostname

这可能有助于进一步提高压缩时已经观察到的速度。


1
AES,arcfour和blowflish不压缩;他们是密码学。请注意,通过更改为AES,可以降低连接的安全性。因此在某些情况下这可能不可行。-C不过,此选项很关键,因为这是压缩。当心设置压缩级别,请确保对其进行测量,因为它可能会对CPU产生巨大的影响……
Tamara Wijsman

另外,某些CPU具有用于AES加密的硬件加速。
2012年

6

您提到您不想设置其他远程桌面解决方案,但您关心性能。X11并不是一个非常有效的协议,因此,除非您使用更现代的协议,否则您将只能期待较小的改进。

NX(NoMachine)可能是您的最佳选择。它仍然使用ssh,因此与可能需要更改防火墙设置等的其他桌面协议相比,它应该不花太多精力。Fedora有NX软件包,因此我想它们也可用于Ubuntu。

如果您对性能足够在意,可以花时间问问题,那么希望您可以花几分钟来学习NX。

编辑:为了阐明为什么X11 over ssh永远不会很快:X协议处理诸如线和圆之类的低级图形,以及诸如“鼠标向左移动3个像素”之类的低级事件。像GTK和Qt这样的现代GUI工具箱不会绘制线条,而是绘制图像。当X11通过SSH时,它必须不断发送图像数据和低级鼠标事件。诸如NX,VNC或远程桌面之类的高级协议可以通过了解工具包的工作方式来减少带宽和延迟。例如,它们可以避免发送鼠标事件的需要,可以避免在移动窗口时成千上万的重绘,并且可以像菜单一样缓存屏幕区域。如果只考虑性能,那么原始X11始终是错误的选择。幸运的是,有许多易于配置和使用的快速替代方案。


不是说我不想使用远程桌面,而是想首先尝试优化我的X11连接:-)谢谢,我将看一下NX。
亚历山大·格拉迪什
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.