GoogleAppEngineのReq/Sec計って見た
GAEの特徴を語る上でスケールしますとかよく聞くがスケールとは何なのか具体的にどれくらいなのか分からないので、abしてみた。
Server Software: Google Server Hostname: a2c-dev.appspot.com Server Port: 80 Document Path: / Document Length: 161 bytes Concurrency Level: 100 Time taken for tests: 6.565 seconds Complete requests: 1000 Failed requests: 0 Total transferred: 347000 bytes HTML transferred: 161000 bytes Requests per second: 152331.93 Transfer rate: 52859.18 kb/s received Connnection Times (ms) min avg max Connect: 8 14 63 Processing: 201 616 1500 Total: 209 630 1563
去年のGoolgeI/Oのgaeセッションで、こういった超短期的なベンチマークは全く意味が無い。と言っていたので、まぁ、意味は無いんだろうけど5時間も10時間もやってられない。とりあえづ、DataStoreにはアクセスがないページで見ると、Req/Secは、15万超えてる。これって結構イイ数な気がするんだけど、他の仕組みを知らないので何とも言えない。
DataStoreからデータを引っ張りつつ、profileも使ってるページだと
Server Software: Google Server Hostname: a2c-dev.appspot.com Server Port: 80 Document Path: /ngram Document Length: 14130 bytes Concurrency Level: 100 Time taken for tests: 13.763 seconds Complete requests: 1000 Failed requests: 954 (Connect: 0, Length: 954, Exceptions: 0) Total transferred: 14363338 bytes HTML transferred: 14174774 bytes Requests per second: 72660.70 Transfer rate: 1043650.26 kb/s received Connnection Times (ms) min avg max Connect: 8 14 52 Processing: 403 1232 3343 Total: 411 1246 3395
秒7万まで落ちる。しかも10%弱がFailedしてる。
I/Oでの話だと負荷がかかり続けると、どんどんサーバーを増やしていくみたいな事を言っていたので、処理量可能量は増えていく気がするけど、どれくらいのペースで増えていくのかは不明。いつか数時間スパンで負荷テストしてみたいと思う。Erlangの負荷テストアプリも有るらしいのでそれも試してみたいところ。