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

WBOY
リリース: 2023-05-15 17:52:06
転載
958 人が閲覧しました

高同時実行性とは

  • デフォルトの 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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!