質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
JMeter

Apache JMeterとは、Webアプリケーションの負荷テストをするためのJavaアプリケーションです。

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

3回答

20983閲覧

Jmeterによる負荷テスト。スループットが上がらない。

Aihara

総合スコア24

JMeter

Apache JMeterとは、Webアプリケーションの負荷テストをするためのJavaアプリケーションです。

unicorn

Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2017/02/13 08:59

編集2017/02/13 10:46

負荷をかけるソフトはJmeter2.13を使っています。
サーバーの環境はAWSで構築しました。

アプリのAPIサーバーに対して負荷テストを行っているのですが
想定している負荷をかけることができず、困っております。
負荷リクエストはかけられているのですが、具体的な値として160req/sを上限に全く上がりません。

負荷をかける側のサーバーに対して
・台数を増やす
・性能を上げる
・リクエスト数を増やす
以上のことを行いましたがスループットは上がりません。
特にリクエスト数(スレッドグループとスレッド数とループ回数)を増やすと
エラーが多く出るようになってしまいます。(90%くらい)
現状は
それなのに負荷をかける側のサーバーのCPUの使用率は6%ほどで、
サーバーを限界まで使い切れていないようです。
受け手側のサーバーもCPU使用率が10%もいかないです。

サーバー環境

APIサーバーが2台あります。
インスタンスタイプはt2.xlargeです
NginxUniconrRailsで作りました。
ELBを通しており、Auto Scalingも設定しています。
Nginxでの設定で
worker_processes Auto
worker_connections 2048
worker_rlimit_nofile 4096
worker_cpu_affinity 1000 0100 0010 0001
と設定しました。

Unicornでは
worker_processes 10
と設定しました。

データベースはpsqlを使用しており
AWSのRDSで作成しました。
db.m4.largeを使用しています。

一方Jmeter側ですが
Masterが1台、Slaveが1台です。
インスタンスタイプはm4.xlargeです。
投げているリクエストはPOSTです。ファイルなどは送信していません。
情報量もユーザーIDと投稿のID、HEADERにAuthKeyを付与してるだけです。

*追記
APIサーバー及びJmeterのMasterおよびSlaveのサーバーは
どちらもAWSで、かつ同じVPS内に立てています。


Jmeterのファイル作成はローカルで行っています。こちらもバージョン2.13です。
HEAPのメモリを上げる作業をしてみましたが、変わりませんでした。

同時接続2000を目標に捌けるよう環境構築をしたいです。

今はJmeterのバージョンを最新にしてもう一度試してみよう、、、というところです。

何か不足している情報がございましたら追加致します。
何卒宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

t_obara

2017/02/13 10:37

サーバとjmeterの実行時の位置関係が不明確です。どちらもawsでしょうか?ネットワーク構成上で上限が設定されるようなことがないのであれば、jmeter側の設定に問題がありそうです。
Aihara

2017/02/13 10:46

tomohiro_obara様、ご指摘ありがとうございます。追記いたしました。
guest

回答3

0

160req/sを上限に全く上がりません。

特にリクエスト数(スレッドグループとスレッド数とループ回数)を増やすと

エラーが多く出るようになってしまいます。(90%くらい)

要するに、そのあたりにシステムとしての限界値があるということだと思います。
どこが限界になっているかは、提示された情報では不明です。
関係しているのが、提示されているもので全てなのであれば、ELB が怪しい気がしますがただの勘です。
丁寧に各関連箇所のログを確認することで、問題を特定できると思います。

少し気になったのですが、AWSって負荷テストすることを規約で制限していないですか?普通 IaaS , PaaS ベンダーはそのあたりを縛ってくるのですが。

投稿2017/02/13 11:45

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Jmeter側が2台で160req/sしか出ない、とのことですが、これは1台でも同様の現象でしょうか?

以前、似たようなシチュエーションでJmeterを利用した際、1台あたりが負荷をかけられる上限が、100TPS前後だったため、1,000tps近くまで負荷をかけるときは、10台以上のJmeterから一気に負荷をかけたことがあります(構成は、1Master/9Slaveのような感じで)

つまり、Jmeter側が、あまり性能が出ないことで、負荷をかけ切れなかった、ということですね

これは、Jmeter内でBeanShellを利用しているときは、より顕著です

なお、スレッド数とループ回数をムダに増やしても、エラーになるだけなので、2~3分程度、流し続けてもエラーが出ないレベルを上限として、足りない場合は、台数追加でこなす、というのが確実でしょう

p.s.エラー無く、負荷を上げ続けられるようになると、「今度は負荷をかけ過ぎる」という状況が発生するため、一定のTPS以上に負荷をかけないよう、「定数スループットタイマー」で抑止してあげると、キレイに負荷をかけ続けられるようになります

投稿2017/05/28 18:29

piacerex

総合スコア51

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ELBはある程度継続的に負荷があがると自動的にスケールします。
digコマンドでELBのスケール状態を確認しましょう。
事前に負荷をかけること(暖機運転)を実施し、ELBがスケールしてから実際のテストを実施するといいかもしれません。

投稿2017/02/14 00:50

moonphase

総合スコア6621

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問