Linux サーバーがネットワーク トラフィックに対応できないかどうかはどうすればわかりますか。また、その場合どう対処すればよいですか。

Linux サーバーがネットワーク トラフィックに対応できないかどうかはどうすればわかりますか。また、その場合どう対処すればよいですか。

高負荷の HTML ページを提供する Web サーバーがあるとします。何らかの理由で、ボトルネックになっているのは CPU、RAM、ディスクではなく、ネットワーク自体であると仮定します。Linux サーバーが単にトラフィックを送受信しすぎていて、対応できないと判断するにはどうすればよいでしょうか。たとえば、ネットワーク帯域幅が容量の 60% を超えているかどうかはどうすればわかりますか。容量を超えている場合、どのようにスケーリングすればよいでしょうか。

答え1

一般的には、システム全体を分析して限界がどこにあるかを調べます。たとえば、USE方法論すべてのリソースの使用率、飽和度、エラーをチェックします。

すべての環境で、CPU使用率やインターフェース帯域幅使用率などの基本的な測定しやすいパフォーマンス指標を収集できます。Linuxでは、次のようなツールが役立ちます。ネットデータまたは、perf では、非常に多くのメトリックを詳細に表示できます。

環境を深く理解することで、ボトルネックがどこにあるかがわかります。帯域幅が 95 Mbit/s で最大になるのは、パスに古い 100 Mbit スイッチがあるか、インターネット サービスが 100 Mbit/s である可能性があります。または、ストレージ システムが非常に遅い可能性があります。または、パケット バッファが十分な速さで空にならないため、NIC がオーバーランを報告している可能性があります。

可能な場合は、Web サーバーを別のハードウェア上のより多くのホストにスケール アウトしてみてください。複数の VM の合計リソースが役立つ場合があります。コントロールを使用して、一度に 1 つのホストで試すことができます。さらに、負荷分散は高可用性機能と見なすことができます。

関連情報