SlideShare a Scribd company logo
負荷試験、どうしてる?
KLabではこうしてます
Copyright © 2017 KLab Inc.
自己紹介
山田 大久(おおひさ)
● 勤務先: 福岡事業所勤務
● 所属: インフラマネジメント部(社歴は13年目)
● おもにDSASのお守りをしています
● インフラをやることになってから、8年ぐらい
● インフラをやる前は、iアプリのクライアント/サーバサイドをやってました
● 趣味: フリークライミング
Copyright © 2017 KLab Inc.
アジェンダ
● はじめに
● 負荷試験の目的
● 構成/担当役割
● モニタリングツール(グラフ)
● アタッカー並列数
● 負荷試験フロー
● 最後に
Copyright © 2017 KLab Inc.
はじめに
負荷試験、どうしてる?
Copyright © 2017 KLab Inc.
はじめに
実際にどうしているのか、あまり情報が出回っていな
いような気がします
そこで、KLab ではこうしているよ、という話をしようか
と
Copyright © 2017 KLab Inc.
アジェンダ
● はじめに
● 負荷試験の目的
● 構成/担当役割
● モニタリングツール(グラフ)
● アタッカー並列数
● 負荷試験フロー
● 最後に
Copyright © 2017 KLab Inc.
負荷試験の目的
負荷試験の目的ってなに?
Copyright © 2017 KLab Inc.
負荷試験の目的
● ユーザーに迷惑をかけない
○ 過負荷 -> メンテ -> 過負荷 -> 再メンテ
■ ユーザーからの信頼を損なう
Copyright © 2017 KLab Inc.
負荷試験の目的
そうならないためには、
事前に十分な負荷をかけ、
どこまでいけるかを把握
しておけば、
Copyright © 2017 KLab Inc.
負荷試験の目的
本番を迎えた時に、
持っている力を十二分に
発揮することができます!
Copyright © 2017 KLab Inc.
負荷試験の目的
● 想定アクセスに耐えられることを確認する
● 限界性能を把握する
Copyright © 2017 KLab Inc.
アジェンダ
● はじめに
● 負荷試験の目的
● 構成/担当役割
● モニタリングツール(グラフ)
● アタッカー並列数
● 負荷試験フロー
● 最後に
Copyright © 2017 KLab Inc.
構成
ATTACKER
LB
DB
KVS
WEB
WEB
WEB
モニタリングツール(グラフ)
インフラ
PJ
KLabが自社で運用しているサーバインフラ環境 (DSAS)
Copyright © 2017 KLab Inc.
プロジェクト担当者の役割
負荷試験自体は、プロジェクト担当者が実施
● WEBアプリ
○ プロファイリング
○ チューニング
● 負荷試験ツールの選定
● シナリオの作成
Copyright © 2017 KLab Inc.
インフラ担当者の役割
負荷試験の進め方や結果に対して、指摘やアドバイスを行う
● インフラ用意
● ミドルウェア設定
● ボトルネック調査
○ モニタリングツール(グラフ)
○ 詳細調査
Copyright © 2017 KLab Inc.
インフラ担当者 ⇔ プロジェクト担当者
インフラ
PJ
PJ: 負荷シナリオを実施しますねー
インフラ: はーい
PJ: 終わりましたー
モニタリングツール(グラフ)
Copyright © 2017 KLab Inc.
構成
ATTACKER
LB
DB
KVS
WEB
WEB
WEB
モニタリングツール(グラフ)
インフラ
PJ
KLabが自社で運用しているサーバインフラ環境 (DSAS)
Copyright © 2017 KLab Inc.
CPU, IO
NETWORK,
etc...
インフラ担当者 ⇔ プロジェクト担当者
インフラ
PJ
PJ: 負荷シナリオを実施しますねー
インフラ: はーい
PJ: 終わりましたー
インフラ: どこそこがまずいですね
PJ: どこそこを改修/変更します ⇒ しました
and/or
インフラ: どこそこを変更します ⇒ しました
PJ: 負荷シナリオを実施しますね
(以下、繰り返し)
モニタリングツール(グラフ)
Copyright © 2017 KLab Inc.
アジェンダ
● はじめに
● 負荷試験の目的
● 構成/担当役割
● モニタリングツール(グラフ)
● アタッカー並列数
● 負荷試験フロー
● 最後に
Copyright © 2017 KLab Inc.
モニタリングツール(グラフ)
モニタリングツール、何使ってる?
Copyright © 2017 KLab Inc.
モニタリングツール(グラフ)
DSASでは、こちら
● Ganglia + 独自ビュー
○ 情報収集は、Ganglia(gmetad,gmond,gmetric)
○ グラフ表示は、独自(ganglia-webをベース)
Copyright © 2017 KLab Inc.
モニタリングツール(グラフ)
Copyright © 2017 KLab Inc.
モニタリングツール(グラフ)
Copyright © 2017 KLab Inc.
モニタリングツール(グラフ)
Copyright © 2017 KLab Inc.
アジェンダ
● はじめに
● 負荷試験の目的
● 構成/担当役割
● モニタリングツール(グラフ)
● アタッカー並列数
● 負荷試験フロー
● 最後に
Copyright © 2017 KLab Inc.
アタッカー並列数
アタッカーの並列数は?
Copyright © 2017 KLab Inc.
アタッカー並列数
KLabでは、こうしています
   アタッカーの並列数
       ||
  WEBアプリの総ワーカー数
Copyright © 2017 KLab Inc.
アタッカー並列数
どうして同じにするの?
Copyright © 2017 KLab Inc.
アタッカー並列数
簡単な負荷試験の結果を紹介
Copyright © 2017 KLab Inc.
アタッカー並列数
● WEBマシン
○ CPU = 8
● WEBアプリ
○ Worker = 8 (CPU数に一致させる)
○ ListenBackLog = 100
Copyright © 2017 KLab Inc.
アタッカー並列数
並列数 req / sec time / req (msec)
8 42.47 188.380
24 42.48 564.939
100 42.45 2355.925
200 エラー発生 (928 リクエストのみ完了 )
※ abによる1000回試行の結果
Copyright © 2017 KLab Inc.
アタッカー並列数
ATTACKER
WEB
a-1
w-1 w-2 ・・・ w-N
a-2 ・・・ a-N
a-N+1 a-N+2 ・・・ a-X
● 並列数 > ワーカー数
○ レイテンシ劣化
● 並列数 >> ワーカー数
○ 接続エラー
○ タイムアウト
詰まる
Copyright © 2017 KLab Inc.
アタッカー並列数
アタッカーの並列数 = 総ワーカー数
||
エラーは発生しない
Copyright © 2017 KLab Inc.
アタッカー並列数
● エラーが発生し得ない状況で、エラーのないこと
を確認
● WEBアプリ本来の性能を把握
Copyright © 2017 KLab Inc.
アジェンダ
● はじめに
● 負荷試験の目的
● 構成/担当役割
● モニタリングツール(グラフ)
● アタッカー並列数
● 負荷試験フロー
● 最後に
Copyright © 2017 KLab Inc.
負荷試験フロー
目標設定
WEB 1台
目標設定
WEB 1台
負荷試験
WEB 8台
負荷試験
レビュー
限界性能
試験
終了
OK?
目標
達成?
OK?
YES
NO
YES
NO
NO
NO
YES
YES
Copyright © 2017 KLab Inc.
目標設定
目標設定
WEB 1台
目標設定
レビュー
YES
NO
● 目標設定
○ req/sec, response time, etc
● レビュー
○ 設定値の妥当性検証
○ PJ/インフラ担当者間の認識のすり合わせ
● WEB 1台あたりの目標設定
○ 大まかにreq/secを決定
Copyright © 2017 KLab Inc.
WEB 1台
WEB 1台
負荷試験
OK?
YES
NO
● WEBマシンの負荷/性能確認
○ req/sec, response time,
○ cpu, memory, traffic
● DB/KVSマシンの負荷確認
○ query/sec
○ IO etc…
● アタッカーマシンの負荷確認
Copyright © 2017 KLab Inc.
WEB 8台
● スケールアウト確認
● ネットワーク帯域確認
○ サービストラフィック
● DB/KVSマシンの負荷確認
○ cpu, memory, traffic
○ query/sec
○ evictions
○ IO etc…
● ボトルネック予測/対策
WEB 8台
負荷試験
OK?
NO
YES
Copyright © 2017 KLab Inc.
限界性能
限界性能
負荷試験
目標
達成?
NO
YES
ボトルネックを解消しながら、以下を繰り返す
● WEBマシン追加
● DB/KVS 分割
想定アクセス数を十分に上回れば、
負荷試験終了!
終了
Copyright © 2017 KLab Inc.
負荷試験フロー
● 少ない台数から段階的にWEB台数を増やす
○ 想定どおりにスケールアウトするか確認
○ ボトルネック特定が容易
● 限界性能の把握
○ アクセス数が想定を超えそうな場合の対応を検討しておく
例えば、
■ ネットワーク帯域の増強
■ DBマシンのCPU数を増やす
■ WEBアプリの軽量化を図る
Copyright © 2017 KLab Inc.
アジェンダ
● はじめに
● 負荷試験の目的
● 構成/担当役割
● モニタリングツール(グラフ)
● アタッカー並列数
● 負荷試験フロー
● 最後に
Copyright © 2017 KLab Inc.
最後に
● うたの☆プリンスさまっ♪ Shining Live
● キャプテン翼 ~たたかえドリームチーム~
直近でリリースした案件ですが、
Copyright © 2017 KLab Inc.Copyright © 2017 KLab Inc.
最後に
過負荷による緊急メンテは、
いままで、一回もなし!!
Copyright © 2017 KLab Inc.
最後に
ローンチを控えての負荷試験は大変ですが、
負荷試験は、のちの安定運用に繋がります
安定運用を続けることで、ユーザーからの信頼を得
られます
Copyright © 2017 KLab Inc.
最後の最後に
苦労して開発し、ローンチさせたゲーム
アクセスが多いことは嬉しいこと
アクセス増による負荷に怯えるのではなく、
純粋に楽しめるようにしたいですね
Copyright © 2017 KLab Inc.
最後に
ご静聴ありがとうございました!
Copyright © 2017 KLab Inc.

More Related Content

Viewers also liked

OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
徹 上野山
 

Viewers also liked (8)

悪意ないユーザに配慮した不正クライアントの排除
悪意ないユーザに配慮した不正クライアントの排除悪意ないユーザに配慮した不正クライアントの排除
悪意ないユーザに配慮した不正クライアントの排除
 
Raspberry piと.net coreのstandardな関係
Raspberry piと.net coreのstandardな関係Raspberry piと.net coreのstandardな関係
Raspberry piと.net coreのstandardな関係
 
Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法
 
ARもVRもMRもまとめてドーン
ARもVRもMRもまとめてドーンARもVRもMRもまとめてドーン
ARもVRもMRもまとめてドーン
 
ARもVRもMRもまとめてドドンドーン!
ARもVRもMRもまとめてドドンドーン!ARもVRもMRもまとめてドドンドーン!
ARもVRもMRもまとめてドドンドーン!
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
OpenCVの基礎
OpenCVの基礎OpenCVの基礎
OpenCVの基礎
 
OpenCV 3.0 on iOS
OpenCV 3.0 on iOSOpenCV 3.0 on iOS
OpenCV 3.0 on iOS
 

Similar to 負荷試験、どうしてる?(公開版)

Similar to 負荷試験、どうしてる?(公開版) (20)

20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...
20170428_【事前課題あり】ORACLE MASTER Bronze Oracle Database 12c 「12c SQL基礎[12c SQL]...
 
Webディレクター・マーケターのためのSQL教室 2015/07/13
Webディレクター・マーケターのためのSQL教室 2015/07/13Webディレクター・マーケターのためのSQL教室 2015/07/13
Webディレクター・マーケターのためのSQL教室 2015/07/13
 
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
 
Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築Lv1から始めるWebサービスのインフラ構築
Lv1から始めるWebサービスのインフラ構築
 
AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)AZAREA-Clusterセミナー(クラウドEXPO2013春)
AZAREA-Clusterセミナー(クラウドEXPO2013春)
 
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
 
Sharding with sql alchemy
Sharding with sql alchemySharding with sql alchemy
Sharding with sql alchemy
 
20180703 AWS Black Belt Online Seminar Amazon Neptune
20180703 AWS Black Belt Online Seminar Amazon Neptune20180703 AWS Black Belt Online Seminar Amazon Neptune
20180703 AWS Black Belt Online Seminar Amazon Neptune
 
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
 
Serverless Anti-Patterns
Serverless Anti-PatternsServerless Anti-Patterns
Serverless Anti-Patterns
 
【デブサミ関西B4】 壮絶!さくらのレンタルサーバ構築・運用の舞台裏
【デブサミ関西B4】 壮絶!さくらのレンタルサーバ構築・運用の舞台裏【デブサミ関西B4】 壮絶!さくらのレンタルサーバ構築・運用の舞台裏
【デブサミ関西B4】 壮絶!さくらのレンタルサーバ構築・運用の舞台裏
 
20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services
 
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
サーバーレスにおける開発プロセス戦略(パネルディスカッション用スライド)
 
フロントエンドエンジニアとしてAWS re:invent に行ってきました
フロントエンドエンジニアとしてAWS re:invent に行ってきましたフロントエンドエンジニアとしてAWS re:invent に行ってきました
フロントエンドエンジニアとしてAWS re:invent に行ってきました
 
ストリーム処理エンジン「Zero」の開発と運用
ストリーム処理エンジン「Zero」の開発と運用ストリーム処理エンジン「Zero」の開発と運用
ストリーム処理エンジン「Zero」の開発と運用
 
hbstudy#82 SRE大全 FullGCとの闘い (UZABSE SRE Team Hirofumi Kubo)
hbstudy#82 SRE大全 FullGCとの闘い (UZABSE SRE Team Hirofumi Kubo)hbstudy#82 SRE大全 FullGCとの闘い (UZABSE SRE Team Hirofumi Kubo)
hbstudy#82 SRE大全 FullGCとの闘い (UZABSE SRE Team Hirofumi Kubo)
 
JAWS DAYS 2016 ランチセッション
JAWS DAYS 2016 ランチセッションJAWS DAYS 2016 ランチセッション
JAWS DAYS 2016 ランチセッション
 
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
インフラエンジニアなら『さくらのクラウド』をAPIでいじろう【入門編】
 
ACI + Ansible
ACI + AnsibleACI + Ansible
ACI + Ansible
 
de:code行ってきて感じたことをつれづれなるままに話すLT
de:code行ってきて感じたことをつれづれなるままに話すLTde:code行ってきて感じたことをつれづれなるままに話すLT
de:code行ってきて感じたことをつれづれなるままに話すLT
 

Recently uploaded

最先端の勝ち筋 を常に考えてきた SAKIYOMIだからできる 全く新しい運用代行 Instagram総合支援
最先端の勝ち筋 を常に考えてきた SAKIYOMIだからできる 全く新しい運用代行 Instagram総合支援最先端の勝ち筋 を常に考えてきた SAKIYOMIだからできる 全く新しい運用代行 Instagram総合支援
最先端の勝ち筋 を常に考えてきた SAKIYOMIだからできる 全く新しい運用代行 Instagram総合支援
toshifumiyase1
 

Recently uploaded (8)

【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
【株式会社ゆめみ】 会社紹介 & 実績資料 ≫≫Saleshub_企業様向け≪≪
 
HRMOS-saiyo_overview_material_powred_by_bizreach
HRMOS-saiyo_overview_material_powred_by_bizreachHRMOS-saiyo_overview_material_powred_by_bizreach
HRMOS-saiyo_overview_material_powred_by_bizreach
 
株式会社種村建設_新卒向け会社紹介資料_____________________
株式会社種村建設_新卒向け会社紹介資料_____________________株式会社種村建設_新卒向け会社紹介資料_____________________
株式会社種村建設_新卒向け会社紹介資料_____________________
 
kintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdfkintone Café 山口 Vol.8 kintone×UiPath.pdf
kintone Café 山口 Vol.8 kintone×UiPath.pdf
 
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
株式会社メンバーズ社内報MEMBUZZ(メンバズ)2024年4・5月合併号(♯168,169)
 
【スポンサープラン】Marketing Native Fes 2024summer
【スポンサープラン】Marketing Native Fes 2024summer【スポンサープラン】Marketing Native Fes 2024summer
【スポンサープラン】Marketing Native Fes 2024summer
 
The AI service "MMOL Pot (MMOT)" by MMOL Holdings
The AI service "MMOL Pot (MMOT)" by MMOL HoldingsThe AI service "MMOL Pot (MMOT)" by MMOL Holdings
The AI service "MMOL Pot (MMOT)" by MMOL Holdings
 
最先端の勝ち筋 を常に考えてきた SAKIYOMIだからできる 全く新しい運用代行 Instagram総合支援
最先端の勝ち筋 を常に考えてきた SAKIYOMIだからできる 全く新しい運用代行 Instagram総合支援最先端の勝ち筋 を常に考えてきた SAKIYOMIだからできる 全く新しい運用代行 Instagram総合支援
最先端の勝ち筋 を常に考えてきた SAKIYOMIだからできる 全く新しい運用代行 Instagram総合支援
 

負荷試験、どうしてる?(公開版)