パフォーマンス テスト ツール Lmbench の使用方法と実行結果の分析方法

1. Lmbench の紹介

Lmbenchシンプルでポータブルなメモリテストツールで、主な機能は帯域評価(キャッシュファイル読み込み、メモリコピー、メモリ読み書き、パイプライン、TCP)、遅延評価(コンテキスト切り替え、ネットワーク、ファイルシステム構築)と削除、処理作成、信号処理、上位システムコール、メモリ読み取り反応時間)およびその他の機能。

2. ダウンロードしてインストールする

公式サイトアドレス:http://www.bitmover.com/lmbench/
ダウンロードリンク:lmbench-3.0

imaginemiracle:Downloads$ unzip lmbench-3.0-a9.zip

現在解凍されてlmbenchいる実行することはできず、makeコンパイルを直接実行すると、一連のエラーPermission deniedが注意してください。

ここでは、最初にすべてのファイルのアクセス許可を変更する必要があります。

imaginemiracle:Downloads$ sudo chmod 777 -R lmbench-3.0-a9/

lmbenchディレクトリを入力します。そのディレクトリ構造は次のとおりです。

imaginemiracle:Downloads$ cd lmbench-3.0-a9/
imaginemiracle:lmbench-3.0-a9$ ls
ACKNOWLEDGEMENTS  CHANGES    COPYING    doc              Makefile  results  src
bin               ChangeSet  COPYING-2  hbench-REBUTTAL  README    scripts

3. Lmbench テストを使用する

Execute make results、実行後、次のオプションを設定するように求められます。

  • 複数のコピー:生成された結果のscal load項目。
  • ジョブ配置の選択:ジョブ スケジューリング制御方法。デフォルトで選択されており1、ジョブ配置が許可されていることを示します。
  • ジョブの配置を制御するオプション:デフォルトで選択されています1
  • メモリ:より大きい4cache size、値が大きいほど結果が正確になり、実行時間が長くなります。
  • SUBSET:ALL / HARWARE / OS / DEVELOPMENTデフォルトで選択されているを含む、実行するサブセットall
  • FASTMEM、SLOWFS、DISKS、REMOTE...およびその他のオプションはデフォルトのままにできます。

セットアップが完了すると、テストプログラムが実行されます.実行時間が長いことに注意する必要があり、辛抱強く待つか、最初に他のことをして10 minから

4. 結果を表示する

を実行して実行結果make seeを表示する実行結果がsummary.outファイルに出力されていることを示すコマンドが 2 行だけ表示されている場合は、ファイルを直接表示できます。cat ./results/summary.out.
次の出力が表示されます。

ここに画像の説明を挿入

4.1. システムの基本情報

出力結果にシステムの基本パラメータ情報が表示され始めます。
ここに画像の説明を挿入
の:

  • tlb:翻訳ルックアサイド キャッシュ内のページ数を示します。
  • キャッシュ ライン バイト:キャッシュ ライン バイト
  • mem par:メモリーの階層的並列化。
  • スケール負荷:並列実行のLmbench数。

4.2. プロセッサーのパフォーマンス

以下の出力結果の単位はすべて でus、値が小さいほど性能が良い。
ここに画像の説明を挿入

  • null 呼び出し:実行getppidに必要な時間。
  • null I/O:から 1 バイト/dev/zeroを読み取る時間t1/dev/nullt2t1、t2平均値はこのアイテムの結果です。
  • stat: statファイルに要した時間 (つまり、ファイルの情報を取得する時間)。
  • open clos: openファイルを開いてからファイルをclose削除するかかった合計時間 (ディレクトリとノードの読み取り時間を除く)。
  • slct TCP:TCPネットワーク接続を介して100ファイル記述子を選択するのにかかった時間。
  • sig inst: install signal費やした時間。
  • sig hndl: handler signal費やした時間。
  • fork proc: fork a 完全に同じでprocess、元のものをprocessオフにする。
  • exec proc:shellプロセスの作業プロセスをシミュレートします:fork新しいプロセスが新しいコマンドを実行するのにかかる時間。
  • sh proc: 新しいプログラムを見つけて実行するのにforkかかる時間をシステムに尋ねるプロセス。shell

4.3. 数学演算

以下の出力結果の単位はすべて でns、値が小さいほど性能が良い。

(1) 整数計算

ここに画像の説明を挿入
(2) 符号なし整数計算

ここに画像の説明を挿入
(3) 浮動小数点演算

ここに画像の説明を挿入
(4) 倍精度浮動小数点演算

ここに画像の説明を挿入

4.4. コンテキストの切り替え

以下の出力結果の単位はすべて でus、値が小さいほど性能が良い。

ここに画像の説明を挿入
複数のプロセスがunix pipeリング、各プロセスは自身のパイプから読み取りtoken、タスクを実行し、次のプロセスにtoken書き込みます。

context swithing時間には、プロセスを切り替える時間と、プロセスのすべての状態を復元する時間 (復元されたcache状態。

  • 2p/0k:各プロセスsize0(タスクを実行しない) であり、プロセス数が の2場合の。
  • 2p/16k:各プロセスsize16K(実行中のタスク) であり、プロセス数が の2ときの。

その後のテスト項目など。

4.5. ローカル通信遅延

以下の出力結果の単位はすべて でus、値が小さいほど性能が良い。

ここに画像の説明を挿入

  • 2p/0k:各プロセスsize0(タスクを実行しない) であり、プロセス数が の2場合の。
  • パイプ:いわゆるhot potatoテスト。pipe特定のタスクを持たないtoken2使用します。
  • AF UNIX:Pipeテスト項目と同じですが、プロセス間通信はsocket通信を使用します。
  • UDP:Pipeテスト項目と同じですが、プロセス間通信はUDP/IP通信を使用します。
  • RPC/UDP:Pipeテスト項目と同じですが、プロセス間通信はsun RPC通信を使用し、デフォルトではプロトコルがRPC送信に使用されます。UDP
  • TCP:Pipeテスト項目と同じですが、プロセス間通信はTCP/IP通信を使用します。
  • RPC/TCP:Pipeテスト項目と同じですが、プロセス間通信はプロトコル送信を指定したsun RPC通信を使用します。RPCTCP
  • TCP conn:socket記述子の作成と接続の確立にかかる時間。

4.6. ファイルとメモリの遅延

以下の出力結果の単位はすべて でus、値が小さいほど性能が良い。

ここに画像の説明を挿入

  • 0K File Create: 0Kファイルの作成にかかった時間。
  • 0K File Delete: 0Kファイルの削除にかかった時間。
  • 10K File Create: 10Kファイルの作成にかかった時間。
  • 10K ファイルの削除: 10Kファイルの削除にかかった時間。
  • Mmap Latency:指定されたファイルの最初のnバイトmmapメモリに入れ、それぞれの合計消費時間を記録しunmap、各消費時間の最大値を取得します。mmapunmap
  • Port Fault:保護ページの遅延時間。
  • ページ フォールト:ページ フォールト遅延時間。
  • 100fd selct:100ファイル記述子の時間を構成しますselect

4.7. ローカル通信帯域

以下の出力結果の単位はすべて でMB/s、値が大きいほど性能が良いことを示します。

ここに画像の説明を挿入

  • パイプ: 2 つのプロセスが確立された場合pipepipeそれぞれchunk64Kパイプラインを介して50MBデータかかる時間です。
  • AF UNIX: 2 つのプロセス間のunix stream socket接続。各プロセスは、このプロセスを介してデータを送信するのにかかる時間chunkです。64Ksocket10MB
  • TCP:Pipeテスト項目と同じですが、TCP/IP socketプロセス間通信を使用し、送信データ量は です3MB
  • ファイルの再読み取り:ファイルを読み取ってまとめるのにかかった時間。
  • Mmap 再読み取り:ファイルをメモリmmapにかかる時間。
  • Bcopy(libc): do bw_mem $i bcopy、指定されたメモリ領域から別の指定されたメモリ領域に指定されたバイト数をコピーする速度。
  • Bcopy(hand): do bw_mem %i fcp、ディスク上のある場所から別の場所にデータをコピーするのにかかる時間。
  • Mem read: bw_mem $i frd、整数値を配列に蓄積し、データprocessorを。
  • Mem write: do bw_mem $i fwr、整数配列の各メンバーを設定して、1データをメモリに書き込む帯域幅をテストします。

4.8. メモリ操作のレイテンシ

以下の出力結果の単位はすべて でns、値が小さいほど性能が良い。

ここに画像の説明を挿入
ローカル テストは、lat_mem_rd整数配列の4各実行されます。このテストはprocessor、 へのデータ読み取りの帯域幅です。

  • L1:キャッシュ 1
  • L2:キャッシュ 2
  • メインメモリ:連続メモリ
  • Rand Mem:メモリ ランダム アクセス レイテンシ
  • Guesses:と が類似している場合に表示されます類似している場合に表示されます
    L1L2“No L1 cache?”
    L2Main Mem“No L2 cache?”

おすすめ

転載: blog.csdn.net/qq_36393978/article/details/125989992
おすすめ