apache benchの結果

webサーバ(apache)へのアクセスにより
実メモリ使い切ってOOM killer召喚しちゃったり、iowaitが大きすぎて実質ハングアップ状態になってたのを改善しました。
apacheの設定で影響しそうなのは一箇所MaxClientsディレクティブ。
256→15に変更。

それプラス
MinSpareServers、MaxSpareServersも15に変更。
ちょっとでもレスポンス良くなるといいかな。

その効果の確認。
合計リクエスト数1000、同時リクエスト数100でテスト
ツールはapache bench。アクセス対象はもっとも同時アクセスが多いと思われるL4D2サーバのMOTD。

ab -n 1000 -c 100 http://blog.rino-server.jp//?page_id=1718

以下結果抜粋

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking blog.rino-server.jp (be patient)
Completed 100 requests
~
Completed 1000 requests
Finished 1000 requests

Server Software: Apache
Server Hostname: blog.rino-server.jp
Server Port: 80

Document Path: //?page_id=1718
Document Length: 6496 bytes
Complete requests: 1000
Failed requests: 0
Write errors: 0
Requests per second: 1.80 [#/sec] (mean)
Time per request: 55507.519 [ms] (mean)
Time per request: 555.075 [ms] (mean, across all concurrent requests)
Transfer rate: 11.99 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 0.9 0 4
Processing: 7381 53138 8839.0 55172 59818
Waiting: 7380 53138 8839.0 55171 59817
Total: 7385 53139 8838.2 55172 59818

サーバの状況はCPU使用率ほぼMAX、メモリは数10MB余裕ある状態。
swap領域使っちゃうと、iowaitが大きくなる=処理速度が著しく低下するので、実メモリの範囲内で処理しちゃうほうがいいと思いました。

もしこれでFailed requestや意図してないNon-2xx responsesがカウントされている場合、対策の必要があります。
他のブログみてると、apache benchの同時リクエスト数(-cの値)を減らすとか書いてあるところあったけど、そういうことではないです。
普通、やってくるリクエストはコントロールできないですよね。

あと、apache benchでリクエスト毎のタイムアウトが設定できればいいなって思いました。
終わり。

コメントを残す

メールアドレスが公開されることはありません。