【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(5)

はじめに

 

前回までで並列実行を行う方法で負荷テストを行ったが、

それでも約2700RPSにしか到達できなかった。

今回はAPIサーバーと負荷テストリクエストを行うデバイスを分けることで、

RPSを向上させることが可能か検証する。

関連記事

【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(1)

【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(2)

【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(3)

【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(4)

【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(5)

【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(6)

実行環境

実行環境は主に以下のようになります。

  • Mac Studio(2022) Apple M1 MAX メモリ32GB GPU24コア <= この記事使用
  • MacBook Pro(2020) M1  メモリ16GB GPU 8コア <= この記事使用
  • MacBook Pro(2017) intel core i5  メモリ8GB GPU2GB? <= この記事使用
  • Python 3.9.13 (web api server 構築のため それぞれのデバイスに環境構築した)
  • pyenv(必須ではない)

環境構築

(2)の記事をご参考ください。

【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(2)

また今回使用するPCそれぞれにapi serverとlocustが実行できる環境を整えておく。

実行

そもそもシステムの処理性能でRPSが変化する可能性は十分に考えられるため、

手始めにMacBook Pro(2020) のみでの性能を確認しておく。

master-slave構成で slave=4で実行は行う。

  • 最大接続人数 = 10000
  • 1秒あたりに増加するユーザー数 = 1000

という前提も変更なし

実行結果

MacBook Pro(2020) ❌ MacBook Pro(2020)

約1900RPS。あまり変化はないか…

MacBook Pro(2020) ❌ Mac Studio(2022)

APIサーバーをMac Studioで起動し Proで負荷試験を行う.

約1400RPS なぜか大幅にRPSが下がった。赤色が失敗の数を表しているがこちらも確実に増えている。

Mac Studio(2022) ❌ MacBook Pro(2020)

今度は反対にAPIサーバーをProで起動し Mac Studioで負荷試験を行う

約1800RPSくらい。プライベートネットワークといえどデバイス間での通信となると失敗率が増加している。

ただ、上二つの結果から、負荷試験実行側のシステム性能にRPSは若干依存しているように見られる。

Mac Studio(2022) ❌ MacBook Pro(2017)

上記結果の予想よりAPIサーバーをPro(2017)で起動し Mac Studioで負荷試験を行う。

明らかに性能が下がっている為反対の構成でも確認。

MacBook Pro(2017) ❌ Mac Studio(2022)

反対の構成でも確認。

こちらもRPSは下がっているが、失敗率に影響は与えていない。サーバー側がしっかりリクエストを捌けていることがわかる。

次に

結局今回の実行結果から言えることは、RPSを上昇させるにはAPI server ・ 負荷試験実行PCそれぞれハイスペックPCで実行する必要があるでしょうということであると思うが。。。

結論そうだと思う。大人しくクラウドサービスを利用したら一万RPS到達することは容易であろう。

(他の人の記事で見かけた。)

最後の足掻きとして次回、PC3台をmaster-slave構成として構築して負荷試験を行う。

【locust】負荷試験ツールLocustを使ってローカルPCで一万RPSを目指す(6)

Follow me!

コメント

PAGE TOP
タイトルとURLをコピーしました