RESTサーバーを開発しました。私はそれを自分の仮想マシンnginxサーバーでホストしました。今、1 秒あたり 10,000 の同時要求を送信して、ベンチマークを実行したいと考えています。それで、これに対する解決策はありますか?
4 に答える
イナゴが仕事をします。JMeter は、負荷の生成に使用されるスレッドを使用するため、巨大な負荷に対して最終的に蒸気を使い果たします。
ローカストはgeventを使用します- スレッドがなく、制限が少なくなります。
locust を使用すると、1 台のマシンのハードウェアが十分でない場合でも、クラスターから負荷を生成できます。
geventを使用してみてください。
モンキーパッチですべてをパッチしgevent.monkey.patch_all
、クエリにurllib2.urlopenを使用する関数を記述し、それを10000回グリーンレットとして生成します。
ただし、Pythonで1秒あたり10000リクエストを実行できるかどうかは疑問です(ただし、試してみるべきだと思います)。
ツールが重要ではなく、ロジックなしで単純なPOSTリクエストを実行する必要がある場合は、Pythonの代わりにApacheBenchmarkを試してください。
プログラムでスレッドを作成し、すべてのスレッドでURLフェッチを実行できますが、10,000個のリクエストを作成できるかどうかはわかりません。
毎秒10,000?これを行うには、多くのマシンが必要になります。
要求を連続して POST できるクライアントを作成し、それを複数のマシンに複製します。