web-dev-qa-db-ja.com

リモートXセッションの高速化

OS X 10.7.3からSSH経由で接続するUbuntu 11.10サーバーを実行しているリモートマシンがあります。

ホストremote.example.com 
 ForwardX11はい
 ForwardX11Trustedはい

そこでGUIアプリケーションを起動したい場合があります(特にgitk)。しかし、UIはかなり遅いです。リモートマシンと自分のMacはどちらもインターネット接続が良好です。それらの間のpingは約55msであり、パケット損失はありません。スピードアップするために私ができることはありますか?

他のリモートデスクトップソリューションをセットアップすることもできますが、このアプリケーションはあまり必要ないので避けたいです。

16

記事 X11転送に最適なSSHオプション は、デフォルトのAES暗号の代わりに、はるかに優れたarcfourおよびblowfish暗号を使用することを推奨しています。

したがって、以下を使用する必要があります。

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

Sebのテクニカルノート (サイトがダウンしている場合は アーカイブバージョン )が推奨されます。

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

これは、圧縮ですでに観察された速度向上をさらに改善するのに役立ちます。

15
harrymc

他のリモートデスクトップソリューションをセットアップしたくないが、パフォーマンスは気になっているとおっしゃいました。 X11はあまり効率的なプロトコルではないため、より最新のプロトコルを使用しない限り、小さな改善しか期待できません。

NX(NoMachine)がおそらく最良の選択です。まだsshを使用しているため、ファイアウォール設定の変更などを必要とする可能性のある他のデスクトッププロトコルと比較して、余計な手間をかけるべきではありません。Fedora用のNXパッケージがあるため、Ubuntuでも使用できると思います。

時間をかけて質問するのに十分なパフォーマンスを気にしている場合は、NXを学ぶためにさらに数分を費やすことができれば幸いです。

編集:ssh上のX11が決して高速にならない理由を明確にするために:Xプロトコルは、線や円などの低レベルの描画と、「マウスが3ピクセル左に移動した」などの低レベルのイベントを処理します。 GTKやQtなどの最新のGUIツールキットは線を描画せず、画像を描画します。 X11がSSHを経由する場合、X11は常に画像データと低レベルのマウスイベントを送信する必要があります。 NX、VNC、リモートデスクトップなどの高レベルのプロトコルは、ツールキットの動作を認識することにより、帯域幅と遅延を削減できます。たとえば、マウスイベントを送信する必要をなくしたり、ウィンドウを移動したときの何千もの再描画を回避したり、メニューのような画面の領域をキャッシュしたりできます。パフォーマンスがそれほど重要でない場合でも、生のX11は常に間違った選択です。幸いなことに、構成と使用が簡単な高速の代替手段が多数あります。

6
amcnabb