序文
パフォーマンス テストについて話したいと思います。パフォーマンス テストというと、パフォーマンス テストに使用するツールについて話さなければなりません。今日はそのツールのうち、主に wrk について紹介します。
はじめに
wrk は、使いやすく、Load Runner ほど複雑ではないオープン ソースのパフォーマンス テスト ツールです。Apache ベンチマーク (ab) のようなパフォーマンス テスト ツールですが、ab よりも強力で、複雑なテストを作成するための lua スクリプトをサポートできます。 . シーン。
wrk の優れた特徴は、select、epoll、kqueue などのオペレーティング システム固有の高性能 I/O メカニズムを使用するため、少数のスレッドで大量の同時実行性を絞り出すことができることです。実際には、redis の ae 非同期イベント駆動フレームワークを再利用しています。正確に言うと、ae イベント駆動フレームワークは redis によって発明されたものではなく、Tcl インタープリター jim から来ています。この小さくて効率的なフレームワークは、redis によって採用されているためです。 redis などがよく知られています。
インストール
wrk は Unix のようなシステムでのみ実行でき、これらのシステムでのみ安価に実行できるため、Linux または macOs が必要です。
Win10にしてからはかなり便利になったと言わざるを得ません。
前提条件:
- Win10 RS以降
- Ubuntu サブシステムを有効にする
1. Win10 システムは、bash コマンドを通じて Ubuntu サブシステムに切り替えます。次に、次のコマンドを実行してコンパイル ツールをインストールする必要があります。
# 安装 make 工具
sudo apt-get install make
# 安装 gcc编译环境
sudo apt-get install build-essential
gcc コンパイル環境をインストールするときは、VPN に接続すると速度が速くなります。
2. インストールが完了したら、git を使用して wrk のソース コードをローカルにダウンロードします。
3. git の wrk ディレクトリに切り替えて、make コマンドを使用します。
cd /mnt/ドライブ文字/wrk ディレクトリ
作る
コンパイルが完了すると、ディレクトリの下に wrk ファイルが作成されます。
テスト
次のコマンドを使用してテストします。
./wrk -c 1 -t 1 -d 1 http://www.baidu.com
wrk のパラメーターの意味について簡単に説明します。
-
-t シミュレートするスレッドの数
-
-c シミュレートする接続の数
-
--timeout タイムアウト時間
-
-d テストの期間
結果:
-
レイテンシ: 応答時間
-
Req/Sec: スレッドごとの 1 秒あたりの完了したリクエストの数
-
平均: 平均
-
最大: 最大
-
Stdev: 標準偏差
-
+/- Stdev: プラスまたはマイナス 1 の標準偏差比
標準偏差が大きすぎる場合は、サンプル自体の分散が比較的大きいことを意味します。システムのパフォーマンスが大きく変動する可能性があります。応答時間の分布を確認したい場合は、--latency パラメータを追加できます。
シミュレーションテストで注意する必要があるのは、一般的にスレッド数は多すぎず、コア数の 2 ~ 4 倍で十分です。wrk は接続ごとに 1 つのスレッドのモデルを使用せず、非同期ネットワーク I/O によって同時実行性を向上させるため、多すぎると過剰なスレッド切り替えにより効率が低下します。したがって、ネットワーク通信はスレッドの実行をブロックしません。そのため、wrk は少数のスレッドで多数のネットワーク接続をシミュレートできます。
wrk のテスト結果の中に、ストレステストの性能指標である Requests/sec (一般に QPS (Requests per Second) と呼ばれています) という項目があり、このパラメータによってアプリケーションのスループットがわかります。
要約する
最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それはそれほど価値のあるものではありませんが、必要な場合はそれを取り上げることができます。
これらの資料は、[ソフトウェア テスト] の友人にとって最も包括的で完全な準備倉庫となるはずです。この倉庫は、最も困難な旅を乗り越える何万人ものテスト エンジニアにも同行してきました。お役に立てれば幸いです。パートナーは下の小さなカードをクリックしてください受け取る