2
BINDネームサーバーとのパケットキューパフォーマンスの不一致
バックグラウンド: 一貫性のないリングバッファー設定(eth0の場合は1020、eth1の場合は255)が一貫していない大容量キャッシングネームサーバー環境(Redhat Enterprise Linux 5.8、IBM System x3550)を継承しました。eth0はそのローカルデータセンターのスイッチ1に接続され、eth1は同じデータセンターのスイッチ2に接続されます。クラスター内のすべてのサーバーは、eth0またはeth1がアクティブなインターフェースであるかどうかを交互に切り替え、すべてのクラスターは異なるリージョンに配置されます。リングバッファは明らかに一貫性を保つ必要があります。 ISCナレッジベースがアウトバウンド輻輳に関連していると示唆している「エラー送信応答:設定解除」エラーを多くのネームサーバーが頻繁に記録している理由を調査したときに、上記の問題を発見しました。高いリングバッファ設定(1020)のサーバーは、ifconfigでドロップするパケットは(予想どおり)少なくなりますが、上記のエラーをログに記録する傾向があります。これを「グループ1」と呼びます。リングバッファ(255)の設定が低いサーバーは、1日あたりの受信パケットを大幅にドロップしますが(予想どおり)、BINDエラーのインスタンスははるかに少なく、通常は同じ負荷グループで0〜150です。 ここでも大きな謎ではありません。DNSのキャッシュは再帰的なサービスです。何かがキャッシュされない場合、サーバーはその1つの質問に代わって最終的に回答を返すまで複数のクエリを作成する必要があります。これは、(1つの入力)->(多くの出力)クエリ関係です。RXリングバッファーを修正すると、この数値がボード全体で新しい値に等しくなり、そこからproc(wmem_max / wmem_default)でカーネルの送信ネットワークキューを調整することをお勧めします。 パフォーマンスの問題に対する構成変更の影響を測定できるのが好きなので、実稼働環境の変更を開始する前にいくつかのデータを収集するレポートを作成しました。以下は、グループ1の最初の2台のサーバーの出力例です。 group1-01 RX: 7166.27/sec av. TX: 7432.57/sec av. RXDROP: 7.43/sec av. unset_err: 27633 group1-02 RX: 7137.37/sec av. TX: 7398.50/sec av. RXDROP: 9.94/sec av. unset_err: 107 これらは式です。これはローカルスクリプトであり、サーバーごとに維持する必要があるシェルスクリプトに依存しないことに注意してください。 RXPACK=$(ssh $server "sar -n DEV -f /var/log/sa/sa$(date --date=yesterday '+%d') | grep \"Average: .*\$(awk …