rails + unicorn + nginx 環境を apache bench で負荷テスト
注意点:「Non-2xx responses」の数に注意しないといけない
- http://simosan.minibird.jp/wordpress/rails/unicorn%E3%81%A8nginx%E3%81%AE%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E6%94%B9%E5%96%84/
- 上記URLで、2000req/sec が出たと言っているが、これはアプリケーション側が死んでnginxが502を返しているだけの可能性が高い
- apache benchの結果の出力の
Non-2xx responses
は、2xx系でないステータスコードの数を表すので、その項目も注意して見る - 高負荷状況で502が返ってくる場合は、unicornのbacklog設定と、linuxのsysctlの設定を見直す。参考:http://stackoverflow.com/questions/15477740/bad-gateway-errors-at-load-on-nginx-unicorn-rails-3-app
テスト実施
テスト環境
- rails 4.1.2
- unicorn 4.8.3
- nginx 1.7.6
- DB: Mysql (RDSのm3.large)
- サーバ1台(awsのm3.large)
- viewの内容(標準的なウェブサイトのトップページのイメージ)
- DBアクセスはindexを使ったselectを数件のみ。
- viewのキャッシュなし
- abコマンド: ab -n 3000 -c 500 #{url}
テスト結果
上記の設定だと、50req/secくらいになった。
viewのレンダリングが遅いので、viewを細かくキャッシュして、200req/secくらいが限界な気がする。
600req/sec くらいは簡単にいくよ!って人がいたら、コメントに書いてもらえると嬉しいです。
Author And Source
この問題について(rails + unicorn + nginx 環境を apache bench で負荷テスト), 我々は、より多くの情報をここで見つけました https://qiita.com/moriteru/items/46369d9ed62ab941570e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .