Linuxでddコマンドを使用して、ハードディスクドライブのI/Oパフォーマンスをテストするにはどうすればよいですか? Linuxオペレーティングシステムでの読み取りと書き込みの速度を含むハードドライブのパフォーマンスを確認するにはどうすればよいですか? Linux I/Oパフォーマンステストでddコマンドを使用するにはどうすればよいですか?
linuxまたはUnixライクなシステムでは、次のコマンドを使用して、簡単なシーケンシャルI/Oパフォーマンステストを実行できます:
- ddコマンド : これは、LinuxおよびUnixライクなシステム上のディスクデバイスの書き込み性能を監視するために使用されます。
チュートリアルの詳細 難易度 中級() Root権限 はい <6409><5995> 時間 - hdparmコマンド:これは、Linuxベースのシステム上のディスクデバイスの読み取りとキャッシュ性能をテストするなど、ハードディスクパラメータを取得/設定す
このチュートリアルでは、ddコマンドを使用してディスクI/Oパフォーマンスをテストする方法を学習します。
- ddコマンドを使用して、ディスクデバイスの読み書きパフォーマンスを監視します。
- サーバーの待機時間の検出
- しかし、なぜサーバーのスループットと待ち時間が非常に低いのですか?
- hdparmコマンドを使用して、バッファとキャッシュされたディスクの読み取り速度を確認します
- Linuxでddコマンドを使用して読み取り速度をテスト
- Linuxラップトップの例
- Apple OS X Unix(Macbook pro)の例
- コマンドラインツールのファンではない…?
- グラフィカルメソッド
- Ubuntu20.04LTSでディスクツールを実行する:
- ディスクI/Oパフォーマンスのテストには、どの方法とコマンドを使用することをお勧めしますか。すべてのUnixライクなシステムでddコマンドをお勧めします(time sh-c”dd if=/dev/zero of=/tmp/testfile bs=100k count=1k&&sync”))
- 結論
ddコマンドを使用して、ディスクデバイスの読み書きパフォーマンスを監視します。
ddコマンドは、単純なシーケンシャルI/Oパフォーマンスを調べる この例では、Ubuntu Linux14.04ltsサーバーで実行されているRAID-10(SAS SSDを使用したAdaptec5405Z)アレイを使用しています。 基本的な構文は、サーバーのスループットを調べるために次のとおりです。
出力のサンプル:
図1.1.1.01: RAID10を搭載したUbuntu Linuxサーバーとdd
を搭載したサーバースループットのテストこのテストでは、1ギガバイトが書き込まれ、135MB/sがサーバースループットであったことに注意してください。 ここで、
- if=/dev/zero(if=/dev/input.ファイル):読み取り元の入力ファイルの名前。
- of=/tmp/test1.img(of=/path/to/output.file):入力を書き込む出力ファイルの名前。ファイルへ。 Bs=1G(bs=block-size):ddで使用するブロックのサイズを設定します。 テストのために1ギガバイトが書かれました。 LinuxにはRAMに1GBの空き領域が必要であることに注意してください。 テストシステムに十分なRAMがない場合は、bsに小さいパラメータ(128MBや64MBなど)を使用します。Count=1(count=number-of-blocks):ddに読み込むブロックの数。
- oflag=dsync(oflag=dsync):データに同期されたI/Oを使用します。 このオプションは省略しないでください。 このオプションは、キャッシュを取り除き、あなたに良いと正確な結果を与える
- conv=fdatasyn:再び、これは終了する直前に、一度完全な”同期”を必要とするよ このオプションはoflag=dsyncと同等です。
サーバーの待機時間の検出
この例では、RAID10サーバーの待機時間を取得するために512バイトが千回書き込まれました:
dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync
サンプル出力:
1000+0 records in1000+0 records out512000 bytes (512 kB) copied, 0.60362 s, 848 kB/s
サーバーのスループットと遅延時間は、サーバー/アプリケーションの負荷にも依存します。 したがって、これらのテストは、新しく再起動されたサーバーとピーク時間で実行して、ワークロードについてより良いアイデアを得ることをお勧めします。 これで、これらの番号をすべてのデバイスと比較できます。
しかし、なぜサーバーのスループットと待ち時間が非常に低いのですか?
低い値は、遅いハードウェアを使用していることを意味するものではありません。 この値は、ハードウェアRAID10コントローラのキャッシュのために低くなる可能性があります。
hdparmコマンドを使用して、バッファとキャッシュされたディスクの読み取り速度を確認します
ベンチマークと比較のために、次のコマンドを2回または3回実行することをお勧めしますデバイス読み取りのタイミングを実行します:
### Buffered disk read test for /dev/sda ##hdparm -t /dev/sda1## OR ##hdparm -t /dev/sda
ベンチマークと比較のためにキャッシュ読み取りのタイミングを実行するには、次のコマンドを2-3回実行します(-Tオプションに注意してくださ):
## Cache read benchmark for /dev/sda ###hdparm -T /dev/sda1## OR ##hdparm -T /dev/sda
または両方のテストを組み合わせる:
hdparm -Tt /dev/sda
サンプル出力:
図1.1.1.02: Linuxのhdparmコマンドは、読み取りとキャッシュディスクのパフォーマンスをテストする
再びファイル操作上のファイルシステムのキャッシュのために、あ
Linuxでddコマンドを使用して読み取り速度をテスト
正確な読み取りテストデータを取得するには、まず次のコマンドを実行してテストする前にキャッ:
flushecho 3 | sudo tee /proc/sys/vm/drop_cachestime dd if=/path/to/bigfile of=/dev/null bs=8k
Linuxラップトップの例
次のコマンドを実行します:
Apple OS X Unix(Macbook pro)の例
GNU ddにはさらに多くのオプションがありますが、OS X/BSDとUnixのようなddコマンドは、実際のディスクI/Oをテストするために、次のように実行する必要があり、メモリは同期オプションを追加しません。:
## Run command 2-3 times to get good results ###time sh -c "dd if=/dev/zero of=/tmp/testfile bs=100k count=1k && sync"
サンプル出力:
1024+0 records in1024+0 records out104857600 bytes transferred in 0.165040 secs (635346520 bytes/sec) real0m0.241suser0m0.004ssys0m0.113s
だから私は私のMBPに635346520バイト(635.347MB/s)の書き込み速度を得ています。
コマンドラインツールのファンではない…?
LinuxまたはUnixベースのシステムでディスクユーティリティ(gnome-disk-utility)を使用して、同じ情報を取得できます。 次のスクリーンショットは、私のFedora Linux V22VMとUbuntu20.04デスクトップから取得されています:
グラフィカルメソッド
“アクティビティ”をクリックするか、”スーパー”キーを押し タイプ”ディスク”
図1.1.1.03:Gnome disk utility
を起動し、左ペインでハードディスクを選択し、設定ボタンをクリックし、”Benchmark partition”をクリックします”:
図1.1.1.04: Benchmark disk/partition
最後に、”Start Benchmark…”ボタンをクリックします(管理者のユーザー名とパスワードを昇格することができます):
図1.1.1.05:最終ベンチマーク結果
Ubuntu20.04LTSでディスクツールを実行する:
- まず、アクティビティの概要からディスクを開きます。
- 次に、左ペインのリストからディスクを選択します。
- メニューボタンを選択し、メニューからBenchmark disk…を選択します。
- Start Benchmark…をクリックし、必要に応じて転送レートとアクセス時間のパラメータを調整します。
- 最後に、ベンチマークの開始をクリックして、ディスクからデータを読み取る速度をテストします。 管理者権限が必要な場合があります。 パスワード、または要求されたシステム管理者アカウントのパスワードを入力します。
“ディスク”を使用してハードディスクのパフォーマンスをテストします’
ディスクI/Oパフォーマンスのテストには、どの方法とコマンドを使用することをお勧めしますか。すべてのUnixライクなシステムでddコマンドをお勧めします(time sh-c”dd if=/dev/zero of=/tmp/testfile bs=100k count=1k&&sync”))
結論
簡単でシーケンシャルなI/Oパフォーマンス測定をテストするために、LinuxまたはUnixでddを使用する方法を学びました。 詳細なI/Oパフォーマンスベンチマークについては、UnixまたはLinux用の”The Flexible I/O Tester(FIO)”を試してください。 詳細については、”LINUXでIDE/SATAハードディスクの転送速度を確認する方法”およびmanページ:hdparm(1)を参照してください。
†RSSフィードまたは毎週の電子メールニュースレターを介して、Linux、オープンソース&DevOpsに関する最新のチュートリアルを入手してくださ
🐧14これまでのコメント… 一つを追加↓
カテゴリ | UnixおよびLinuxコマンドのリスト |
---|---|
ファイル管理 | cat |
ファイアウォール | Alpine Awall•CentOS8•OpenSUSE•RHEL8•Ubuntu16.04•Ubuntu18.04•Ubuntu20.04 |
ネットワークユーティリティ | dig*ホスト*ip*nmap |
OpenVPN | CentOS7•CentOS8•Debian10•Debian8/9•Ubuntu18.04•Ubuntu20.04 |
パッケージマネージャ | apk•apt |
プロセス管理 | bg•chroot*cron*disown*fg*ジョブ*killall*kill*pidof*pstree•pwdx*時間 |
検索 | grep*whereis•which |
ユーザー情報 | グループ*id*lastcomm*last*lid/libuser-lid*logname*メンバー*ユーザー•whoami*who•w |
WireGuard VPN | アルパイン•CentOS8•Debian10*ファイアウォール • Ubuntu20.04 |