JMeter と Tsung の違いは何ですか? 同じハードウェアでテストすると、Tsung は JMeter よりも多くの負荷を生成する可能性があると読みましたが、現実にどれくらい近いのでしょうか?
2 に答える
Tsung は Erlang で書かれており、非常に多くの同時ユーザー (10000+) を実行できると言われています。
Jmeter は Java で記述されており、テスト計画が適切であれば、大量の負荷を生成することができます。
JMeter でのパフォーマンスに関するいくつかの制限を次に示します。
Jmeter のすべてのユーザーは OS スレッドです。これにより、多くの同時ユーザーを使用するとオーバーヘッドが増加します (jmeter のベスト プラクティスでは、少数のスレッドを使用することをお勧めします。http://jmeter.apache.org/usermanual/best-practices.html -私の経験では、使用時に問題が発生する可能性があります)。 jmeter インスタンスごとに 1000 を超えるスレッドがありますが、これはテスト計画によって大きく異なる場合があります)。大規模なテストを実行する場合は、JVM 設定を微調整する必要もあります。
動的スクリプト (jmeter 変数展開のために毎回再コンパイルする必要があるスクリプト) がある場合、パフォーマンスを簡単に破壊し、PermGen メモリを使い果たす可能性があります。スクリプトを別のファイルに入れるか、コンパイル キャッシュ キーを使用して再コンパイルを回避します。
一部のテスト コンポーネント (すべての要求と応答をメモリに保持するツリー ビューなど) を使用すると、ロード ジェネレーターに大損害を与える可能性があります。
私はいくつかの非常に大きなサイトを JMeter でテストしましたが、スレッドの数を減らすことができる限り (スループットを希望のレベルに保つためにユーザー待機を減らします)、Jmeter は問題ありません。多くのプロトコルを使用し、さまざまなシステムを監視する負荷テスト用のプラグインである JMeter には、かなり大きなコミュニティがあります。JMeter は、Java、javascript、基本的に jvm にロードできるもの (たとえば、groovy を含む) など、優れたスクリプト サポートも備えているため、非常に拡張性があります。
かつて(jmeter 2.6を使用していたと思います)、単一のロードジェネレーターから毎秒約30,000のデータベースリクエスト(Oracle JDBC)を実行しましたが、それ以来いくつかの最適化が行われているため、極端な要件がない限り、Jmeterは問題ありません。あなたのニーズとあなたの経験に合ったものを選んでください。
注: Tsung を使用した経験はほとんどありません。
編集: 最近は Locust ( https://github.com/locustio/locust/ ) を使用しています。Tsung は 2017 年以降更新されておらず、Locust のユーザー/スレッド モデル (greenlets) は、Jmeter よりも多くの同時ユーザーをサポートしています。しかし、最も重要なのは、より柔軟なワークフローを備えていることです (構成や GUI でのクリックではなく、実際の Python コード)。