7/9に開催された、チューニンガソンに参加してきた
グルーポン・ジャパンCTOの山路氏(@yamaji)とペア
当日に課題と審査方法が発表
Webアプリケーションはwordpress
コメントをabでPOSTする。1000回 20同時接続で、
Wordpressはいじっちゃだめ
OSとかミドルウェアそのへんはいじっておk
***やったこと
+MySQLを同じタイプの別インスタンスでコンパイル
+PHP5.3.6 普通にコンパイル
+Apache2.2 コンパイル
+PHP5.3.6 mysql_connectをmysql_pconnectにしてコンパイル
+mysql_connectを戻してコンパイル
+PHPAPC入りコンパイル
+パラメータチューニングも色々と
事前にコンパイルしておいたものが起動しないとかも
あって結局全部コンパイルし直し
といってもほとんどがPHPのコンパイル。
終了数分前まで100秒切れなくて、
ほんとの最後2分とかそんな感じで51秒までになった。
「諦めない気持ち」ちゃんと持ってきました。
結構最初の頃にApacheイジルの辞めてたから言うの忘れてたけど
apachectlをいじって
$HTTPD -k $ARGV となってたところを
nice -14 $HTTPD -k $ARGVに変更してみたり
結果発表
審査の方法は、一回再起動かけてからabでWordpressにpostするって事だったから
一度も再起動のテストをしてなかったのも有って、結構ドキドキしてた。
タイム的には5位以内に入れると思ってたけど、
再起動したときにちゃんと動くか、軽いチート的なヤツがバレてないか
この2点が心配で心配で。
3位 優勝じゃなく3位。残念。
エキシビジョン
m2.4xlargeの実力を見せつける為の環境構築。
大会で使われたAMIが32bitだったので、急遽64bitでおんなじ構成を作った。
で、ベンチ測ってみた結果、恐ろしい結果が。
その結果はこちら。
驚異の21秒Server Software: Apache/2.2.16
Server Hostname: 127.0.0.1
Server Port: 80Document Path: /wordpress/wp-comments-post.php
Document Length: 1266 bytesConcurrency Level: 20
Time taken for tests: 21.741 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 1636000 bytes
Total POSTed: 266000
HTML transferred: 1266000 bytes
Requests per second: 46.00 [#/sec] (mean)
Time per request: 434.822 [ms] (mean)
Time per request: 21.741 [ms] (mean, across all concurrent requests)
Transfer rate: 73.49 [Kbytes/sec] received
11.95 kb/s sent
85.43 kb/s totalConnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 3.3 0 30
Processing: 225 432 129.3 419 1420
Waiting: 225 431 129.2 419 1420
Total: 225 433 131.8 419 1450Percentage of the requests served within a certain time (ms)
50% 419
66% 441
75% 453
80% 463
90% 482
95% 505
98% 808
99% 1250
100% 1450 (longest request)
何もチューニングせずにこの速さ
Server Software: Apache/2.2.16
Server Hostname: 127.0.0.1
Server Port: 80Document Path: /wordpress/wp-comments-post.php
Document Length: 1266 bytesConcurrency Level: 20
Time taken for tests: 11.321 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000
Total transferred: 1636000 bytes
Total POSTed: 266000
HTML transferred: 1266000 bytes
Requests per second: 88.33 [#/sec] (mean)
Time per request: 226.421 [ms] (mean)
Time per request: 11.321 [ms] (mean, across all concurrent requests)
Transfer rate: 141.12 [Kbytes/sec] received
22.95 kb/s sent
164.07 kb/s totalConnection Times (ms)
min mean[+/-sd] median max
Connect: 0 1 4.3 0 37
Processing: 99 225 149.8 203 1358
Waiting: 99 224 149.7 202 1357
Total: 99 225 153.6 203 1394Percentage of the requests served within a certain time (ms)
50% 203
66% 216
75% 225
80% 231
90% 247
95% 269
98% 1092
99% 1316
100% 1394 (longest request)
驚きの11秒台
ちなみにこれ
同時接続20で1000回の結果だから、
実際の大会の測定方法に合わせると、この半分くらいのタイムに。
5秒台とか、、、、