通常、高パフォーマンスのルートを使用する場合は、アプリケーションに干渉するため、他の(スケジュールされた)プロセスをできるだけ少なく実行する必要があります。
Linuxは、従来のUNIXオペレーティングシステムと同様に、複数のアプリケーションを同時に公平に実行するように設計されており、リソースの枯渇を防止しようとします。逆を狙って、アプリケーション以外のすべてを枯渇させます。OSレベルでの簡単な手順は、アプリケーションのniceレベルとリアルタイムの優先度の変更、スケジューラーの変更、またはリアルタイムカーネルへの移行です。
TCP / IPは通常、接続のドロップを防ぎ、利用可能な帯域幅を効率的に使用するように調整されています。いくつかの中間リンクがより制約されている接続から可能な最大の帯域幅を取得するのではなく、非常に高速なリンクから可能な限り低いレイテンシを取得するには、ネットワークスタックの調整を調整します。
sysctl -a
調整可能なカーネル設定のホストが表示されます。設定は、IPv4またはIPv6を使用しているかどうか、およびアプリケーションですでに正確に何を行っているかによって異なりますが、以下の点に注意してください。
net.ipv4.tcp_window_scaling=1
RFC 1323-64Kより大きいIPV4 TCPウィンドウサイズのサポート-通常、高帯域幅ネットワークで必要
net.ipv4.tcp_reordering=3
TCPがパケット損失を想定してスロースタートすることなく、TCPパケットストリームでIPV4パケットを並べ替えることができる最大回数。
net.ipv4.tcp_low_latency=1
より高いスループットよりも低いレイテンシを優先することを目的としています。= 1に設定すると、IPV4 tcpプリキュー処理が無効になります
net.ipv4.tcp_sack=0
1に設定すると、IPV4の選択的確認応答が有効になります。これには、tcp_timestampsを有効にする必要があり、パケットのオーバーヘッドが追加されます。パケット損失が発生しない場合は不要です。
net.ipv4.tcp_timestamps=0
袋が必要な場合にのみアドバイスされます。
net.ipv4.tcp_fastopen=1
最初のSYNパケットでデータを送信できるようにします。
すべてではないにしても、ほとんどのものがカーネルソースに詳しく記載されています。
もちろん、未加工のTCPソケットをコーディングして、カーネルのTCP / IPスタックを完全にバイパスすることができます。
多くの場合、高度に調整されたシステムは信頼できるネットワークで実行され、ローカル(iptables)ファイアウォールが無効になります。