友人とFBで話していて気になったので、普段とは少し違った観点で記事を書きます。
最近サーバの載せ替えや新しいサーバの構築を何件か行いました、今日はWEBサーバへのアクセス数と求められるスペックについて簡単に書きたいと思います。
内容は、アクセス数と必要になるメモリ容量についてです。
いろいろなチューニングができますが、今回は基本的にデフォルトセットアップを行った場合をベースに検証したいと思います。※CentOS6+Apache2.2+PHP 5.3.3をベースにしています。
データベースアクセスもない固定コンテンツ系のページを表示する際に使用される代替のメモリ容量は以下のとおりです。
- 1アクセスで使用されるメモリ容量は概ね10MB〜30MB
- 10アクセスで100MB〜300MB
- 100アクセスでは1GB〜3GB必要になります。
以下私がテスト環境として使用しているサーバの検証結果です。
現在動いているプロセスを以下のコマンドで検索します
ps aux | grep httpd
結果がこちら
root 20214 0.0 1.0 237544 10300 ? Ss Nov25 0:13 /usr/sbin/httpd apache 20233 0.0 0.9 238972 9248 ? S Nov25 0:00 /usr/sbin/httpd apache 20234 0.0 0.9 238964 9216 ? S Nov25 0:00 /usr/sbin/httpd apache 20235 0.0 0.7 238708 8068 ? S Nov25 0:00 /usr/sbin/httpd apache 20236 0.0 0.7 238972 7988 ? S Nov25 0:00 /usr/sbin/httpd apache 20237 0.0 0.7 238964 7988 ? S Nov25 0:00 /usr/sbin/httpd apache 20238 0.0 0.7 238972 7964 ? S Nov25 0:00 /usr/sbin/httpd apache 20240 0.0 1.1 241404 11908 ? S Nov25 0:00 /usr/sbin/httpd apache 20555 0.0 0.7 238964 8156 ? S Nov26 0:00 /usr/sbin/httpd apache 20556 0.0 0.7 238716 7936 ? S Nov26 0:00 /usr/sbin/httpd apache 20557 0.0 0.9 238964 9592 ? S Nov26 0:00 /usr/sbin/httpd apache 21523 0.0 0.7 238960 8148 ? S Nov26 0:00 /usr/sbin/httpd apache 21532 0.0 0.9 238952 9444 ? S Nov26 0:00 /usr/sbin/httpd apache 21569 0.0 0.7 238960 8124 ? S Nov26 0:00 /usr/sbin/httpd apache 21570 0.0 0.8 238964 8236 ? S Nov26 0:00 /usr/sbin/httpd apache 21571 0.0 0.7 238708 7892 ? S Nov26 0:00 /usr/sbin/httpd apache 21572 0.0 0.7 238688 8144 ? S Nov26 0:00 /usr/sbin/httpd apache 21573 0.0 0.7 238696 7968 ? S Nov26 0:00 /usr/sbin/httpd apache 21574 0.0 0.7 238964 7988 ? S Nov26 0:00 /usr/sbin/httpd apache 21575 0.0 0.7 238696 7924 ? S Nov26 0:00 /usr/sbin/httpd apache 22575 0.0 0.8 238956 8396 ? S Nov26 0:00 /usr/sbin/httpd
左から6つ目の4桁〜5桁の数字がメモリの使用量です。
平均で8MB位ですかね。少し余裕を見るためにも上で説明した10MB〜30MBでこの先の検証をしてみましょう。
サーバではWEBサーバ以外のアプリケーションも動作しますので、WEBサーバで使用できるメモリ容量は搭載しているメモリ容量全体ではありませんので、注意して下さい。同時アクセス50アクセスに必要なメモリ容量は概ね500MB〜1.5GB必要になります、みなさんのサーバのメモリ容量は足りていますか?
ここで注意が必要です、Apacheの設定でKeepAliveはOnになっていますか?Offですか?Onの場合は接続が持続される時間は何秒に設定されていますか?この設定によっても必要となるメモリ容量は異なってきます。
KeepAliveOnの場合は1回の接続で設定されている秒数接続が持続されます。逆にKeepAliveがOffの場合は、1回のページアクセスで複数回の接続が試みられます、HTMLファイル、cssファイル、jsファイル、イメージファイル・・・ページに埋め込まれているファイル数分アクセスが発生するので仮に1ページで20アクセス発生するページを50ユーザで同時アクセスする場合はそれだけ必要となるメモリ容量が増えることになります。お使いのレンタルサーバは大丈夫ですか?
ちなみに共用サーバの場合は、自サイトのアクセス数が少なくても同居しているサイトのアクセス数が多い場合メモリ不足に陥り、性能が落ちることもありますし、最悪サーバが停止することも有ります。利用代金だけでサーバを決定し、サーバ停止や性能低下による表示時間の増加等で、ビジネスチャンスを逃すことは避けたいです、レンタルサーバの選択は慎重に行いましょう!!