インソースマーケティングデザイン
2015.01.14 システム
ApacheとNginxについての比較
システムエンジニアの大貫です。
今回はWebサーバの「Apache」と「Nginx」の機能について比較してみました。
現在マリンロードでは、Webサーバの中でシェア1位の「Apache(アパッチ)」を利用することが多いですが、シェア3位の「Nginx(エンジンエックス)」についても、今後案件が増えていく可能性があるので、調査してみました。
比較を行ってみると以下の通りで、「Nginx」は、シングルプロセスなので、大量のアクセスが合った場合でも、リクエストの分だけプロセスが立ち上がることもなく、リクエストに応じてプロセス内で処理が実行される為、消費メモリが抑えられるという特徴があります。
その他にも、複数のリクエストに対して、非同期で処理が実行されるので、処理が遅いリクエストがあったとしても待つことなく処理が実行されます。
また、同時接続数も「Nginx」は、クライアント1万のアクセスにも対応できると謳っているようです。
処理が早く、消費メモリが少ないという良い事ずくめですが、1つの処理が長すぎるとシステムコールキューにリクエストが溜まってしまいパフォーマンスが低下するということもあるようで、「Nginx」は、複雑な動的処理や、動画コンテンツの配信、データベース処理には不向きとのことでした。
逆に言うと、静的なドキュメントなど処理に時間がかからないものについては、「Nginx」が圧倒的なパフォーマンスをみせるようなので、使いドコロを検討する必要があるかと思います。
▼Apache
1.データ形式:動的ドキュメントに向いている
2.タスク処理:マルチプロセス
3.並列化:マルチプロセス
4.I/O処理:同期
5.消費メモリ:大きい
6.同時処理数:やや多い
7.処理速度:普通
▼Nginx
1.データ形式:静的ドキュメントに向いている
2.タスク処理:シングルプロセス
3.並列化:イベントドリブン
4.I/O処理:非同期
5.消費メモリ:小さい
6.同時処理数:非常に多い
7.処理速度:早い