Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> 同時サーバーのパフォーマンスを向上させるために、Linuxカーネルパラメータを変更しnginxの

同時サーバーのパフォーマンスを向上させるために、Linuxカーネルパラメータを変更しnginxの

  

Linuxのnginxのは、同時の高い数に達した場合、TCPのTIME_WAITソケットは、多くの場合、サーバーは簡単に死んでドラッグすることができますので、数2、3万に達しました。実際には、我々は、単にLinuxカーネルのパラメータを変更することによって、あなたは、それによって同時実行nginxのサーバーのパフォーマンスを向上、TIME_WAITの数はnginxのサーバーソケット減らすことができます。 VIは/etc/sysctl.confに以下の行を追加しますnet.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200

net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4を。 tcp_tw_recycle = 1のnet.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000簡単な説明:net.ipv4.tcp_syncookies = 1は、SYNクッキーの上に示されます。 SYNキューのオーバーフローが発生した場合、クッキーを処理するためにイネーブルされ、少量のSYN攻撃を防ぐことができ、ゼロのデフォルト値は無効になり、net.ipv4.tcp_tw_reuse = 1は、再利用に示します。 TIME-WAITソケットは、新しいTCP接続のために再使用できるように、デフォルトはゼロです無効にします。net.ipv4.tcp_tw_recycle = 1はTCPコネクションのオープンTIME-WAITソケットの高速リカバリを表し、デフォルトは0で、それはオフ。 net.ipv4.tcp_fin_timeout = 30ソケットが要件の閉鎖端によって表されている場合、このパラメータは、状態FIN-WAIT-2年代に留まる時間を決定します。 Net.ipv4.tcp_keepalive_time = 1200キープアライブが有効な場合にTCPがキープアライブメッセージを送信する頻度を示します。デフォルトは2時間で、20分に変更されています。 Net.ipv4.ip_local_port_range = 1024 65000発信接続に使用されるポートの範囲を示します。デフォルトでは非常に小さく、32768から61000、1024から65000に変更されています。 net.ipv4.tcp_max_syn_backlog = 8192がSYNキューの長さを示し、デフォルトキューの長さが8192で増加し、1024、ネットワーク接続の数、接続のためのより多くの待ち時間を収容することができます。 net.ipv4.tcp_max_tw_buckets = 5000 TIME_WAITソケットの最大数を維持しながら、この数より多く、TIME_WAITソケットはすぐにクリアされ、警告メッセージを出力する場合は、システムを示します。デフォルトは180000で、これは5000に変更されています。 Apache、Nginx、その他のサーバーでは、最後の数行のパラメーターはTIME_WAITソケットの数を非常に少なくすることができますが、Squidではその効果は大きくありません。このパラメータはTIME_WAITソケットの最大数を制御し、Squidサーバーが多数のTIME_WAITソケットによってドラッグされるのを防ぎます。エコー' ======================は、構成を検証するには、次のコマンドを実行します。================== ======='#Linuxカーネルパラメータを変更すると、コマンドがすぐに有効になります。 /sbin /sysctl -p Nginxの最適化FastCGIキャッシュを使用してFastCGIキャッシュを有効にし、名前を付けます。個人的には、キャッシュを開くことは非常に便利で、CPU負荷を効果的に減らし、502エラーを防ぐことができると感じています。 fastcgi_cache_pathは/usr /local /nginxの/fastcgi_cacheレベル= 1:2 keys_zone = TEST:10メートル、非アクティブ= 5メートル;このコマンドは、パスのFastCGIキャッシュディレクトリ構造のレベルを指定し、蓄積時間キー領域と非アクティブ削除時刻
<ロシアのイガー・シソエブによりp>他の説明

nginxのは、2年以上の半のサイトを運営していた第2 Rambler.ruサイトの開発を、訪問しました。 IgorはソースコードをクラスBSDライセンスとして公開しています。

同時接続数が多い場合は、NginxがApacheサーバーの代わりになります。 Nginxは7層の負荷分散サーバーとしても使用できます。私のテスト結果によると、nginxの0.6.31 + PHP 5.2.6(FastCGIは)同じ条件の下で10倍のApacheと同等の30,000人以上の同時接続を、耐えることができます。
彼らは1GBのメモリは、システム用に予約されている、メモリ3GBのより多くを占めることになるので、

私の経験では、4ギガバイトのRAMサーバー+アパッチ(preforkのモード)は、一般的にのみ、3000個の同時接続を処理することができます。構成ファイルに設定されているMaxClientsが4000であったため、私は2台のApacheサーバーを使用していました。

30,000の同時接続時にこのnginxの0.6.31 + PHP 5.2.6(FastCGIの)サーバー、オープン10 nginxのプロセスは、150Mメモリ(15M×10 = 150M)を消費、64を開きましたphp-cgiプロセスは、1280Mのメモリ(20M * 64 = 1280M)と、システム自体が消費するメモリ(2GB未満)を消費します。サーバーのメモリが少ない場合、開くことができるのは25個のphp-cgiプロセスだけなので、php-cgiによって消費される合計メモリはわずか500Mです。

Copyright © Windowsの知識 All Rights Reserved