目次
1: メインパラメータ
1.1 ワーカープロセス
1.2 ワーカー_cpu_affinity
1.3 ワーカー優先度
1.4 worker_rlimit_nofile
1.5 error_log
1.6 pid
1.7 user
2: イベント パラメータ
2.1 worker_connections
2.2 accept_mutex
2.2.1 Jingqun 現象
2.2.2 accept lock 処理
2.2.3 アクセプト ロックの欠点
2.2.4 構成に関する提案
2.3 accept_mutex_lay
ホームページ 運用・保守 Nginx nginxで設定する必要があるパラメータの概要

nginxで設定する必要があるパラメータの概要

Nov 12, 2020 pm 04:00 PM
nginx パラメータ

nginxで設定する必要があるパラメータの概要

1: メインパラメータ

1.1 ワーカープロセス

# 指定nginx开启worker工作子进程数量# number默认1,建议配置数量与CPU核心数量相等worker_processes number复制代码
ログイン後にコピー

1.2 ワーカー_cpu_affinity

# nginx默认未开启利用多核CPU,开启某个核心该位置标志为1即可# worker_processes 最多开启8个,所以多核最多8个也就够用。示例配置开启4核worker_cpu_affinity 00000001 00000010 00000100 00001000复制代码
ログイン後にコピー

1.3 ワーカー優先度

# 进程优先级,数值越低占用资源越多# number默认10,值范围-20 ~ 20# 建议配置-10即可,最好别低于Linux系统进程-5优先级worker_priority number复制代码
ログイン後にコピー

1.4 worker_rlimit_nofile

# 一个子进程可以打开文件描述限制# nginx默认一个子进程打开文件描述限制数量 = (ulimt -u) / worker_processes# 因为进程处理连接任务很多时候不均衡,所以最好设置为与系统数量一致worker_rlimit_nofile (ulimit -u)复制代码
ログイン後にコピー

1.5 error_log

# file指定日志输出文件位置,默认logs/error.log# level指定日志输出最低级别,默认error级别。当然可以设置为debug、info等error_log file [level]复制代码
ログイン後にコピー

1.6 pid

# file默认值logs/pid.log,指定nginx中master进程的PID输出文件位置pid file复制代码
ログイン後にコピー

1.7 user

# user第二个参数user,配置nginx进程运行用户,默认nobody# group配置nginx进程运行用户组,默认nobodyuser user [group]复制代码
ログイン後にコピー

2: イベント パラメータ

2.1 worker_connections

# nginx指定一个子进程可处理连接数量# number默认数量1024# nginx可处理连接总数 = worker_processes * worker_connecitonsworker_connections  number复制代码
ログイン後にコピー

2.2 accept_mutex

accept_mutex パラメータは、ワーカー プロセスが接続を処理するための受け入れミューテックス ロック スイッチです。デフォルトは 1.11.3 より前ではオンで、それ以降のバージョンではオフです

2.2.1 Jingqun 現象

Nginx では、worker_processes パラメーターを使用して複数のワーカー プロセスを構成でき、フォーク後に複数のワーカー プロセスが同じポートをリッスンします。外部接続が入ってくると、すべての子プロセスが起動されて接続を獲得し、1 つの子プロセスが accept イベントを正常に処理しない限り、子プロセスはスリープ状態に戻ります。その結果、多くの不必要なコンテキスト切り替えが発生します。これがサンダーリング ハード現象です。

2.2.2 accept lock 処理

nginx は、epoll に登録されるプロセスが 1 つだけになるように accept mutex を追加することで、サンダーリング ハード現象を回避します。つまり、接続が入ってきたとき、それを処理できる子プロセスは 1 つだけです。

尝试获取accept锁if success
    在epoll中注册accept事件else
    在epoll中注销accept事件
处理所有连接事件
释放accept锁复制代码
ログイン後にコピー
2.2.3 アクセプト ロックの欠点

アクセプト ロックは問題を完全に解決するようです。これは、サンダーリング グループ現象によって引き起こされますが、特にスループットと同時実行性が比較的高いアプリケーションでは、一部の子プロセスが非常にビジーで、一部の子プロセスが非常にアイドル状態になるという問題が発生します。一般的に言えば、これはワーカー サブプロセスの不均一な負荷の問題です。

2.2.4 構成に関する提案
  • 分散アプリケーションの短い接続の場合、このパラメータをオンにするのが最善です。コンテキスト切り替えのオーバーヘッドを避けてください。
  • 長時間接続するアプリケーションの場合は、ワーカーに過度の接続負荷がかかり、プロセスの CPU 使用率が高くなるのを避けるために、このパラメータをオフにすることをお勧めします。

2.3 accept_mutex_lay

accept_mutex が on に設定されている場合、アプリケーション シナリオに従って accept_mutex_lay パラメータをデバッグする必要があります。このパラメータは、すべての子プロセスが受け入れロックを再度取得するまでの時間を指定します。適切なパラメーター値は、ワーカーの負荷の不均衡の問題を軽減するのに役立ちます。デフォルト値 500ms

関連する推奨事項:nginx チュートリアル

以上がnginxで設定する必要があるパラメータの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Linuxでnginxを開始する方法 Linuxでnginxを開始する方法 Apr 14, 2025 pm 12:51 PM

Linuxでnginxを開始する手順:nginxがインストールされているかどうかを確認します。 systemctlを使用して、nginxを開始してnginxサービスを開始します。 SystemCTLを使用して、NGINXがシステムスタートアップでNGINXの自動起動を有効にすることができます。 SystemCTLステータスNGINXを使用して、スタートアップが成功していることを確認します。 Webブラウザのhttp:// localhostにアクセスして、デフォルトのウェルカムページを表示します。

nginx403エラーを解く方法 nginx403エラーを解く方法 Apr 14, 2025 pm 12:54 PM

サーバーには、要求されたリソースにアクセスする許可がなく、NGINX 403エラーが発生します。ソリューションには以下が含まれます。ファイル許可を確認します。 .htaccess構成を確認してください。 nginx構成を確認してください。 SELINUXアクセス許可を構成します。ファイアウォールルールを確認してください。ブラウザの問題、サーバーの障害、その他の可能なエラーなど、他の原因をトラブルシューティングします。

nginxでロードバランシングを構成する方法 nginxでロードバランシングを構成する方法 Apr 14, 2025 am 08:33 AM

負荷分散のためにnginxを構成する方法は?アップストリームサーバープールを定義し、サーバーIPとポートを指定します。仮想ホストを定義し、接続を聞いて、上流のプールに転送します。場所を指定し、リクエストを一致させ、上流のプールに転送します。

nginxの実行ステータスを確認する方法 nginxの実行ステータスを確認する方法 Apr 14, 2025 am 11:48 AM

nginxの実行ステータスを表示する方法は次のとおりです。PSコマンドを使用してプロセスステータスを表示します。 nginx configuration file /etc/nginx/nginx.confを表示します。 NGINXステータスモジュールを使用して、ステータスエンドポイントを有効にします。 Prometheus、Zabbix、Nagiosなどの監視ツールを使用します。

Windowsでnginxを構成する方法 Windowsでnginxを構成する方法 Apr 14, 2025 pm 12:57 PM

Windowsでnginxを構成する方法は? nginxをインストールし、仮想ホスト構成を作成します。メイン構成ファイルを変更し、仮想ホスト構成を含めます。 nginxを起動またはリロードします。構成をテストし、Webサイトを表示します。 SSLを選択的に有効にし、SSL証明書を構成します。ファイアウォールを選択的に設定して、ポート80および443のトラフィックを許可します。

nginxエラーログをクリーニングする方法 nginxエラーログをクリーニングする方法 Apr 14, 2025 pm 12:21 PM

エラーログは、/var/log/nginx(Linux)または/usr/local/var/log/nginx(macos)にあります。コマンドラインを使用して手順をクリーンアップします。1。元のログをバックアップします。 2。新しいログとして空のファイルを作成します。 3。nginxサービスを再起動します。自動クリーニングは、LogroTateや構成などのサードパーティツールでも使用できます。

nginx304エラーを解く方法 nginx304エラーを解く方法 Apr 14, 2025 pm 12:45 PM

質問への回答:304変更されていないエラーは、ブラウザがクライアントリクエストの最新リソースバージョンをキャッシュしたことを示しています。解決策:1。ブラウザのキャッシュをクリアします。 2.ブラウザキャッシュを無効にします。 3.クライアントキャッシュを許可するようにnginxを構成します。 4.ファイル許可を確認します。 5.ファイルハッシュを確認します。 6. CDNまたは逆プロキシキャッシュを無効にします。 7。nginxを再起動します。

Nginxが開始されるかどうかを確認する方法 Nginxが開始されるかどうかを確認する方法 Apr 14, 2025 pm 01:03 PM

nginxが開始されるかどうかを確認する方法:1。コマンドラインを使用します:SystemCTLステータスnginx(Linux/unix)、netstat -ano | FindStr 80(Windows); 2。ポート80が開いているかどうかを確認します。 3.システムログのnginx起動メッセージを確認します。 4. Nagios、Zabbix、Icingaなどのサードパーティツールを使用します。

See all articles