横浜に住んで。
横浜から離れて(仮)
Yusuke Wada a.k.a. yusukebe
2014/11/28
Yokohama.pm#12
Gazelle
ということで kazeburo さんが速いサーバを書いたので
本番で使ってみる!
試験環境じゃつまらないので稼働中の API サーバに入れてみる
$ cpanm Gazelle
$ lv /XXX/daemontools/bokete_api/run
carton exec start_server --path=/dev/shm/app.sock \
-- plackup -s Gazelle \
--max-workers 50 --max-reqs-per-child 10000 \
-E production-api -a ./psgi/bokete_web_api.psgi
とりあえず稼働中ですが…
参考にしにくいですが…
ab 打ってみた
$ ab -n 10000 -c 50 http://10.0.x.x/xxx/xxx
以下と結果を比較(他の環境は同じことを確認)
- A. Starlet <=> port <=> Nginx
- B. Gazelle <=> unix domain socket <=> Nginx
1. ロジック無し
Gazelle => 177% faster!!
2. ロジック有り
Gazelle => 110% faster!!
以下で比較してみた
- B. Gazelle <=> unix domain socket <=> Nginx
- C. Starlet <=> unix domain socket <=> Nginx
悔しいのでユーザーからのアクセスが無い環境をつくって試した
A. Starlet / port
- => 504.57 req/sec
- => 92.11 req/sec
B. Gazelle / unix domain socket
- => 625.65 req/sec
- => 95.51 req/sec
C. Starlet / unix domain socket
- => 641.32 req/sec
- => 92.30 req/sec
結論
- Nginx へは port 接続より**unix domain socket を使うと速い!! ** (Starlet/Gazelle)
- ただ本アプリでは Starlet と Gazelle の差があまり見られなかった
- 「そもそも高速な App サーバ要らない」って誰かが言ってた!
- kazeburo さんありがとうございます(何かあればお伝えします)
宣伝
ハチイチ忘年会 12 月 13 日だよ!