ホームページ > 運用・保守 > Nginx > nginxで設定する必要があるパラメータの概要

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

王林
リリース: 2020-11-12 16:00:08
転載
2749 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:juejin.im
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート