SlideShare uma empresa Scribd logo
1 de 117
Baixar para ler offline
もうアラートなんて怖くない!
WEBアプリケーション負荷試験実践入門
株式会社ゆめみ 仲川樽八
0. 講師紹介
樽八って誰?
株式会社ゆめみ2001年度入社エンジニア
2000年頃から主にLAMP構成のWeb系ア
プリケーションの開発を行う。
近年はクラウドを前提としたシステムを中
心に高負荷アプリケーションの設計、開発を
手がけている。
プライベートでは4人の娘の父親。
1. セミナーの目的
• 負荷試験の重要性を認識して頂く
• 意味のある負荷試験を最短距離で行うための“段取り”を持ち帰って頂く
このセミナーの目的
今回の負荷試験対象システム
負荷試験対象システム全体像
クラウド上でスケール可能なシステムを構成
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
• LAMP構成のシステム
• WEBアプリケーションサーバはLBの後ろに設
置されている
• 全てAZ(データセンター)をまたいだ形で設置
し、単一障害点はない
• キャッシュを利用
• DBはスケールアップで対応
ElastiCache
ElastiCache
2. 負荷試験の目的と必要性
負荷試験の目的は何でしょうか?
特定の条件下でのシステム
全体のスループットを担保すること。
例:「一時間で○○万人の応募を受け付けます!!」
という数字を担保すること。
負荷試験の目的
…ではありません。
負荷試験で担保できるのは、
「○○以上の性能は出ません。」
という上限の数字です。
※実際の外部要因は全て
性能を落とす方向に動かします。
負荷試験の目的
実装されたアプリケーションが設計通りにス
ケール可能かどうかはわかりません!!
それを確認し、設計通りに動作することを担保
するのが負荷試験の目的です。
負荷試験の真の目的
スケール可能な設計
高負荷の時はスケールアウトする
Elastic Load
Balancing
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
お金で解決する!
若干のメンテナンス時間さえ取れれば
スケールアップ出来る
RDS DB instance
xlarge
RDS DB instance
8xlarge
お金で解決する!
そう考えて負荷試験をしなかった、、、
WEBサーバを追加したのに、
DBサーバをスケールアップしたのに、
スループットは改善しない!!!
ということは往々にしてあります。
CPU負荷 100%張り付き
LOCK WAIT TIMEOUT
鳴
り
止
ま
な
い
電
話
Load Ave. 900??
既に8XLARGE使ってます!!
終
電
っ
て
何
?
媒体告知打っちゃったよ!!!
システムの性能担保ではなく、
実装が設計通りに動作することの担保
ですので、
開発者を守るために行うのが負荷試験です。
大前提として、
負荷試験の時間と予算は必ず確保する。
ただし、それに失敗した時も、時間、予算が無
いなりの負荷試験を行ないましょう。
3. 負荷試験の段取り
やってはいけない
いきなり全体の負荷試験を行う
例えば、最初にシステム全体に対して負荷試験を行って
しまった場合において、システムが性能要件を満たさな
かったら、、、。
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
負荷試験結果が芳しくない原因(例)
負荷試験結果が芳しくない原因(例)
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
Stress Test
☠
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
負荷試験結果が芳しくない原因(例)
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
☠ ☠ ☠ ☠
☠
Stress Test
負荷試験結果が芳しくない原因(例)
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
☠ ☠ ☠ ☠
☠
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
EC2 instance
ElastiCache
Stress Test
☠
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
負荷試験結果が芳しくない原因(例)
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
☠ ☠ ☠ ☠
Stress Test
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
負荷試験結果が芳しくない原因(例)
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
☠ ☠ ☠ ☠
Stress Test
☠ ☠
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
負荷試験結果が芳しくない原因(例)
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
☠ ☠ ☠ ☠
Stress Test
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
負荷試験結果が芳しくない原因(例)
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
☠ ☠ ☠ ☠
Stress Test
☠ ☠
考えられる要因が複数ありすぎて一つづつ潰すのは大変。
【重要】切り分けして原因を潰していける順序で負荷試験を
行う。
4. 段取りに沿った負荷試験勇者編
Webサーバ1台から
負荷試験勇者編
単体の敵を直接攻撃する。(弱い敵から)
静的ファイル HelloWorld 参照ページ 更新ページ
LV.1 負荷試験ツールの試験を行う
LV.2 フレームワークの最速値を計測する
LV.3 参照系を単体で負荷試験を行う
LV.4 更新系を単体で負荷試験を行う
負荷試験勇者編
入門レベル目標
勇者LV.1 負荷試験ツールの試験を行う
静的ファイルがあらわれた。
たるはちはちょくせつこうげきをした。
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
勇者LV.1負荷試験ツールの試験を行う
攻撃サーバ = 攻撃されるサーバ
Webサーバ1台だけ
静的リソースファイルへのアクセス
※この時Localhostへの攻撃をするようにしま
す。
EC2 instance
web app
server
Index.html
.html
勇者LV.1 負荷試験ツールの試験を行う
静的ファイルに対する負荷試験をかける
リソースも逼迫していないのに結果が遅い時には負荷をかける方法がおかしいので、十分なスルー
プットが出るまで調整する。
(※攻撃サーバがネットワーク的に遠い場合や攻撃ツールが最適化されえいない場合などがありま
す。また、攻撃サーバのローカルポートが不足した時もエラーとして観測されます。)
たるはちはただしい負荷のかけ方をおぼえた!
2ポイントの経験値をかくとく!
たるはちはレベル2になった!
負荷試験結果が芳しくない原因(例)
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
勇者LV.2 フレームワークを通したHelloWorldの負荷試験を行う
HelloWorldがあらわれた。
たるはちはちょくせつこうげきをした。
勇者LV.2 フレームワークを通したHelloWorldの負荷試験を行う
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
攻撃サーバ = 攻撃されるサーバ
EC2 instance
web app
server
Webサーバ1台だけ
フレームワークの機能を利用した上で最低
限のHellowWorldでの試験を行う
この時にまだ外部のリソースを利用しない
HellowWorld.php
.php
勇者LV.2 フレームワークを通したHelloWorldの負荷試験を行う
• 理論上の最速値が得られます
• 例えば
• LV1静的ファイルで1000REQ/SEC、HELLOWORLDで300REQ/SEC とかになります
• 今後DBに接続した処理などが 400REQ/SECとかには絶対にならないです。
• 200REQ/SECとか出てればOK! というような目安にします。
• この時点でスループットが遅かったらフレームワークやミドルウエア、利用
ライブラリ等の見直しが必要になります。
たるはちはフレームワークの問題をきりわけた!
10ポイントの経験値をかくとく!
たるはちはレベル3になった!
負荷試験結果が芳しくない原因(例)
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• キャッシュ設計に問題がある
• ロジックに問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
勇者LV.3 参照系のページやAPIを単体で負荷試験を行う
参照ページがあらわれた。
たるはちはちょくせつこうげきをした。
Webサーバ1台だけ
DBに対して参照のみ行われるケースの試験
勇者LV.3 参照系のページやAPIを単体で負荷試験を行う
Elastic Load
Balancing
Availability Zone Availability Zone
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
攻撃サーバ = 攻撃されるサーバ
EC2 instance
web app
server
.php
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
ElastiCache
ElastiCache
参照.php
勇者LV.3 参照系のページやAPIを単体で負荷試験を行う
更新系のページの計測を行う前にこの計測を行うことで、更新ロックによるリソース競合が発生し
にくい状況での負荷試験を行えます。
このため、遅かった場合でも純粋なSlowQuery等の調査が行い易いです。
ここで参照系SQLの最適化やDBインデクスの見直し、キャッシュ利用ポリシーの見直しなどが行
うことができます。
たるはちはキャッシュ設計をみなおした!
たるはちはDB接続をみなおした!
たるはちはDB参照をみなおした!
30ポイントの経験値をかくとく!
たるはちはレベル4になった!
負荷試験結果が芳しくない原因(例)
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• ロジックに問題がある
• キャッシュ設計に問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
勇者LV.4 更新系のページやAPIを単体で負荷試験を行う
更新ページがあらわれた。
たるはちはちょくせつこうげきをした。
Webサーバ1台だけ
DBに対して
参照、更新の両方が行われるケースの試験
勇者LV.4 更新系のページやAPIを単体で負荷試験を行う
Elastic Load
Balancing
Availability Zone Availability Zone
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
攻撃サーバ = 攻撃されるサーバ
EC2 instance
web app
server
.php
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
ElastiCache
ElastiCache
更新.php
勇者LV.4 更新系のページやAPIを単体で負荷試験を行う
参照系ページでは発生しなかったリソース競合などが新たに発生す
る可能性がありますが、それらを切り分けて調査しやすくなります。
100ポイントの経験値をかくとく!
たるはちはDB更新をみなおした!
たるはちは賢者に転職した!
負荷試験結果が芳しくない原因(例)
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• ロジックに問題がある
• キャッシュ設計に問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
5. 段取りに沿った負荷試験賢者編
負荷試験賢者編
俺達の本当の戦いはこれからだ
攻撃シナリオを組む 大量の敵と戦う
Webサーバは
なかまを呼んだ!
たるはち
B 105
W 85
H 95
攻撃する仲間を増やす
たるはちは
なかまを呼んだ!
たるはち
B 105
W 85
H 95
たるはち
B 105
W 85
H 95
たるはち
B 105
W 85
H 95
LV.1 ユーザの導線を想定した試験を行う
LV.2 スケールアップ・スケールアウト可能なシステムである
ことを確認する
LV.99 複数の攻撃サーバから同時攻撃をする
負荷試験勇者編
勇者レベル目標
【目的】
【時間があれば】
勇者LV.1 ユーザの導線を想定した試験を行う
Jmeter等のシナリオ記述可能なツールで実際のユーザーの行動を想定したシナリオを
組んで試験を行ないます。
シナリオを組むことで、Session的なアクセスなども出来るようになります。
シナリオの組み方1
シナリオを組むためにproxyを立てて実際のリクエストをキャプチャする方法も有ります
が、多くの場合必要ありません。
典型的なユーザーの導線を“適当に”考えて“適当に”組んでいきます。
特定のページのシナリオの組み方がよくわからない場合は、Chromeの要素を検証-
>Networkから確認出来るパラメータを入れるだけでもなんとかなります。
実際のページリクエストに近いものを知りたい場合は、アクセスログから抽出するなどし
てもいいでしょう。
シナリオの組み方2
• ユーザーの導線の完璧なモデルケースは作れない
• より“重要そう”で、“負荷が高そう”で“問題になりそう”なシナリオで十分
負荷試験の目的は、システムのスケール性能を担保すること!!
Webサーバ1台だけ
予め記載されたシナリオに沿った試験を行う
入会シナリオ・投稿シナリオなど
賢者LV.1ユーザの導線を想定した試験を行う
Elastic Load
Balancing
Availability Zone Availability Zone
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
攻撃サーバ = 攻撃されるサーバ
EC2 instance
web app
server
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
ElastiCache
ElastiCache
200ポイントの経験値をかくとく!
たるはちはシナリオに沿った試験をした!
たるはちは賢者レベル2になった!
負荷試験結果が芳しくない原因(例)
• 試験内容、方法に問題がある
• インフラに問題がある
• LBに問題がある
• ネットワークに問題がある
• ミドルウエア設定、カーネルパラメータ設定に問題がある
• アプリケーションに問題がある
• フレームワークに問題がある
• ロジックに問題がある(シナリオが流れる範囲で新たに担保できる)
• キャッシュ設計に問題がある
• DBに問題がある
• 参照に問題がある
• 更新に問題がある
賢者LV.2 スケールアップ・スケールアウト
可能なシステムであることを確認する
Webサーバは
なかまを呼んだ!
たるはち
B 105
W 85
H 95
リソースが逼迫したサーバに関してスケールアップやスケールアウトを行ない、
ボトルネックが解消されて、実際にスループットが改善することを確認する。
賢者LV.2 スケールアップ・スケールアウト
可能なシステムであることを確認する
Availability Zone
Availability Zone
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
ElastiCache
ElastiCache
軽い☺
重い(*_*) 負荷のかかっているリソースを増強する
軽い☺
スループット
500req/sec
Elastic Load
Balancing
賢者LV.2 スケールアップ・スケールアウト
可能なシステムであることを確認する
Availability Zone
Availability Zone
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
ElastiCache
ElastiCache
負荷のかかっているリソースを増強する
軽い☺
スループット
1000req/sec
Elastic Load
Balancing
EC2 instance
web app
server
普通☺
重い(*_*)
EC2 instance
賢者LV.2 スケールアップ・スケールアウト
可能なシステムであることを確認する
Availability Zone
Availability Zone
web app
server
EC2 instance
web app
server
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
ElastiCache
ElastiCache
負荷のかかっているリソースを増強する
軽い☺
スループット
1200req/sec
Elastic Load
Balancing
EC2 instance
web app
server
web app
server
EC2 instance
重い(*_*)
1500req/secにならないぞ?
普通☺
EC2 instance
賢者LV.2 スケールアップ・スケールアウト
可能なシステムであることを確認する
Availability Zone
Availability Zone
web app
server
EC2 instance
web app
server
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
ElastiCache
ElastiCache
普通☺
DBをスケールアップ
軽い☺
スループット
1500req/sec
Elastic Load
Balancing
EC2 instance
web app
server
web app
server
EC2 instance
重い(*_*)
リソースを増強する度に、スループットが上昇するとともに、逼迫するリソース
が移動していけばOK
リファクタリングを逼迫したリソース部分を中心に行うことが出来る。
どこにもリソース逼迫が観測されないのにスループットが上昇しない場合は
負荷試験のかけ方がおかしいまたはシステムの限界性能がそこまでというこ
と。
賢者LV.2 スケールアップ・スケールアウト
可能なシステムであることを確認する
スケールアウトやスケールアップをしてもシステムが追従しないことは良くあ
る。
スケールアップで性能が実際に追従するかどうかはやってみないとわからな
い。
特に、RDSで既に十分大きめのインスタンスを使っていた場合にスケール
アップでスループットが改善しないことも多いことに注意する。
賢者LV.2 スケールアップ・スケールアウト
可能なシステムであることを確認する
たるはちは構築したシステムがスケール可能なシス
テムであることを確認した!
1000ポイントの経験値をかくとく!
エンジニアに安らかな日々が訪れた。。。
賢者LV.99 複数の攻撃サーバから同時攻撃をする
たるはちは
なかまを呼んだ!
たるはち
B 105
W 85
H 95
たるはち
B 105
W 85
H 95
たるはち
B 105
W 85
H 95
賢者LV.99 複数の攻撃サーバから同時攻撃をする
クラウドを使えば比較的簡単にJmeter攻撃サーバクラスタを組んだ上でDDOS
攻撃をかけることが出来ます。必要に応じて検討して下さい。
http://dev.classmethod.jp/cloud/apache-jmeter-master-slave-100mil-req-
min/
※この時、全てのサーバから同一のシナリオを流すことに注意して下さい。
攻撃側が1台で負荷を十分にかけることが出来ない場合は、攻撃サーバを複数
起動してから攻撃をかけます。
6. ツールの紹介
ツール
• 負荷試験ツール
• Apachebench
• Jemeter
• Gatling
• Etc…
• プロファイリングツール
• XHProf
• New Relic
• Etc…
ApacheBench
ApacheBench
• 簡単にかけることが出来る、POST/PUTの試験も可能
• リクエストごとにパラメータを変更する事ができない
• DELETEはできない
• シナリオ記載ができない
時間がなかったら、これでもいいから負荷試験をかける。
多くの場合はカバーできる
Apache Jmeter
インストール方法
Jmeter install
Apache Jmeter
• 各種のmethodが利用可能
• シナリオの記載が可能
• リクエストごとにパラメータの変更が可能
• 攻撃サーバを増やして高負荷をかけることが可能
• 結果の可視化が可能
Jmeterは何回かシナリオを書いたら慣れてくるので意外と簡単になります。
怖くない。
シナリオ記載可能な高機能負荷試験ツールとしては他にもGatlingなどがあります。
参考:Jmeterで負荷をかけられなくなるリスナーの例
【結果をツリーで表示】
リクエスト結果がわかり便利だが、
これが有効になっていると恐らくネットワーク遅
延が原因でまともな負荷をかけられなくなる。
ログエラーのみにチェックを入れていても同じな
ので、試験の前に無効化する必要あり
XHProf
インストール方法
xhprof install
XHProf
HTTP://PHP.NET/MANUAL/JA/BOOK.XHPROF.PHP
インストール・利用が非常に簡単なプロファイリングツール
Graphvizをインストールすることで実行時間が長い箇所を可視化してくれる
※全てのプロファイリングツールに共通の問題として、利用後は機能をOFFにしておくこと
XHProf (wordpress index.php)
この例では、リクエストパラメータのuse_xhprofを見て、プロ
ファイリングを行うかどうかを決定している。
負荷がかかった状態でのプロファイル結果をみるべきだが、
負荷をかけるための攻撃ではプロファイリングを無効にして、
同時に別のリクエストでプロファイリングを行うことが重要。
XHProfサンプル1
XHProfサンプル2
Graphvizをインストールすると
プロビジョニング結果の可視化も可能
XHProfサンプル3
実行時間のかかっているメソッドや、
実行回数が多すぎるメソッドなどを追うことが出来る。
7. 負荷試験でやってはいけない集
開発工程の一番最後に負荷試験する。
やってはいけない
製造
単体試験
結合試験
商用環境構築 負荷試験
リリース日
全部が揃ってなくても、環境が整ってなくても試験をし
ておかないと、修正期間が取れません。
製造
単体試験
結合試験
負荷試験
リリース日
修正期間
商用環境構築
間違った方法で負荷をかける
やってはいけない
自作シェルスクリプトで負荷試験
#!/bin/bash
date
php /var/www/html/pc/login2c.php test_mm_1@yumemi.co.jp > /dev/null &
php /var/www/html/pc/login2c.php test_mm_2@yumemi.co.jp > /dev/null &
php /var/www/html/pc/login2c.php test_mm_3@yumemi.co.jp > /dev/null &
...
中略
...
php /var/www/html/pc/login2c.php test_mm_999@yumemi.co.jp > /dev/null &
php /var/www/html/pc/login2c.php test_mm_1000@yumemi.co.jp > /dev/null
date
1000行並んでました。。。。
遠くのネットワークから攻撃する
やってはいけない
EC2 instance
web app
server
EC2 instance
web app
server
攻撃元が遠いとダメ(失敗例)
Elastic Load
Balancing
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
ElastiCache
ElastiCache
攻撃されるサーバ
EC2 instance
web app
server
EC2 instance
web app
server
攻撃サーバ
AZをまたいでの負荷試験はほぼ無意味
スループットは上がらないのに、リソースが
余るという状況が発生する。
ネットワークの試験になるだけでなく、一部
の遅いプロセスが全部終わるまで試験が終
わらないために、攻撃対象サーバに負荷が
かからない。
Availability Zone Availability Zone
ちなみに、あまりにも時間がなさすぎて、
社内ネットワークから負荷試験をかけてみた
「2時間後に芸能人呼んでプレスリリース打つんだけど、
このサイトの負荷試験しておいてよ。」
「負荷試験シナリオ?ないよ。TOPページから適当にお願
い。」
Webアプリケーション負荷試験実践入門
社内にウイルス感染したPCがあるとの疑惑で怒られた。
ELB配下のインスタンス群を
Multi-AZ構成にして攻撃する
やってはいけない
ELBを利用したスケールアウトの試験(失敗例)
Elastic Load
Balancing
Availability Zone Availability Zone
RDS DB
instance
RDS DB
instance standby
(Multi-AZ)
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
EC2 instance
web app
server
ElastiCache
ElastiCache
AZをまたいでいるので無意味
ELBがDNSキャッシュしてしまって、どち
らかのZoneにしか負荷がかからない
なんか負荷試験やりにくかったので
今回はパス!!
やってはいけない
負荷試験実施が難しいケース1
• 外部システムとの結合がある
• スタブを用意する
• パラメータを動的に変更しなければならないケース
• シナリオ記述できる負荷試験ツールを使う
• プログラムの一部改変をする
• 最悪、一部の機能を殺してでも試験は行う
負荷試験実施が難しいケース2
• 負荷試験環境が存在しない
• クラウドだったら頑張って構築する
• オンプレミスで稼働中のシステムだったら、クラウドに類似システムを構築す
る
• 同規模の環境の構築が難しければ、小さなインスタンスと台数で構築して、N
倍して考える
ELBやCloudfrontなどのベンダーの提供す
る既存サービスに対して負荷試験を行う
やってもいみない
静的コンテンツはサービス利用前提とすると
負荷試験も行わないでよい。
S3での配信+リバースプロクシを立てる
リバースプロクシとしてnginxやsquidと
かいろいろ有りますが、、、
冗長化やスケール性を考えるとAkamai
やCloudFrontなどのCDN立てるのが
一番エンジニアが楽できます。
Amazon S3
CloudFront
補足
システムが遅い時のあたりの付け方
• (既存/自作)FWが重い(CPU負荷が高い、メモリ使用量が多い)
• DBの応答が遅い(Slow query logを見る)
• SQLが悪い(ORMのせいかも)
• INDEXが不適切
• ロックが発生している(INNODB_LOCKSやログ監視など)
• 無駄なSQLが発行されている
• DB設計が悪い
• リソース不足
• コネクションプーリングしていない(DB/Memcached)
• 不要なループ・冗長なコード・内部リソースの使い回しがされていない
• Cacheが適切に設定されていない
攻撃サーバの設定を変更する
Cent OSの場合
sysctl -p
/etc/sysctl.conf
net.ipv4.ip_local_port_range = 32768 65000
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 10
※アプリケーションがコネクションプーリングを利用していなかっ
た場合にもこの設定を変える必要がある。
TCP関連の設定を変えないと、単位時間あたりのリクエスト量が増えた時
に攻撃サーバのソケットが枯渇して新規に接続を行うことができなくなる。
負荷試験が必要ないケースもあります
• 既存システムの少改修
• トラフィックが“絶対に”増えないケース
• トラフィックが増えた時に落ちても良いケース
• ELBやCloudFrontなどの外部ベンダーの提供する既存サービスに対する負
荷試験
(静的コンテンツをCDN使って配信しているケースなど)
負荷試験結果事例の紹介
質疑応答(10分)
ご静聴ありがとうございました。

Mais conteúdo relacionado

Mais procurados

シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐkwatch
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えしますA5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えしますester41
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!kwatch
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング佑哉 廣岡
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方Amazon Web Services Japan
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 

Mais procurados (20)

Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐO/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Java11へのマイグレーションガイド ~Apache Hadoopの事例~Java11へのマイグレーションガイド ~Apache Hadoopの事例~
Java11へのマイグレーションガイド ~Apache Hadoopの事例~
 
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajpAt least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
A5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えしますA5 SQL Mk-2の便利な機能をお教えします
A5 SQL Mk-2の便利な機能をお教えします
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
 
JVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニングJVMのGCアルゴリズムとチューニング
JVMのGCアルゴリズムとチューニング
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方20200708サーバーレスでのAPI管理の考え方
20200708サーバーレスでのAPI管理の考え方
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 

Destaque

Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃんRetrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃんYukari Sakurai
 
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料樽八 仲川
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~johgus johgus
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案樽八 仲川
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏Yusuke Hirao
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちはYoshio Hanawa
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうかMasahito Zembutsu
 
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 Ken'ichi Matsui
 
プログラマのための線形代数再入門
プログラマのための線形代数再入門プログラマのための線形代数再入門
プログラマのための線形代数再入門Taketo Sano
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析Yuki Mizuno
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門yoku0825
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからHiroshi Kawada
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫Yuta Imai
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側Takeshi HASEGAWA
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発慎一 古賀
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」Takuto Wada
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説Livesense Inc.
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術Noriaki Kadota
 
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向shigeki_ohtsu
 

Destaque (20)

Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃんRetrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
 
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
SQLまで使える高機能NoSQLであるCouchbase Serverの勉強会資料
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは偶然にも500万個のSSH公開鍵を手に入れた俺たちは
偶然にも500万個のSSH公開鍵を手に入れた俺たちは
 
運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか運用に自動化を求めるのは間違っているだろうか
運用に自動化を求めるのは間違っているだろうか
 
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料 「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
「内積が見えると統計学も見える」第5回 プログラマのための数学勉強会 発表資料
 
プログラマのための線形代数再入門
プログラマのための線形代数再入門プログラマのための線形代数再入門
プログラマのための線形代数再入門
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
MySQLテーブル設計入門
MySQLテーブル設計入門MySQLテーブル設計入門
MySQLテーブル設計入門
 
ウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれからウェブパフォーマンスの基礎とこれから
ウェブパフォーマンスの基礎とこれから
 
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
 
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
「スプラトゥーン」リアルタイム画像解析ツール 「IkaLog」の裏側
 
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説人は一ヶ月でエンジニアになれるのか - 詳細解説
人は一ヶ月でエンジニアになれるのか - 詳細解説
 
中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術中の下のエンジニアを脱出するための仕事術
中の下のエンジニアを脱出するための仕事術
 
SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向SSL/TLSの基礎と最新動向
SSL/TLSの基礎と最新動向
 

Semelhante a Webアプリケーション負荷試験実践入門

AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAmazon Web Services Japan
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術finoue
 
Application Deployment on AWS
Application Deployment on AWSApplication Deployment on AWS
Application Deployment on AWSEiji Shinohara
 
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~Amazon Web Services Japan
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIAkyon mm
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門minazou67
 
クラウドを積極活用した サービスの開発のために
クラウドを積極活用したサービスの開発のためにクラウドを積極活用したサービスの開発のために
クラウドを積極活用した サービスの開発のためにYuichiro Saito
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -SORACOM, INC
 
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - SORACOM, INC
 
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...Insight Technology, Inc.
 
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCacheAWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCacheAmazon Web Services Japan
 
ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用Masaya Konishi
 
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)Amazon Web Services Japan
 
C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章Insight Technology, Inc.
 
20160720 aws development-tools-and_hybrid_cdp
20160720 aws development-tools-and_hybrid_cdp20160720 aws development-tools-and_hybrid_cdp
20160720 aws development-tools-and_hybrid_cdpYukitaka Ohmura
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストKuniteru Asami
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-Amazon Web Services Japan
 
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編
スタートアップならおさえておきたいAWS(Amazon Web Services)入門  2限目:基本構成とピーク対策編スタートアップならおさえておきたいAWS(Amazon Web Services)入門  2限目:基本構成とピーク対策編
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編schoowebcampus
 

Semelhante a Webアプリケーション負荷試験実践入門 (20)

AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic BeanstalkAWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
AWS Black Belt Online Seminar 2017 AWS Elastic Beanstalk
 
Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術Awsで実現するseleniumテスト高速術
Awsで実現するseleniumテスト高速術
 
Application Deployment on AWS
Application Deployment on AWSApplication Deployment on AWS
Application Deployment on AWS
 
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
AWS Black Belt Online Seminar 2017 AWS体験ハンズオン~Deploy with EB CLI編~
 
20201029 nagatani
20201029 nagatani20201029 nagatani
20201029 nagatani
 
Functional Testing in #YAPCASIA
Functional Testing in #YAPCASIAFunctional Testing in #YAPCASIA
Functional Testing in #YAPCASIA
 
Java EE 再入門
Java EE 再入門Java EE 再入門
Java EE 再入門
 
クラウドを積極活用した サービスの開発のために
クラウドを積極活用したサービスの開発のためにクラウドを積極活用したサービスの開発のために
クラウドを積極活用した サービスの開発のために
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
 
AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 - AWSクラウドデザインパターン(CDP) - 概要編 -
AWSクラウドデザインパターン(CDP) - 概要編 -
 
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
[db tech showcase Tokyo 2015] C15:DevOps MySQL in カカクコム~ OSSによる可用性担保とリアルタイムパフ...
 
AWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCacheAWS Black Belt Techシリーズ Amazon ElastiCache
AWS Black Belt Techシリーズ Amazon ElastiCache
 
ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用ElasticBeanstalkでのRailsアプリ運用
ElasticBeanstalkでのRailsアプリ運用
 
cross2012a fujya
cross2012a fujyacross2012a fujya
cross2012a fujya
 
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
[AWS Summit 2012] クラウドデザインパターン#3 CDP Eコマース編 (EC-CUBE)
 
C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章C32 DB Performance on Cloud by 安藤賀章
C32 DB Performance on Cloud by 安藤賀章
 
20160720 aws development-tools-and_hybrid_cdp
20160720 aws development-tools-and_hybrid_cdp20160720 aws development-tools-and_hybrid_cdp
20160720 aws development-tools-and_hybrid_cdp
 
Azure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステストAzure load testingを利用したパフォーマンステスト
Azure load testingを利用したパフォーマンステスト
 
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
[AWSマイスターシリーズ] AWS Elastic Beanstalk -Python編-
 
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編
スタートアップならおさえておきたいAWS(Amazon Web Services)入門  2限目:基本構成とピーク対策編スタートアップならおさえておきたいAWS(Amazon Web Services)入門  2限目:基本構成とピーク対策編
スタートアップならおさえておきたいAWS(Amazon Web Services)入門 2限目:基本構成とピーク対策編
 

Webアプリケーション負荷試験実践入門

Notas do Editor

  1. まずは皆様お集まりいただきありがとうございます。 ツールの話は最低限に抑えて、汎用的な話ができればと思います。
  2. 最終目的はアプリケーションリリース前の負荷試験によりシステムの安定運用を担保し、リリース後の不幸を減らすことですが、、、、。
  3. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  4. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  5. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  6. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  7. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  8. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  9. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  10. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  11. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  12. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  13. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  14. 攻撃側の負荷なんてたかがしれてる。 ABだともっと楽
  15. アプリケーションの改善の話は省略
  16. 口頭で説明
  17. アプリケーションの改善の話は省略