nginxの最適化カーネルパラメータ

最適化されたカーネルパラメータについて:
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_fin_timeoutが設定されているFIN-WAIT-2状態に保持されているソケットを決定します。デフォルトは60秒です。この値は、非常に重要であり、時には小さなWebサーバの負荷、死者ソケットの多くとメモリオーバーフローの危険性があるだろう正しく設定されています。

=。1 net.ipv4.tcp_tw_reuse
時間待機ソケットは新しい接続のために再利用できるようにTCPセットを再利用するためのオープンnet.ipv4.tcp_tw_reuse、デフォルト値はゼロで無効です

=。1 net.ipv4.tcp_tw_recycle
net.ipv4.tcp_tw_recycle開始TIMEWAIT高速リカバリを設定するには、デフォルトはゼロ無効です

=。1 net.ipv4.tcp_syncookiesの
シンクッキーを有効にするnet.ipv4.tcp_syncookies、SYNクッキーの治療に対するSYN攻撃の少量を可能にする、時に待ち列を発生します

= 600 net.ipv4.tcp_keepalive_time
net.ipv4.tcp_keepalive_timeキープアライブ活性化された場合を示し、キープアライブメッセージのTCP送信周波数。デフォルト値は(時間で)2です。

4000 = 65000のnet.ipv4.ip_local_port_range用
のnet.ipv4.ip_local_port_range範囲は、システムが開いているポートを設定することができ


= 8192 net.ipv4.tcp_max_syn_backlog
接続情報要求クライアントの記録用net.ipv4.tcp_max_syn_backlog最大値が確認を受信していません。システムメモリ128MBの、1024年の二度、デフォルト値があるために、システムメモリは、小さな128です

net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.tcp_max_tw_bucketsの数は6000に、ここで、180 000デフォルト値を設定するためのTIMEWAIT


= 1 net.ipv4.tcp_synack_retries
net.ipv4.tcp_synack_retriesパラメータは、コアSYN + ACKパケット送信の数はの接続の前に中止され判定する

= 1 net.ipv4.tcp_syn_retriesの
net.ipv4.tcp_syn_retries接続を確立するためにSYNパケットを送信する前に、カーネル放棄を表します

= 262144 net.ipv4.tcp_max_orphans
TCPソケットの数までnet.ipv4.tcp_max_orphansシステムはどのユーザファイルハンドルにリンクされていません。この数を超えた場合、接続はすぐに警告メッセージからリセット孤児とプリントされます。(後のメモリの増加場合)この制限は単純なDoS攻撃を防ぐために、あまりそれに依存しているか、人為的に、この値を減らすことはできません。この値を大きくする必要があります。

= 262144 net.core.netdev_max_backlog
net.core.netdev_max_backlogこれらのパッケージの許容されるパケット・コア処理よりも速度の場合、各ネットワークインタフェース速い速度を示し、パケットの最大許容数は、キューに送られます。

= 262144 net.core.somaxconn
net.core.somaxconnデフォルト128で接続パラメータを調整するためのシステムの数が同時に開始、高度に並行要求をTCP、デフォルト値は、接続又は再送タイムアウトが発生することがあり、したがって、それが必要です同時要求の合計数は、値を調整します。

上記のパラメータ値は、カーネル/etc/sysctl.confファイルに追加し、その後、影響を与える、次のコマンドを実行している
/ sbinに/のsysctl -pを

注意:

sysctlのnet.ipv4.tcp_tw_reuse = 1のsysctl net.ipv4.tcp_tw_recycle = 1とTIME_WAIT状態を低減するために接続されたが、負荷分散の環境で、sysctlのnet.ipv4.tcp_timestampsのsysctl net.ipv4.tcp_tw_recycle、同時に1に設定することはできませんすることができます複雑なネットワーク障害(すでに使用されていたアドレス)が発生する可能性があります。複数のバックエンドサーバの後ろにビルドにやり方を均衡NATサーバーの負荷、アドレスの後にバックエンドサーバーに変更されたデータを転送しますが、バックエンドサーバーに対して、タイムスタンプデータを変更しないロードバランサへのリクエスト、リクエストの送信元アドレスは、ロードバランサのアドレスで、プラスのポートは、それが同じ接続を考慮することができるので、バックエンドサーバーを探して、クライアントの元の要求のロードバランサによって転送異なるの観点から、多重結合されます異なるクライアントが時間と一致しないことがあり、そのパケットのバックが破棄されるように、特定の性能は通常、明確に送信はいSYNクライアントですが、サーバーがACK応答ではありません、タイムスタンプ障害現象があるだろう、あってもよいです確認応答パケットがキャスト現象であることに順序次
のnetstat -s | grepのタイムスタンプ
接続されているすべての靴下のそれぞれの状態を示す
のnetstat -nを|のawk「/ ^ TCP / {++ S [$ NF]} END {のために印刷A、S [A]} '(IN A S)
はgrep -i "ポート番号" | netstatの-nat 

公開された60元の記事 ウォン称賛20 ビュー4589

おすすめ

転載: blog.csdn.net/zhaikaiyun/article/details/104795637