負荷テストとは
初めて負荷テストに入った!
実際行う人は自分ではないが、手順を作りながら気づいたものを整理
- LoadTest時は性能を確認するため、
- 大量のデータを入れて作ったサービスが落ちなくてうまく行くこと
- 将来のため、EC siteだったら、毎日平均注文が10万件の場合、bufferを入れて12万件確認する
- テストする数値については何等かの理由が必要
- 結構大量のデータを作るのは工数がかかるので
- 性能テストのため、異常系はなし→つまり、注文したものは全部正常で処理するデータと担保
- なるべく本番と同様なスペック・環境で行う
- 5W1H いつ/なぜ/なにを/どのように 多すぎ忘れた😁😁
- 主にバッチ系/画面もあるが(自動化するツールまたは)/ENDPOINTテスト
- 本番のデータを流用(セキュリティーの問題である程度個人情報はマスキングされている状態)または、真似して作る
- できれば本番の確認がしたいが、大量のデータにも耐えずにサービスが動くのかを見ることなので、適当(..?)にデータを選ぶ
linuxほぼ初心者向けのログ確認
# 1. system.log ex) TestServiceがあるログを抽出
grep "TestService" /path/system.log
# 1-1. TestService抽出時、最初行を取得
grep "TestService" /path/system.log | awk 'NR==1'
# 1-2. TestService抽出時、最終行を取得
grep "TestService" /path/system.log | awk 'END{print}'
# 2. performance.log TestServiceがあるログの中で、時間帯指定 例は2021-06-04の8時から9時のログ
grep "TestService" /path/system.log | grep -E '2021-06-04 0(8:|9:)'
# 3. performance.log TestServiceがあるログの中で、時間帯指定して、平均処理時間抽出
# 前提条件が行の末尾に処理時間がある...? おそらく?まだawkの動きは。。。わかりません。。。
grep "TestService" /path/system.log | grep -E '2021-06-04 0(8:|9:)'| awk '{sum+=$(NF-1)} END {print sum/NR}'
# 4. performance.log TestServiceがあるログの中で、時間帯指定して、一番長い実行時間の確認
# sorting and 何行あるか分からないが、30行まで出力 order by ~ descのように
grep "TestService" /path/system.log| grep -E '2021-06-04 0(8:|9:)'| awk '{print $(NF-1)}' | sort -nr | head -30
#5. line count
grep "TestService" -c /path/system.log
grep | <- orと思うが、後ろに書いたらなんか分からないけどandになるようだった。
おそらく最初にgrouping?(sqlのように)された後にgrepされることでandになったかなと思う
*<-これがANDらしいけどうまく行ってなかった