タグ

最適化とスレッドに関するiwwのブックマーク (1)

  • NGINXのパフォーマンスをスレッドプールで9倍にする

    はじめに NGINXが接続処理に非同期かつイベント駆動のアプローチを用いていることは、よく知られています。つまり(従来型アーキテクチャのサーバのように)、専用プロセスやリクエストごとのスレッドを他に作ることなく、一つのワーカープロセスで複数の接続とリクエストを処理できるということです。これを実現するために、NGINXはソケットをノンブロッキングモードで実行し、epollやkqueueといった効率的なメソッドを用いています。 全負荷のかかるプロセスは少なく(通常1CPUコアごとに1つのみ)一定のため、消費されるメモリは少なく済み、タスク切り替えのためにCPUサイクルが無駄遣いされることもありません。このアプローチのメリットは、NGINXの実例を通してよく知られています。NGINXは、何百万もの同時リクエストやスケールを非常にうまく処理します。 各プロセスが追加メモリを消費する。また、プロセス

    NGINXのパフォーマンスをスレッドプールで9倍にする
  • 1