ホームページ  >  記事  >  運用・保守  >  Nginx の高同時実行カーネルを最適化する方法

Nginx の高同時実行カーネルを最適化する方法

WBOY
WBOY転載
2023-05-15 17:52:061011ブラウズ

高同時実行性とは

  • デフォルトの Linux カーネル パラメーターは最も一般的なシナリオを考慮しており、高同時アクセスをサポートする Web アプリケーションには適していません。 . サーバーのため、nginx のパフォーマンスを向上させるために、Linux カーネル パラメーターを変更する必要があります。調整するには、nginx が静的 Web コンテンツ サーバー、リバース プロキシ、または圧縮サーバーを提供するサーバーとして使用されている場合、カーネル パラメータの調整は異なります。nginx がより多くの同時リクエストをサポートできるようにする最も一般的な TCP ネットワーク パラメータは次のとおりです。簡単な設定を行います。

  • これらには、/etc/sysctl.conf を変更する必要があります。カーネルパラメータを変更します。

  • #構成方法

構成詳細分析

#単一のプロセスが実行されることを示しますこれは、time_wait 状態のソケットを新しい TCP リンクに再利用できることを意味します。 time_wait 状態のリンクが常に大量に存在するため、サーバーにとって重要です。存在します。

fs.file-max = 999999
#キープアライブが開始されるとき、TCP がキープアライブ メッセージを送信する頻度。デフォルトは 2 時間で、次のように設定されます。 10 分あれば、無効なリンクをより速くクリーンアップできます。
net.ipv4.tcp_tw_reuse = 1

#サーバーがリンクをアクティブに閉じるとき、ソケットが fin_wait_2 状態に留まる最大時間

ner.ipv4.tcp_keepalive_time = 600

#このパラメータは、オペレーティング システムによって許可される time_wait ソケット数の最大値を示します。この数値を超えると、time_wait ソケットが直ちにクリアされ、警告メッセージが出力されます。

#このパラメータのデフォルトは 180000 です。time_wait ソケットが多すぎると、Web サーバーの速度が低下します。

net.ipv4.tcp_fin_timeout = 30

#udp および tcp リンクのローカル ポートの値の範囲を定義します。

net.ipv4.tcp_max_tw_buckets = 5000

# TCP がキャッシュを受け入れるための最小値、デフォルト値、および最大値を定義します。

net.ipv4.ip_local_port_range = 1024 65000

#TCP 送信キャッシュの最小値、デフォルト値、最大値を定義します。

net.ipv4.tcp_rmem = 10240 87380 12582912

#ネットワーク カードがカーネルの処理速度よりも速くデータ パケットを受信すると、これらのデータ パケットを保存するためのキューが存在します。このパラメータはキューの最大値を表します。

net.ipv4.tcp_wmem = 10240 87380 12582912

#カーネルソケットがバッファ領域のデフォルトサイズを受け入れることを示します。

net.core.netdev_max_backlog = 8096

# は、カーネル ソケット送信バッファのデフォルト サイズを示します。

net.core.rmem_default = 6291456

#カーネルソケットがより大きなバッファサイズを受け入れることを示します。

net.core.wmem_default = 6291456

#カーネルソケット送信バッファの大きいサイズを示します。

net.core.rmem_max = 12582912

注: 上記の 4 つの構成は、ビジネス ロジックと実際のハードウェア コストに基づいて包括的に検討する必要があります。

# はパフォーマンスとは関係ありません。 tcp syn*** を解決するために使用されます。

net.core.wmem_max = 12582912

#このパラメータは、TCP スリーウェイ ハンドシェイク確立フェーズ中に受け入れられる syn リクエスト キューの最大長を示します。デフォルトは 1024 です。これを大きく設定すると、Linux がビジー状態になって新しい接続を受け入れることができなくなるのを防ぐことができます。 nginx がビジーです。クライアントが開始したリンク要求が失われました。

net.ipv4.tcp_syncookies = 1

#このパラメータは、timewait 高速リサイクルを設定および有効にするために使用されます。

net.ipv4.tcp_max_syn_backlog = 8192

オプションのデフォルト値は 128 です。このパラメータは、システムによって同時に開始される TCP 接続の数を調整するために使用されます。同時実行性の高いリクエストでは、デフォルト値によりリンクが停止する可能性があります。タイムアウトまたは再送信が発生するため、高い同時実行性と組み合わせる必要があります。リクエストの数に基づいてこの値を調整します。

net.ipv4.tcp_tw_recycle = 1

# オプションは、ユーザー ファイル ハンドルに関連付けられていない、システム内の TCP ソケットの最大数を設定するために使用されます。この数を超えると、孤立リンクはすぐにリセットされ、警告メッセージが出力されます。この制限は、単純な dos*** を防ぐために、この制限に過度に依存したり、この値を減らす必要がないことを示しています。多くの場合、この値を増やしてください。

net.core.somaxconn=262114

使いやすいように、これを下に直接コピーできます

net.ipv4.tcp_max_orphans=262114

以上がNginx の高同時実行カーネルを最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。