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
。 - メモリ:より大きい
4
値cache 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/null
にt2
、t1、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:各プロセス
size
は0
(タスクを実行しない) であり、プロセス数が の2
場合の。 - 2p/16k:各プロセス
size
は16K
(実行中のタスク) であり、プロセス数が の2
ときの。
その後のテスト項目など。
4.5. ローカル通信遅延
以下の出力結果の単位はすべて でus
、値が小さいほど性能が良い。
- 2p/0k:各プロセス
size
は0
(タスクを実行しない) であり、プロセス数が の2
場合の。 - パイプ:いわゆる
hot potato
テスト。pipe
特定のタスクを持たないtoken
2使用します。 - AF UNIX:
Pipe
テスト項目と同じですが、プロセス間通信はsocket
通信を使用します。 - UDP:
Pipe
テスト項目と同じですが、プロセス間通信はUDP/IP
通信を使用します。 - RPC/UDP:
Pipe
テスト項目と同じですが、プロセス間通信はsun RPC
通信を使用し、デフォルトではプロトコルがRPC
送信に使用されます。UDP
- TCP:
Pipe
テスト項目と同じですが、プロセス間通信はTCP/IP
通信を使用します。 - RPC/TCP:
Pipe
テスト項目と同じですが、プロセス間通信はプロトコル送信を指定したsun RPC
通信を使用します。RPC
TCP
- 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
、各消費時間の最大値を取得します。mmap
unmap
- Port Fault:保護ページの遅延時間。
- ページ フォールト:ページ フォールト遅延時間。
- 100fd selct:
100
ファイル記述子の時間を構成しますselect
。
4.7. ローカル通信帯域
以下の出力結果の単位はすべて でMB/s
、値が大きいほど性能が良いことを示します。
- パイプ: 2 つのプロセスが確立された場合
pipe
、pipe
それぞれchunk
が64K
パイプラインを介して50MB
データかかる時間です。 - AF UNIX: 2 つのプロセス間の
unix stream socket
接続。各プロセスは、このプロセスを介してデータを送信するのにかかる時間chunk
です。64K
socket
10MB
- 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:と が類似している場合に表示されますとが類似している場合に表示されます
L1
L2
“No L1 cache?”
L2
Main Mem
“No L2 cache?”