はじめに NGINXが接続処理に非同期かつイベント駆動のアプローチを用いていることは、よく知られています。つまり(従来型アーキテクチャのサーバのように)、専用プロセスやリクエストごとのスレッドを他に作ることなく、一つのワーカープロセスで複数の接続とリクエストを処理できるということです。これを実現するために、NGINXはソケットをノンブロッキングモードで実行し、epollやkqueueといった効率的なメソッドを用いています。 全負荷のかかるプロセスは少なく(通常1CPUコアごとに1つのみ)一定のため、消費されるメモリは少なく済み、タスク切り替えのためにCPUサイクルが無駄遣いされることもありません。このアプローチのメリットは、NGINXの実例を通してよく知られています。NGINXは、何百万もの同時リクエストやスケールを非常にうまく処理します。 各プロセスが追加メモリを消費する。また、プロセス
![NGINXのパフォーマンスをスレッドプールで9倍にする](https://cdn-ak-scissors.b.st-hatena.com/image/square/2dc185a3a57e0ae183c1a1fe0133241d277baf1a/height=288;version=1;width=512/https%3A%2F%2Ffa-works.com%2Fblog%2Fwp-content%2Fuploads%2F2016%2F03%2F1db4a5a2018e0c6f2a63ee2ce83a7598_s.jpg)