求人応募率向上コラム

SCROLL

 2022.11.08

疎結合とNGINX

前回、前々回と疎結合について投稿しました。
Webサーバ自体にもこの疎結合的?な考え方が導入されていますので今回はそれについての投稿となります。
Webサーバ(HTTP)の仕組みはおおよそ以下の図のようなものとなります。

これまで圧倒的なシェアを誇っていたAPACHEはこの図のリクエスト、サーバ処理、レスポンスを1つのプロセスして動かします。
ここで1つ問題点が出てきます。
この3つのうちサーバ処理に時間がかかる場合この部分がボトルネックとなりサーバのリソースが十分足りている状況にもかかわらず処理しきれなくなる場合があるということです。
このサーバ処理ですがCPUやメモリを目一杯使う処理とは限らずディスクの書込みやデータベース処理待ちなど待ちが発生してしまう処理の場合も多いです。
こういった場合ほとんどサーバリソースを使わないのにサーバ処理のキューが溜ってしまいプロセス数が上限に達してしまうこととなります。
これを一般的にはC10K問題と呼んでいます。
そこでNGINXが開発されたわけですが考え方としては
リクエスト、サーバ処理、レスポンスを別々の処理として扱うことで問題解決を図っています。
もう少し詳しく説明すると
①サーバはユーザリクエストをサーバ処理キューに入れすぐに復帰します。
②サーバ処理はサーバ処理キューを監視し、キューに溜った処理を順番に処理し、処理が完了するとレスポンスキューに入れ復帰します。
③レスポンス処理はレスポンスキューを監視し、順番に処理を行いユーザにレスポンスを返します。
こう見ると前回説明した疎結合の考え方と同様の考え方でNGINXが作られていることがわかります。
最近NGINXのシェアがAPACHEのシェアを抜きましたがただ高速だからというわけではなくサーバリソースを有効利用できるソフトウェアとしてメリットがあるからと覚えておいてください。
 
お気軽にご相談ください。

派遣の求人・人材派遣会社の求人情報なら“ジョブリンク”

お問い合わせ・相談

CONTACT

ご検討中のご相談・お見積もり・ご質問など、
どなた様でも、お気軽にお問い合わせください。

資料請求