abコマンドを使った ウェブアプリケーションのパフォーマンス計測など @hidenorigoto / 後藤 秀宣
ab = Apache Bench Apache に付属のベンチマークツール(コマンド) ・特定の URL に関するパフォーマンスを手軽に計測できる 参考 URL ・ http://www.atmarkit.co.jp/flinux/rensa...
abコマンドの使用例 ab -c 40 -n 40 http://blog.innx.co.jp/
abコマンドの実行結果(1) Server Software:  Apache/2.2.3 Server Hostname:  blog.innx.co.jp Server Port:  80 Document Path:  / Documen...
abコマンドの実行結果(2) Concurrency Level:  40 Time taken for tests:  0.957 seconds Complete requests:  40 Failed requests:  0 Writ...
abコマンドの実行結果(3) Connection Times (ms) min  mean[+/-sd] median  max Connect:  0  1  0.5  1  1 Processing:  182  597  225.2  ...
abコマンドの結果、その他の参考値 ローカル PC 上の Apache スタティックなページ Requests per second:  5681.10 [#/sec] (mean) phpinfo だけのページ Requests per se...
ウェブアプリケーションのチューニング 1.  プログラムの処理時間を短くする  ->(様々なノウハウ)  ->サーバー側ページキャッシュ 2.  プログラムへのアクセス回数を減らす  ->クライアント側ページキャッシュ 3.  画像ファイルなど...
Apache側の設定のポイント(1) httpd.conf <IfModule prefork.c> StartServers  8 MinSpareServers  5 MaxSpareServers  20 ServerLimit  256...
Apache側の設定のポイント(2) mod_expires http://httpd.apache.org/docs/2.0/mod/mod_expires.html 画像ファイルなどのキャッシュ期間を制御 ->サーバーへのリクエストが減るだ...
プログラム側での対応 ・ APC ( PHP の場合) ・データベース処理の最適化 ・サーバー側ページキャッシュ  ->少なくともファイルキャッシュ、頻度の高いページはメモリキャッシュ PHP の場合 APC をインストールすれば、メモリ KV...
Upcoming SlideShare
Loading in...5
×

Abコマンドを使ったウェブアプリケーションのパフォーマンス計測

3,951

Published on

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,951
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Abコマンドを使ったウェブアプリケーションのパフォーマンス計測

  1. 1. abコマンドを使った ウェブアプリケーションのパフォーマンス計測など @hidenorigoto / 後藤 秀宣
  2. 2. ab = Apache Bench Apache に付属のベンチマークツール(コマンド) ・特定の URL に関するパフォーマンスを手軽に計測できる 参考 URL ・ http://www.atmarkit.co.jp/flinux/rensai/apache15/apache15b.html XAMPP などを Windows にインストールすると、 Windows 上からも利用可能 abコマンドとは
  3. 3. abコマンドの使用例 ab -c 40 -n 40 http://blog.innx.co.jp/
  4. 4. abコマンドの実行結果(1) Server Software: Apache/2.2.3 Server Hostname: blog.innx.co.jp Server Port: 80 Document Path: / Document Length: 47837 bytes サーバーのバージョンやレスポンスの情報
  5. 5. abコマンドの実行結果(2) Concurrency Level: 40 Time taken for tests: 0.957 seconds Complete requests: 40 Failed requests: 0 Write errors: 0 Total transferred: 1926080 bytes HTML transferred: 1913480 bytes Requests per second: 41.79 [#/sec] (mean) Time per request: 957.055 [ms] (mean) Time per request: 23.926 [ms] (mean, across all concurrent request Transfer rate: 1965.34 [Kbytes/sec] received
  6. 6. abコマンドの実行結果(3) Connection Times (ms) min mean[+/-sd] median max Connect: 0 1 0.5 1 1 Processing: 182 597 225.2 623 932 Waiting: 109 556 229.8 595 916 Total: 183 597 225.1 623 932 この例では LAN 内で実行しているので Connect はほぼゼロ
  7. 7. abコマンドの結果、その他の参考値 ローカル PC 上の Apache スタティックなページ Requests per second: 5681.10 [#/sec] (mean) phpinfo だけのページ Requests per second: 1171.15 [#/sec] (mean) cakephp ブログチュートリアル Requests per second: 47.08 [#/sec] (mean) シンプルな PHP でスタティックなページの 5 倍 DB 接続のある複雑な PHP で 100 ~ 200 倍
  8. 8. ウェブアプリケーションのチューニング 1. プログラムの処理時間を短くする  ->(様々なノウハウ)  ->サーバー側ページキャッシュ 2. プログラムへのアクセス回数を減らす  ->クライアント側ページキャッシュ 3. 画像ファイルなどのリソースへのリクエストを減らす  -> CSS スプライト、クライアント側キャッシュ  
  9. 9. Apache側の設定のポイント(1) httpd.conf <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> 上記はデフォルト設定。 MaxClients(=ServerLimit) は許可するメモリ量に応じて設定する。 プロセスを頻繁に初期化したい場合は MaxRequestsPerChild を小さくする。( PHP のメモリリーク対策など)
  10. 10. Apache側の設定のポイント(2) mod_expires http://httpd.apache.org/docs/2.0/mod/mod_expires.html 画像ファイルなどのキャッシュ期間を制御 ->サーバーへのリクエストが減るだけでなく、クライアント側のページ表示速度も改善する場合がある
  11. 11. プログラム側での対応 ・ APC ( PHP の場合) ・データベース処理の最適化 ・サーバー側ページキャッシュ  ->少なくともファイルキャッシュ、頻度の高いページはメモリキャッシュ PHP の場合 APC をインストールすれば、メモリ KVS がすぐに使える memcached でも OK 1.URL をキーにしてページデータを格納 2. キー( URL )に対応するページデータがあれば、取得して返す
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×