私たちはLinuxサーバーをVPNルーターとしてテストしています。
私たちはかなり良いサーバーを持っており、現在約170,000のハングを経験していますが、それはもっと期待されています。 CPU使用量は大丈夫です。あまりにも多くの場合、どうやって知ることができますか?サーバーが処理できなくなると、CPU負荷が増加しますか?
答え1
などでは/proc/interrupts
、割り込みはカウンタとして表示されます(例:「最後の再起動後にサービスされた割り込み〜170k」)。システムがどれくらい稼働して稼働しているかがわからない場合、これらのカウンタはほとんど意味がありません。重要なのは、単位時間当たりの割り込みの数です。中断率。
VPNルータでは、割り込みは主に入力バッファ(または高度なサーバクラスNICの場合は特定のフローの受信パケットの現在のDMA宛先)がいっぱいであることを示すNICによって生成されます。 VPNルーターがすべての中断をタイムリーに処理できない場合、VPNを介した接続でパケット損失が発生し始めるか、実際のVPNトンネルが失敗して再接続する可能性があります。
非常に単純なNICには、Xパケットを受信してバッファがいっぱいになったときに割り込みを生成する入力バッファしかありません。その結果、受信したすべての(Xn)パケットに対して割り込みが発生します。高度なNICは独自にDMA転送を実行できるため、プロセッサはデフォルトでNICに「ここに使用するメモリの塊があります。着信するすべてのパケット(特定のソースアドレス/プロトコル/ポートの組み合わせについて)をここに配置します」と通知しますできます。メモリブロックがいっぱいになるか、転送に問題があるようになるまで邪魔しないでください。に大きな影響を与える可能性があります。
プロセッサがタイムリーに割り込みを処理できない場合、ネットワークカードにパケットを格納するスペースがないため、着信パケットが失われる可能性があります。単位時間あたりの割り込みの数が増えるにつれて、使用されているCPU時間の割合を確認する必要があります。システムそれに応じて増加します。
割り込み率が高すぎると、実際に次のような結果が出ることがあります。減らすCPU負荷:インバウンドパケットが失われると、相手が失われたパケットを再送信するのを待つ以外にできることがないからです。
選択した特定のVPN実装に応じて、CPU負荷平均値は、システムがどれほど懸命に動作しているかを示す有用な指標にすることも、そうでない場合もあります。これは、ほとんどのVPN関連処理がカーネル内で発生する可能性があるためです。