負荷試験
負荷試験#全体フロー概要 | 外道父の匠
https://gyazo.com/4a56e3a8d48b91b562d8adbb3a6d2873
負荷試験#開始と目的 | 外道父の匠
実際に負荷試験を進めていくにあたって、何をどこまでやるのか
の考え方紹介
負荷試験の目的
その負荷試験は何のために行うのか、を改めて問うと、意外とハッキリしていないことがあります。また、その成功と不足の境界線や、完全な終わりというのも案外曖昧なものだったりもします。
負荷試験#採取と整理 | 外道父の匠
どのようなデータを採取し整理すれば、ゴールに向かっていきやすいのか、を考えていきます。
負荷試験#リクエストの分類 | 外道父の匠
分類と優先順位を丁寧に整理しつつ、負荷試験を実行しつつ、アプリケーションの性質を理解していきます
負荷試験#実行条件と傾向観察 | 外道父の匠
本番ただ1点のみを想定した試験は使えない
トラフィックがスケールするか、また逆にどのように縮退するかも考える必要がある
パラメータを変化させて傾向を推測する
目的:非線形な傾向(品質劣化)が出るのを炙り出す
この原因を特定して解決する
負荷試験#計測値の比例と事例 | 外道父の匠
実際にはどのような変化なのか、はたまた例外にはどのようなものがあるのか
負荷試験#性能基準単位 | 外道父の匠
どのような単位を意識し、どのように性能値を算出していくと、より信頼できる安定した結果になるのか
負荷試験#サーバーアーキテクチャ事例 | 外道父の匠
様々な構成で試験できるように負荷試験環境構築の自動化
早めにこういう取り組みをしておくと、開発における負荷試験フェーズを短縮でき、エンジニアのストレス軽減にもなる
負荷試験#ユーザーセッション | 外道父の匠
負荷試験における火葬のユーザーの振る舞い
SRE四大行 | 外道父の匠
負荷試験を行うにあたって重要な事が2つあります。
適切で意味のある内容
効率的な準備と実行
そのためには、サービスが取り扱うプロトコルと、アプリケーションの仕組みや構造を理解する必要があります。
プロトコルの理解が深くなれば、負荷試験ツールでの表現が柔軟で正確になり、
アプリケーションの理解はより本番想定に近い条件や実行計画を立てやすくなります。
負荷試験の重要度は高めなはずですが、時間や人的リソースが足りなくて、開発者が片手間で試験を手掛けることも少なくないでしょう。早めに負荷試験方法を確立しておくことは、そういった不幸を減らし、長期的にみて各所で活用できるので、かなり価値の高い研究開発と考えます。
負荷試験#基本リンク集 | 外道父の匠
全般
Webアプリ負荷試験ガイド 2020
スケジュールは十分に確保
サーバ1台に負荷掛けて限界点を調べた上で複数台に負荷掛ける
事例
CPUベンチマークの採取方法 | 外道父の匠
アプリケーションサーバーとDBサーバーの試験
DBの場合はアプリケーションみたいにソッと混ぜて試すことができないので、キャッシュをOFFにして、クエリの値をランダムにして、クライアント接続数をvCPUの倍くらい用意してガーッとぶん回す。っていつものをテスト環境でやる感じでしょうか。
FGO を支える負荷試験ツール – shiguredo – Medium
シナリオは実際ほぼほぼクライアントに限りなく近い実装を Lua で起こす必要があります。さらに FGO を熟知する必要もあります。
かなりしんどい作業で、実際仕様通りに動かないなんてこともよくある話です。その場合の仕様確認などをしながらのシナリオ作りは相当大変です。
本気の負荷試験をやるには負荷試験専門家、負荷試験ツール開発者、負荷試験のための本番と同等の環境を維持する覚悟が必要になります。はっきり言って普通に大変です。
ツール比較
https://k6.io/blog/comparing-best-open-source-load-testing-tools
負荷をかけるツール
負荷試験#ツール選択 | 外道父の匠
Open Source Load Testing Tool Review
何をどう選ぶのかの指標
基本的には機能や扱いやすさを重視した方が幸せになれる
Gatling
Apache Bench
Apache Benchは複雑なシナリオには不向きですが、単純な参照系APIの簡単な試験には使ったりします
https://withgod.hatenablog.com/entry/2020/11/09/131930#時間がない人向け要約
上の記事を書いた会社はQA向きではなく開発者向きのk6をリリースした
Scala is obscure, and the DSL obfuscates any kind of logic you want to put in your test code
議論の余地がありそうkadoyau.icon
Apache JMeter
Jemeterは定番で負荷試験のシナリオは大半Jmeterで出てきます
https://withgod.hatenablog.com/entry/2020/11/09/131930#時間がない人向け要約
LOCUST
私の最近のおすすめはLocustです、シナリオが書きやすく簡単に分散環境で実行できます。
https://withgod.hatenablog.com/entry/2020/11/09/131930#時間がない人向け要約
Taurus
『魔界戦記ディスガイアRPG』に関するご報告 - 魔界戦記ディスガイアRPG
スケージュール