次の方法で共有


低速アプリケーションの認識

このガイドでは、パフォーマンスが低下した Microsoft Windows アプリケーションとして 低速 アプリケーションを識別します。 低速アプリケーションでは、次の 1 つ以上の現象が発生します。

  • CPU とネットワークの使用率が低い。

    コンピューターが何かを待っているように見えます。 多くの場合、アプリケーションはネットワーク上で待機しています。

  • TCP_NODELAY ソケット オプションを使用して Nagle アルゴリズムをオフにすると、パフォーマンスが向上します。

    これは他の問題を示しており、解決策と見なすべきではありません。 Nagle アルゴリズムをオフにすると、プロトコルのオーバーヘッドが増加します。 このメソッドは、壊れたアプリケーションの修正として使用しないでください。パフォーマンスの問題を解決するためにアプリケーションに他の作業が必要であることを示すものとしてのみ使用してください。

  • アプリケーションは高いオーバーヘッドを示します。

    アプリケーションのオーバーヘッドを計算するには、各方向に転送するデータの量を決定します。 次に、Netstat を使用し、(イーサネットの場合) パケットごとに 60 バイト、接続ごとに 500 バイトを追加します。 イーサネット経由のストリーミングで予想される最適なオーバーヘッドは、約 6% です。 モデム接続の場合、PPP リンクでヘッダー圧縮が使用されるため、最適なオーバーヘッドは約 2% です。 詳細については、「 Netstat を使用したオーバーヘッドの計算 」を参照してください。

  • 接続に大きな RTT がある場合、アプリケーションの応答が遅くなります。

    アプリケーションがリンクの帯域幅に近づいていない場合、大きな RTT はほとんど、またはまったく影響を受けません。 大きな RTT による劇的な速度低下は、シリアル化された処理と多くの小さなトランザクションの明確な兆候です。

すべてのアプリケーションは、大規模な RTT を使用する環境でテストする必要があります。 そうすることで、開発の選択肢が不十分なほとんどのアプリケーションが明らかになります。 このテストは、ワイヤレス LAN ネットワーク、リンク遅延シミュレーター、サテライト ネットワークなど、複数の環境で実行できます。

アプリケーションの動作

高性能 Windows ソケット アプリケーション

Nagle アルゴリズム