目次
1.はじめに
この記事では、主に FIO、ソース コードのダウンロード、および FIO ハードディスク パフォーマンス テストの具体的なパラメーターを例を通じて紹介します. FIO は Linux のオープン ソース IOPS テスト ツールであり、主にディスクのストレス テストとパフォーマンス検証に使用されます.
ユーザー固有の I/O 操作を実行するための多くのスレッドまたはプロセスを生成できます. ジョブ ファイル (k8s yaml に似ています) または直接コマンドを記述してテスト アクションを実行することにより、マルチスレッドの io 生成ツールに相当し、さまざまなハード ディスク デバイスのパフォーマンスをテストするための IO モード (ほとんどの場合、Raw ディスクのパフォーマンスをテストするために使用されます)。
2. ソースコードのダウンロードとパラメータ解析
2.1 ソースコードのダウンロード方法
1、gitダイレクトダウンロード
https://github.com/axboe/fio.git
[root@localhost /]# wget https://github.com/axboe/fio/archive/refs/tags/fio-3.10.zip
[root@localhost /]# cd /root/fio-fio-3.10
[root@localhost /]# ./configure
[root@localhost /]# make && make install
2. 一部のシステム ソースには既に fio パッケージがあります。
[root@localhost /]# apt-get install fio -y //直接下载
2.2 パラメータ分析
パラメータ | 分析する |
---|---|
-名前 | 上記のコマンドライン方式で情報を出力するために使用される名前は、新しいジョブの開始を示します。デフォルトはジョブ名です。 |
-ファイル名 | テスト ファイルの名前。通常は、テストするディスクのデータ ディレクトリを選択します。 |
-group_reporting | 各ジョブの特定の結果を表示するのではなく、すべての情報を要約する |
-iodepth | このテストのキューの深さ |
-ioengine | ジョブがファイルへの io を開始する方法を定義する、ロード生成用のエンジン。多くの Fio エンジンがあり、詳細についてはオンラインで検索できます。一般的に使用されるエンジンは libaio と |
-ボリュームと -ブリック | これら 2 つはマウント ポイントをテストするために使用され、他のシナリオでは必要ありません。 |
-nrfiles | プロセスごとに生成されるファイルの数 |
-rw | 読み取りおよび書き込みモード、シーケンシャル読み取り、シーケンシャル書き込み、ランダム読み取り、ランダム書き込み、混合読み取りおよび書き込み |
-bs | ブロックサイズ、一般的にテスト済み 4k、8k、64k、128k、1M |
-サイズ | テストファイルサイズ |
-スレッド | fio はデフォルトで fork() を使用してジョブを作成します。このオプションが設定されている場合、fio は pthread_create を使用してスレッドを作成します。 |
-numjobs | 作成されたスレッドの数 |
-直接 | テスト プロセスは、マシンに付属のバッファーまたはキャッシュをバイパスします。これは、次のような o_direct の他の比較的高度なパラメーターと同等です。 |
-bssplit=4k/40:64k/30:1M/30 | 混合ブロック サイズ、4k:64k:1M = 4:3:3 |
bsrange=512-2048 | bs パラメータと同じブロック サイズの範囲 |
-rw=randrw、-rwmixread=70 | 混合読み書き 7:3 |
FIO テスト前の注意事項:
1. テスト環境の構成
yum -y install libaio-devel //安装libaio引擎,不然执行fio会报“fio: engine libaio not loadable”,必须要在fio安装前安装,不然还要重新编译安装一遍fio
2. 書き込み操作を行うと、ハードディスク上の既存のデータがフォーマットされるため、テストを書き込むときは、ベア ディスクを操作するか、データのあるディスクを操作するかに注意してください。 、ファイル システムを作成し、データを書き込みました。テストのために、 filename は、ファイル システムと元のデータを上書きしないように、指定されたファイルを選択することに注意してください。
2.3 テストケース
読み取り性能テスト
fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=20G -numjobs=30 -runtime=1000 -group_reporting -name=yaoxu-sda
//测试sda的裸盘性能,-direct=1绕过机器的cache,队列深度为1,块大小为16k,测试文件的 大小为20G,创建30个线程,测试时长为1000s
試験結果:
書き込み性能テスト
fio -filename=/dev/sda -direct=1 -iodepth 256 -thread=1 -rw=write -ioengine=libaio -bs=128k -size=5G -numjobs=4 -runtime=60 -group_reporting -name=eric-test
試験結果: