web-dev-qa-db-ja.com

debiantcp-パケット損失のあるクライアント向けに最適化

私は100Mbpsの帯域幅のDebianサーバーを持っています。私のクライアントは主に3Gネットワ​​ークを使用して接続されており、その期間は平均30分です。それらの多くでパケット損失が発生することはめったにありませんが、パケットが失われるたびに、すべてが正常に戻る前に、tcpリンクが30秒以上停止します。

サーバーは、CPU、メモリ、および帯域幅の約5%を使用します。

私はdebianとtcpスタックを調整するためのオプションのリストに出くわしました: http://www.linuxinsight.com/proc_sys_net_ipv4.html

パケットが失われたときにサーバーまたはクライアントがストールする時間を短縮できるパラメーターはどれかと思います。何か案が ?

3
Joel

パケット損失の問題を調整することは非常に困難です-TCPは本当にそれを嫌い、信頼性の低いネットワークではなく、容量を超えた使用の兆候であると非常に強く想定しています。 ...常に正しいとは限らない3Gリンク。

http://linuxgazette.net/135/pfeiffer.html 代替の輻輳制御アルゴリズムを選択する方法を文書化し、Linuxカーネルで使用可能ないくつかのオプションについてのメモがあります。

インターネットとは異なり、無線ネットワークなどの断続的な損失環境で適切に機能するように設計されているため、ほぼ確実にtcp_frtoを有効にする必要があります。

ウィンドウが大きいときに損失が発生する場合は、tcp_maxreorderingをデフォルトより上に上げることを検討してください。

SACKおよび同様の機能がオンになっていることを確認してください。あなたがそれらをオフにしたとは思えませんが、念のために...

それを超えて、ここで本当にあなたを助けることができることはそれほど多くありません。輻輳制御の応答、特に回復は、パフォーマンスを向上させるための鍵です。しかし、奇跡を期待しないでください、そしてあなたが何をするにしても、それを徹底的にテストせずに何かが人生をより良くするだろうと思い込まないでください!

5
Daniel Pittman