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

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

王林
王林転載
2020-11-12 16:00:082689ブラウズ

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 までご連絡ください。