xserver X10プランの負荷試験をやってみた

Table of Content

以前の案件で、AWS EC2 + RDS(t2.micro)で、かつ、Googleアナリティクス用のサイトマップ(sitemap.xml)を設定したところ、googlebotからのアクセスに耐えられずサイトダウンしたことがあった。xserverは、こういったことは起きていないので随分と負荷に強いと感じたので、ほぼ初期状態のWordPressサイトに テストデータ を登録して、負荷試験をしてみた。

試験では、Apache Benchを使って、 Macから負荷をかけて、動作する限界を確かめた。

Apache Benchとは
「ab」はApache Bench(アパッチ ベンチ)の略で、Apacheで標準に付いているWEBサーバの性能を計測するためのコマンドです。Apacheをインストールすると、<Apache Install Directory>\bin\に格納されていて、macの場合は(たしか)標準コマンド、windowsだとapacheをインストールすると同時にab.exeが使えるようになります。
使い方
基本的には-n-cオプションを使うことになります。(逆に、これさえ覚えれば大体大丈夫!!)-nには、Totalで発行するリクエスト数を指定。-cには、同時接続数を指定。コマンド形式はこちら。ab.exe -n <Total発行リクエスト数> -c <同時接続数> <URL>主なオプションは、以下になります。他にも沢山あるので、詳細は -h オプションで確認してみてください。

プション名説明
-n 数値リクエストの総数を数値で指定
-c 数値同時に発行するリクエストの数を数値で指定
-t 数値サーバからのレスポンスの待ち時間(秒)を数値で指定
-A ユーザー名:パスワードベーシック認証が必要なコンテンツにテストする
-P ユーザー名:パスワード認証の必要なプロキシを通じてテストする
-X プロキシサーバ名:ポート番号プロキシ経由でリクエストする場合に指定
-Vバージョンを表示
-hヘルプを表示
Apache Bench実行結果

ab -n 2200 -c 250 (-A BASIC認証ID:BASIC認証PASS) https://example.com/

テストでは、リアルタイムの同時リクエスト数が250、総リクエスト数が2200まで耐えた。
秒単位では、Request per second = 74.48 となっており、かなり耐えた。

また、SSHターミナルでtopコマンドを用いて、メモリ使用量を監視したが、
ピーク時でも、メモリには余裕があった。

経験上、DDOS攻撃の場合は、MySQLでOut of Memoryが連続して発生し、ターミナルの操作も困難になるので、cronで、エラーログを監視し、危うい状態になる前に、Slackに通知する仕掛けを実装し、手作業で.htaccessを書き換えブロックする運用とした。

コメント

タイトルとURLをコピーしました