Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> iptablesのconntrackテーブルがいっぱいで、Webサイトへのアクセスが非常に遅い

iptablesのconntrackテーブルがいっぱいで、Webサイトへのアクセスが非常に遅い

  

現象:Webサイトのアクセスが遅く、サーバのCPU、メモリ、ディスクの使用状況が正常であることが突然判明しました

分析プロセスと解決策:query /var /log /messageログで、そのようなレコードip_conntrackテーブルが完全にドロップされたパケットがあることがわかりました。カーネルはip_conntrackモジュールを使用してiptablesネットワークパケットのステータスを記録し、それをテーブルに保存します(このテーブルはメモリ内にあります)。送信元IPがRSTパケットを送信するまでテーブルのレコードはテーブルに残りますが、攻撃、間違ったネットワーク設定、問題のあるルーティング/ルータ、問題がある場合ネットワークカードが同じ状況にある場合、送信元IPによって送信されたRSTパケットは受信されないため、テーブルに蓄積され、それが一杯になるまで蓄積され、完全なiptablesが失われると、外部サーバーに接続できません。状況です。

解決策:ログ内の現在のバケットとconntrack_maxの値、および各トレース接続が消費するメモリ量を確認するようになりました。



つまり、304MBのメモリは1048576のトレース接続レコードをサポートするため、サーバのメモリサイズに応じて適切な値を設定する必要があります。

ip_conntrack_maxとhashsizeを恒久的に変更します。

ip_conntrack_maxを増やします(2 ^ 20に設定、デフォルトは2 ^ 16 = 65536)。

vi /etc/sysctl.conf < Br>

net.ipv4.ip_conntrack_max = 1048576

2)ハッシュサイズを大きくします(i386アーキテクチャではHASHSIZE = CONNTRACK_MAX /8)

vi /etc/modprobe.conf

options ip_conntrack hashsize = 131072

その後、iptablesサービスを再起動すると、パラメータがメッセージで有効になっていることがわかります。

service iptables restart


Copyright © Windowsの知識 All Rights Reserved