Jmeter 分散パフォーマンス テスト ピット回避ガイド

バックエンド サーバーのパフォーマンス テストを行う場合、「分散」という言葉をよく耳にします。それで、分散を理解していますか?今回は、企業の実戦における分散性能テストの活用方法と、実戦で特に注意すべき箇所についてお伝えします。

 

なぜ分散型を使用するのでしょうか?

パフォーマンス テストを実行するとき、テスト対象のシステムのパフォーマンスが比較的良好である場合、またはシステム プロジェクトが比較的大規模な場合は、通常、比較的多数の同時ユーザーをサポートする必要があります。パフォーマンス テストを行う場合、リクエストを開始するマシンのハードウェア リソースは固定されており、無限に構成することは不可能であるため、開始できる同時ユーザー数には制限があり、コンピューターを開始するとき、開始できる同時ユーザー数 同時ユーザー数がパフォーマンス テストで予想される同時ユーザー数よりも少ない場合は、当然、開始者のコンピューターを増やすことを検討します。イニシエーター コンピューターの数を増やすと、開始される同時ユーザーの累積数が増加します。

イニシエータ側のコンピュータは、Windows システムであっても Linux システムであっても、一般に約 1.5,000 人の同時ユーザーをサポートでき、それ以上の同時ユーザーは分散型を採用する必要があります。

では、次の質問は、分散をどのように構成するかということです。

分散を設定するにはどうすればよいですか?

  • アシストマシンの設定、jmeter.propertiesファイルの変更 まずアシストマシンとして複数のマシンを用意し、各マシンにjdkがインストールされているか、jdkのバージョンが一致しているかを確認し、アシストマシンに同じバージョンのjmeterを配置します。 ; 次に、jmeter.properties ファイルを構成し、server_port ポートを変更し、ポートをカスタマイズし、server.rmi.ssl.disable=true を変更し、server.rmi.port ポートを変更します ---- オプションの開始サービス: jmeter-server - Djava .rmi.server.hostname=ip_address ファイアウォールを確認し、カスタムのserver_portポートを閉じるか開いてください。
  • メイン制御マシン構成、jmeter.properties ファイルを変更、remote_hosts を変更、値はアシストされたマシン IP 変更、server.rmi.ssl.disable=true 変更、mode=Standard

分散マシン構成の考慮事項は何ですか?

分散構成は非常に簡単ではありませんか?

はい、この設定は実は全く難しいものではなく、自分で練習する場合でも上記の操作を行えば簡単に設定することができます。しかし、実際にエンタープライズプロジェクトで戦うとなると、やはりそんなに単純なのでしょうか?エンタープライズ プロジェクトで数万の同時実行をサポートし、数十の支援マシンを使用する必要がある場合、上記の操作を単純に繰り返すだけでよいでしょうか?

答えは否定的です。

今では、アシスト マシンとして設定できる数十台の Linux マシンが目の前に置かれています。数量が比較的多く、すべてがまったく同じであるという保証はありません。そのため、最初にマシンの構成を確認する必要があります。

  • 1. ハードウェアリソース cpuとメモリはコンピュータの中核であり、数十台のマシンがあり、すべてが同じであるとは保証できません アシストマシンの要件では、cpuとメモリの要件はありませんが、それぞれのマシンが提供するリソースが異なると、生成できる同時ユーザー数は確実に等しくないため、その中で最も低い構成のマシンを見つけ出し、そのマシンのスタック情報を設定する必要があります。 jmeter参照として最も低い構成のマシンを使用します各システムの CPU およびメモリ情報を表示するには、top コマンドを使用します。jmeter の bin フォルダーにある jmeter ファイル HEAP:="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" を変更して、スタック情報のサイズを変更します。構成を行わないと、多数の同時ユーザーを実行すると jmeter で OOM の問題が発生する可能性があります
  • 2. システム環境内に jdk マシンが多すぎるため、各マシンの jdk バージョンが一致しているかどうかが問題となる可能性があります。マシンにインストールされていない場合、指定したバージョンを直接インストールするにはどうすればよいでしょうか? しかし、他のバージョンの jdk がアシスト マシンにインストールされており、他の Java プロジェクトが実行されている場合、この時点で何をすべきでしょうか? 実行中の jmeter の jdk バージョンを指定します。 1. 指定した jdk バージョンを Linux の /usr/local フォルダーにダウンロードして解凍します。システム環境変数を構成および変更しないでください。 2. jmeter の jmeter ファイルに、JAVA_HOME=/usr/ を追加します。 local/jdk version / jmeter が実行する jdk バージョンを指定します。これにより、オペレーティング システムの jdk を変更する必要がなく、システム内の他の Java プロジェクトに影響を与えません。 jmeter jmeter バージョン 支援マシン上のすべての jmeter バージョンが必要です。一貫性があることjmeter.properties のssl.disable=trueを変更するには、ポートが異なる場合があります。コード、これらのプラグイン パッケージもアシスト マシンにインストールする必要があります。jmeter が実行され、 JMETER_HOME 環境変数自体を設定する必要はありませんが、マシンの数が多すぎると、各マシンのメモリが異なる可能性があるため、すべてのマシンで JMETER_HOME 環境変数 HEAP を設定することをお勧めします。アシストマシンはより多くの同時ユーザーを生成することが予想されるため、それぞれを変更することをお勧めします 各マシンの HEAP 構成情報は同じ csv ファイルに設定されます jmeter スクリプトで記述された csv データファイルの設定が使用されている場合,ファイルのパスは相対パスの記述方法を使用してください。jmeter-server Assist サービスが開始されるパスの下で、すべてのマシン上のパスの下の相対的な場所に CSV ファイルをアップロードする必要があります。OS オペレーティング システム OS バージョン: 要件なし、異なるバージョンでも可能 ポート範囲: オペレーティング システムのポート数は制限されており、システムが異なると、デフォルトでは開いているポートの数が等しくない場合があり、それぞれを設定する必要がありますmachine で開かれているポートの範囲sysctl -a | grep net.ipv4.ip_local_port_range このコマンドは、現在のマシン sysctl -w net.ipv4.ip_local_port_range="1024 65534" で有効になっているポート範囲を表示し、sysctl -p を実行して有効にします。このようにして、各マシンで開放するポート範囲を設定します。開いているファイルの数オペレーティング システムには、各プログラムが開くことができるファイルの数に制限があります。これはシステム制限です。ulimit -n を通じて確認することも、cat /proc/process id/limit を使用して確認することもできます。プロセスが今日開くことができるかどうかを確認します。開いているファイルの数は制限されています。パフォーマンス テスト支援マシンも大量のリクエストを開始する必要があるため、大量のファイルを開く可能性があります。ファイル数の制限が小さすぎると問題が発生するため、ファイル数を変更することができます。プロセスが ulimit -n を通じて開くことができるファイルの数。次に、jmeter-server Assist サービスを再起動し、変更した数によって制限されるようにします。タイムアシストマシンが多すぎて各マシンの時間が異なる場合がありますが、各マシンの時間を日付で確認することができます。パフォーマンス テストでは、同時に多数のリクエストを開始できることが期待されます。複数のマシンの時間が一致しない場合、同時に開始されるリクエストの数が期待される要件を満たさない可能性があります。各マシンの時刻を同期して設定します。date -s time でシステム時刻を設定します。
  • 3. ネットワーク環境には数十台のマシンがあり、ネットワーク構成は異なる場合があります。これらの支援マシンとテスト対象サーバーの間のネットワークに問題がある場合、リクエスト プレッシャーが失敗したり、ネットワークエラー。各アシスト マシン上でテスト中のトレースパス サーバーを使用して、アシスト マシンとテスト中のサーバー間のネットワーク状況を表示できますネットワーク遅延時間が非常に長い場合は、現在のマシンのネットワーク構成に問題がある可能性があります。ご使用の際はこの補助機を外す必要がある場合がございます。
  • 4. 各アシスト マシンでサービスを開始します。 jmeter-server -Djava.rmi.server.hostname=ipaddr 各マシンの IP アドレスが異なるため、このコマンドは 1 つずつ入力する必要があります。同時に、「&」記号を追加して、コマンドをバックグラウンドで実行するように変換できます。マスター マシンで実行します: java -Xms48g -Xmx48g -XX:MaxMetaspaceSize=2g -jar $JMETER_HOME/bin/ApacheJMeter.jar -n -R xxx:port,xxx:port -t xxx.jmx -l xxxx.jtl - e -o xxdirect -Xms48g -Xmx48g -XX:MaxMetaspaceSize=2g 主制御マシンjmeterのスタック情報を設定します 自マシンのメモリサイズに合わせて柔軟に変更可能ですが、比較的大きめに設定する必要があります小さい場合、レポートの生成に非常に時間がかかります。$JMETER_HOME/bin/ApacheJMeter.jar は、独自の jmeter パス -R xxx:port,xxx:port のアシスト マシンを指定します。ニーズに応じて指定できます。distribution を使用する必要がない場合はこのセクションは必要ありません、distributed を使用したい場合はこのセクションを使用する必要があります。複数ある場合はカンマで区切ってください-t xxx.jmx マスター マシンに配置した jmeter スクリプト ファイル

さて、これらの予防策はすべて学びましたか?

 

おすすめ

転載: blog.csdn.net/a448335587/article/details/132383587