我在美国东海岸,通过SSH连接到美国西海岸的服务器。
我已经成功地实现了X11转发,可以启动图形界面应用程序来完成某些任务。然而,对于所有经过X11转发的应用程序(特别是emacs
!),输入(按键,鼠标点击等)和响应之间存在很大的延迟,有时这会从极度沮丧变成潜在的危险——因为延迟太大,我的本意是要执行A,但结果做了B。
SSH压缩是否可能是罪魁祸首?我应该使用什么类型的压缩?
我在美国东海岸,通过SSH连接到美国西海岸的服务器。
我已经成功地实现了X11转发,可以启动图形界面应用程序来完成某些任务。然而,对于所有经过X11转发的应用程序(特别是emacs
!),输入(按键,鼠标点击等)和响应之间存在很大的延迟,有时这会从极度沮丧变成潜在的危险——因为延迟太大,我的本意是要执行A,但结果做了B。
SSH压缩是否可能是罪魁祸首?我应该使用什么类型的压缩?
X11图形占用大量带宽。如果您的远程主机距离较远(即不在局域网内),那么您可能会在导出的X11应用程序中遇到迟缓。
关于SSH压缩,我不确定。性能可能取决于其他因素,例如CPU性能。从ssh
手册页中得知:
-C 请求压缩所有数据(包括stdin、stdout、stderr以及转发的X11和TCP连接的数据)。压缩算法与gzip(1)使用相同,“级别”可以通过协议版本1的CompressionLevel选项进行控制。在调制解调器线路和其他慢速连接上,压缩是可取的,但会使快速网络变慢。默认值可以在配置文件中按主机设置;请参见压缩选项。
以下是其他可用于加速的解决方法:
ssh
主要用作远程shell。在这种情况下,应用于用户键入的按键和命令提示符中的回显的压缩可能会引入明显的不适延迟。因此,我想这就是为什么默认禁用压缩的原因。如果有人需要使用sshfs或类似工具,则可以启用压缩。我以前从未尝试过压缩,也从未注意到延迟。我还在所有地方使用tmux
。它具有一些特殊的输出缓冲区,我相信会丢弃一些用户无法注意到的快速stdout“帧”。 - Victor Yarema你特别提到了emacs
:有一个命令行选项
-nw, --no-window-system
Tell Emacs not to create a graphical frame. If you use
this switch when invoking Emacs from an xterm(1) window,
display is done in that window.
当通过ssh工作时,这可以更快(因为它只需传输字符,而不是在X11上重新绘制整个屏幕)。