ホームページ  >  記事  >  バックエンド開発  >  nginxイベントモジュールディレクティブ

nginxイベントモジュールディレクティブ

WBOY
WBOYオリジナル
2016-08-10 08:48:381017ブラウズ
accept_mutex構文: accept_mutex [ on | off ]デフォルト: onnginx は、接続ミューテックスを使用して、連続的な accept() システムコールを実行します。
構文: accept_mutex_delay Nms;デフォルト: 500msプロセスにミューテックスロックがない場合、少なくともどのくらいの時間遅延します。デフォルトでは、遅延は 500ms です。
debug_connection構文: debug_connection [ip | CIDR]デフォルト: noneこのコマンドは、デバッグログの出力に使用する IP を指定できます例りー
devpoll_changes devpoll_eventskqueue_eventsepoll_events 構文: devpoll_changes これらのパラメータは、指定された方法でカーネルとの間で受け渡されるイベントの数を指定します。デフォルトの devpoll 値は次のとおりです。 32、残りは5 12です。
multi_accept構文: multi_accept [ on | off ]デフォルト: offmulti_accept nginx が取得した後に、できるだけ多くの回数 accept を呼び出すかどうかを指定します。新しい接続 ()接続を取得する rtsig_signo構文: rtsig_signo

この命令は、rtsigモードが有効になった後に2つの信号を使用し、2番目の信号番号は最初の信号番号に1を加えたものです

デフォルト値。 rtsig_signo の値は SIGRTMIN+10 (40) です。


rtsig_overflow_eventsrtsig_overflow_testrtsig_overflow_threshold構文: rtsig_overflow_*これら 3 つの命令はすべて、 rtsig キューのオーバーフローの処理に関連しており、 rtsig キューがオーバーフローすると、nginx はキューをクリアし、同時に未処理のイベントを継続的に処理します。 、新しいオーバーフローを防ぐために、rtsig は定期的にキュー要素を減らします。オーバーフローが処理されると、rtsigrtsig_overflow_events にポーリング リスナーの数を指定します。デフォルトは 16 です。
rtsig_overflow_test ポーリング処理するイベントの数を指定した後、rtsig はキュー要素を削減します。デフォルトは 32 です
rtsig_overflow_thre shold このオプションは Linux でのみ有効です。 2.4. オプションキュー要素を減らす前に満たされるキューの量を指定します。デフォルトは 1/10 です。

useイベントポートを選択 | デフォルト: ./configure で複数のイベント モデルが指定されている場合、そのうちの 1 つを設定して、どのイベント モデルを使用するかを nginx に指示できます。デフォルトでは、nginx は ./configure 中にシステムに最適なイベント モデルを見つけます。 nginx イベント モデルには次のものが含まれます
./configure的时候指定了不止一种事件模型,那么可以设置其中一个,以便告诉nginx使用哪种事件模型。默认情况下nginx会在./configure时找出最适合系统的事件模型。
nginx的事件模型有如下几种
  • select - 标准方法。 如果当前平台没有更有效的方法,它是编译时默认的方法。你可以使用配置参数--with-select_module--without-select_module来启用或禁用这个模块。
  • poll - 标准方法。 如果当前平台没有更有效的方法,它是编译时默认的方法。你可以使用配置参数--with-poll_module--without-poll_module来启用或禁用这个模块。
  • kqueue - 高效的方法,使用于 FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X. 使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
  • epoll - 高效的方法,使用于Linux内核2.6版本及以后的系统。在某些发行版本中,如SuSE 8.2, 有让2.4版本的内核支持epoll的补丁。
  • rtsig - 可执行的实时信号,使用于Linux内核版本2.2.19以后的系统。默认情况下整个系统中不能出现大于1024个POSIX实时(排队)信号。这种情况对于高负载的服务器来说是低效的;所以有必要通过调节内核参数/proc/sys/kernel/rtsig-maxpollselect - 標準メソッド。現在のプラットフォームではこれより効率的な方法はありません。コンパイル時のデフォルトの方法です。構成パラメータ --with-select_module および --without-select_module を使用できます。このモジュールを有効または無効にします。
  • poll - 現在のプラットフォームでより効率的な方法がない場合は、コンパイル時のデフォルトの方法です。--with-poll_module を使用します。 - -without-poll_module を使用して、このモジュールを有効または無効にします。
  • kqueue - FreeBSD 4.1 以降、OpenBSD 2.9 以降、NetBSD 2.0 および MacOS X で使用される効率的な方法。デュアル プロセッサを搭載した MacOS X システムで kqueue を使用すると、カーネル クラッシュが発生します。
    epoll - Linux カーネル バージョン 2.6 以降で使用される、バージョンで epoll をサポートするパッチがあります。 2.4 カーネル rtsig - Linux カーネル バージョン 2.2.19 以降のシステムで使用される実行可能なリアルタイム シグナルは、システム全体で 1024 個以下です。高負荷サーバーでは非効率的です。そのため、カーネル パラメータ /proc/sys/kernel/rtsig-max を調整してキュー サイズを増やす必要があります。ただし、Linux カーネル バージョン 2.6.6 以降では。 -mm2、 このパラメータは使用されなくなり、プロセスごとに個別のシグナル キューが存在し、このキューのサイズは RLIMIT_SIGPENDING パラメータで調整できます。このキューが混雑しすぎると、nginx はキューを放棄し、正常に戻るまで メソッドの使用を開始して接続を処理します。 /dev/poll - Solaris 7 11/99+、HP/UX 11.22+ (eventport)、IRIX 6.5.15+、および Tru64 UNIX 5.1A+ で使用される効率的な方法 eventport - Solaris 10 で使用される効率的な方法。カーネルパニックの問題を防ぐために、このセキュリティパッチをインストールする必要があります。 🎜🎜🎜🎜🎜worker_connections🎜🎜構文: 🎜worker_connections番号🎜🎜プロセスあたりの最大接続数 同時実行の最大数は、worker_connections と work_processes を通じて計算できます。つまり、同時実行の最大数 = work_connections x work_process

    著作権表示: この記事はブロガーによるオリジナルの記事であり、ブロガーの許可なく複製することはできません。

    上記では、関連コンテンツを含む nginx イベント モジュールの手順を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。

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