仕事で、
負荷テスト実施で
何か
初負荷テストに ついて
まず、
実施した 時期
2016年8月-9月 です。
負荷テスト 対象の アプリケーション構成
HTTP サーバ
ApacheJAVA AP サーバ
GlassfishDB サーバ
AWS RDS
評価対象の モジュール
どの画面からも
1呼び
負荷テスト対象サービスの 状況
既にリリース済。それなりに
安定稼働している。 過去負荷テストの
実施記録は ない。 1
自分の 立場
- ざっくり
計画と 評価をし、 且つ、 サーバ側の メトリクスを 取る 人
受け入れテストの 品質面での 責任者であり、 その 流れで 負荷テストの 計画も 行いました。
実施担当者は別に 立てており、 テスト計画に したがって 実施して 頂きました。
サーバ側のメトリクスと 言っているのは top コマンドで 取得できる 指標、 Glassfish での 指標を 指しています。
これは権限の 問題で テスト担当者が 取得できず、 私が 依頼を 受けて 取得しました。
負荷テストで 確認したかった こと
- リリース対象の
機能が パフォーマンス面で、 サービスの 安定稼働に 悪影響しないこと。
軽い処理でしたが、 至る 所から 呼び出される ため、 CPU が 高負荷に ならないこと、 RDB へ 発行する クエリの 負荷が 許容できる 範囲 に 収まる ことの 確認を しました。
知見
負荷テスト実施を
1. 当たり前だが、 事前に 計画は すべき
想定負荷は
闇雲に
負荷の
2. 適当に 負荷を かけても 得られる 情報は ある
1.
の
とりあえず
基礎試験で
3. Java の メモリ使用量は、 Linux の top コマンドではわからない。
VM オプションに
-Xms
と-Xmx
が
jstatコマンド 等で、
4. Jmeter の response time 計測で、 ざっくり 良い 悪いは すぐわかる。
response time 計測で、
その
5. スループットが 要求される 処理では、 ホワイトボックスな チューニングも 必要
計測で
サーバリソースが
負荷テストを 振り返り 思う こと
当時を
想定負荷 は HTTP サーバの アクセスログで 取得が 難しい 場合も、 Google Analytics で 簡単に 取得が できる
HTTP サーバの
Bot を
ただ、
Google Analytics で サイトの 速度が 拾える。
Google Analytics の
デフォルトでは
継続的な
以下は、
*
並列で 負荷を かける 前に ユニットテスト、 機能テストで パフォーマンス観点の 問題を 検知して おく。
負荷テスト と
Jmeter 等の
Chrome の Lighthouse で 静的コンテンツも 含めた 読み込み 速度を 評価する。
Jmeter の
そこから
Jmeter での
以下、
継続的に 実行できる 環境の 整備
Jmeter で
以下の
構成管理で
一元管理された 負荷テストシナリオが ある
構成管理上で過去の 負荷テストシナリオが 一元管理されているのが 理想に 思います。 スケジュール実行されている、
または、 コマンド1つで 実行可能
作業者に、Jmeter インストールしてもらって、 張り 付きで 負荷テストを 実施してもらうのは 人的リソースの 無駄です。
負荷テストテンプレートが自動スケジュール実行される。または、 自動スケジュール実行されなくても コマンド1つで 実行できる 環境を 構築したいです。 サーバ側の
データ収集、 データ可視化が 自動化されている
サーバリソースの監視メトリクス収集が 自動化されていて、 データ可視化も できるのが 理想に 思います。
上記の
テストツール
- 負荷試験サービス調べてみた
Cloud の負荷テストサービスの まとめです。 - はじめての
APIサーバー負荷試験で 得た 最低限の 負荷試験知識
記事中に、locust
という Python の 負荷テストツールが 登場します。
Web のGUI が あるのが 良さそうに 思いました。 - Gatlingで
負荷試験を する | DevelopersIO
Scala でテストケースが 記述できる Gatling
。locust
もですが、コードで テストケースが 書けるのは 良さそうに 思います。 - Open Source Load Testing Tools: Which One Should You Use? | BlazeMeter
locust
、Gatling
含めてテストツールが 幾つか 紹介されています。
- 負荷試験サービス調べてみた
モニタリングツール
この辺りの ツール群は、 APM[Application Performance Monitoring]、 SM[Server Monitoring]、 NM[Network Monitoring] の 3つ の 観点での ツールが あるようです。 - New Relic | Real-time insights for modern software
ほぼ、全レイヤーを モニタリングできる ツールです。 一部機能を 無料でも 使うことができそうです。 - Top 8 Free Server Monitoring Tools | DNSstuff
オープンソースのServer Monitoring が まとめられています。 - Best Open Source Network Monitoring Tools & Software (linux/win) of 2018
Network Monitoring ツールがまとめられています。 - Linuxで
ネットワークの 監視を 行える モニタリングコマンド20選 | 俺的備忘録 〜なんかいろいろ〜
Linux のモニタリングコマンドが まとめられています。
- New Relic | Real-time insights for modern software
Front End の
パフォーマンス測定観点 での ツール graphite, grafana, sitespeed.io, diamond で
継続 Web パフォーマンスモニタリング
sitespeed.io の記録 を とって、 可視化まで 行ってます。
diamond でサーバの メトリクスも とれそうなので、 この 定常的な 監視は 環境を 構築してしまえば 良いのかと 思いました。 DataStudioと
GASで WebPagetestの 計測結果を グラフ化する | mediba Creator × Engineer Blog
WebPagetest の結果を Google スプレッドシート に 登録して 可視化しています。 Webpagetestから
始める 継続的パフォーマンス改善
パフォーマンス計測方法、改善の 仕方が まとめられています。
sar コマンド、 sadf コマンドの 存在
実施していた
今、
sadf コマンドの
sadfコマンドの
ROI と して 負荷テストやる 意味あるの ? 問題
負荷テストは、
リリースに
そして
個人的な
負荷テスト実施要/実施不要の
必ず
参考
以上です。
これは
実施は していたのかもしれませんが、 その 実施記録が 残っていない 状況でした。やろうと 試みた 実施手順書類などは 存在していました。 ↩
コメント