読者です 読者をやめる 読者になる 読者になる

かれ4

かれこれ4個目のブログ

チューニンガソンに行ってきた。

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でおんなじ構成を作った。
   で、ベンチ測ってみた結果、恐ろしい結果が。
   その結果はこちら。
   
   

Server Software: Apache/2.2.16
Server Hostname: 127.0.0.1
Server Port: 80

Document Path: /wordpress/wp-comments-post.php
Document Length: 1266 bytes

Concurrency 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 total

Connection 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 1450

Percentage 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)


驚異の21秒
何もチューニングせずにこの速さ

そしてAPCyum でいれただけの結果


Server Software: Apache/2.2.16
Server Hostname: 127.0.0.1
Server Port: 80

Document Path: /wordpress/wp-comments-post.php
Document Length: 1266 bytes

Concurrency 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 total

Connection 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 1394

Percentage 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秒台とか、、、、