このガイドでは、Linuxでハードディスクのデータ転送速度を確認する方法について説明します。つまり、ハードドライブがLinuxおよびUnixライクなオペレーティングシステムでデータを配信する速度を特定します。
また、HDDが一度に読み取ることができるセクターの数、先読み機能、音響モード、ライトバックキャッシング、hddのベンチマークなどの他の便利なことについても説明します。
このガイドでは、 hdparm
を使用します ハードドライブの読み取り、書き込み速度をチェックし、ハードディスクのパフォーマンスをテストするためのコマンドラインユーティリティ。
見逃してしまった場合に備えて、すでにhdparm
を使用しています。 ハードディスクドライブの詳細を検索するユーティリティ Linuxでは。ここで、同じhdparm
を使用します ハードディスクの伝送速度を測定するユーティリティ。
注意事項
hdparm
ディスクのパフォーマンスを向上させるための重要な利点を提供します。また、非常に危険です 。一部のパラメータが誤用されると、大量のデータが失われる可能性が非常に高くなります。 hdparmのドキュメントは、いかなる状況でも一部のコマンドを使用してはならないことを示唆しています。 。そのため、このガイドではそのような危険なコマンドを除外しました。さらに重要なことに、hdparm
でhddをテストする前に、ハードドライブをバックアップすることを常にお勧めします。 Linuxシステムで。
Linuxでのハードディスクデータ転送速度の検索
LinuxでHDDデータ転送速度を確認するには、"hdparm"
を実行します。 -t
を使用したコマンド 以下のようなフラグ:
$ sudo hdparm -t /dev/sda
出力例:
/dev/sda: Timing buffered disk reads: 246 MB in 3.00 seconds = 81.97 MB/sec

ご覧のとおり、データ転送速度は 81.97 MBです。 毎秒。他のプログラムがバックグラウンドで実行されていないことを確認してください。
hdparm
を実行します 少なくとも2〜3回コマンドを実行し、結果からドライブの平均データ転送速度を計算します。
上記の出力からわかるように、Linuxカーネルは、データを転送するときにHDDから取得したデータをバッファーに入れます。より正確なデータ転送速度を測定したい場合は、以下を使用してください:
$ sudo hdparm -t --direct /dev/sda
出力例:
/dev/sda: Timing O_DIRECT disk reads: 242 MB in 3.02 seconds = 80.21 MB/sec
さて、hdparm
プログラムはバッファを使用せず、hddから直接データを読み取ります。上記の出力でお気づきのように、転送速度はバッファなしで減少しました。
Hdparm
常にストレージデバイスの最初からデータを読み取ります。 hdparm
が必要な場合 ストレージデバイスの他の領域からデータを読み取るには、"offset"
を使用できます 以下のようなパラメータ。
$ sudo hdparm -t --direct --offset 10 /dev/sda
ここでは、10
スキップするギガバイト数を表します。上記のコマンドに従って、最初の10 GB
ディスクからデータを読み取る間はスキップされます。 20GB
の場合 ディスクの場合、上記のコマンドはディスクの中央からデータを配信します。
出力例:
dev/sda: Timing O_DIRECT disk reads (offset 10 GB): 244 MB in 3.01 seconds = 81.15 MB/sec

オフセット値がある場合とない場合のhdd転送速度を比較します。 "offset"
を使用した場合 2番目のコマンドのパラメータで、転送速度が低下しました。したがって、ハードディスクはディスクの外側の領域からデータを少し遅く配信しているようです。
ハードディスクが読み取るセクター数を確認する
通常、ハードディスクはデータ送信を高速化するために同時に複数のセクターを読み取ります。この値は、次のコマンドを実行して見つけることができます:
$ sudo hdparm -I /dev/sda
"Capabilities"
の下 セクションでは、次のような出力が表示されます。
[...] Capabilities: LBA, IORDY(can be disabled) Queue depth: 32 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Advanced power management level: 254 Recommended acoustic management value: 208, current value: 208 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 [...]
上記の出力のように、私のhddは16 sectors
を読み取ります 一度に。
最近のHDDの中には、セクターを事前に取得できるものがあります。この機能は"read ahead"
と呼ばれます 。この値は、"-a"
を使用して見つけることができます 以下のようなフラグ:
$ sudo hdparm -a /dev/sda
出力例:
/dev/sda: readahead = 256 (on)
上記の出力でわかるように、hddは256
を読み取ることができます 事前にセクター。
HDDをクワイエットモードにしてアクセス時間を増やします
最近のハードディスクでは、頭の動きを遅くすることができます。頭の動きを遅くすると、騒音レベルが下がり、アクセス時間が長くなります。
HDDがこの"acoustic mode"
をサポートしているかどうかを確認するには 機能、実行:
$ sudo hdparm -M /dev/sda
ドライブが音響モードをサポートしている場合は、次のような出力が必要です。
/dev/sda: acoustic = 208 (128=quiet ... 254=fast)

現在の音響モード値は208
です。 私のシステムで。音響モードの値は、128
の間で設定できます。 254
へ 。
HDDをクワイエットモードにするには、次のコマンドを実行します。
$ sudo hdparm -M 128 /dev/sda
頭の動きを高速にするには、次のコマンドを実行します:
$ sudo hdparm -M 254 /dev/sda
ご使用のオペレーティングシステムがこの機能をサポートしている必要があることに注意してください。
この機能をサポートしていない場合は、次のように表示されます:
dev/sda: acoustic = not supported
ライトバックキャッシュ
ライトバックキャッシュモードが有効になっている場合、hddは書き込まれるデータをバッファに入れます。このようにして、hddはより高速に書き込むことができます。
ライトバックキャッシュモードが有効になっているかどうかを確認するには、「-W」フラグを使用します。
$ sudo hdparm -W /dev/sda
出力例:
/dev/sda: write-caching = 1 (on)
出力値が1の場合、ライトバックキャッシュ機能が有効になります。 0の場合、ライトバックキャッシュは無効になります。次のコマンドを使用して有効にできます:
$ sudo hdparm -W1 /dev/sda
hdparmでこの機能を有効にできない場合は、BIOSでライトバックキャッシュ機能が有効になっていることを確認してください。
無効にするには、次を使用します:
$ sudo hdparm -W0 /dev/sda
書き込みキャッシュは書き込み速度を向上させますが、状況によってはお勧めしません。
たとえば、電源が突然切れると、バッファ内のデータは永久に失われます。したがって、PostgreSQLなどのデータベースプログラムを実行する場合は、ライトバックキャッシュ機能を有効にしないでください。
コマンドラインからのハードディスクのベンチマーク
HDDのベンチマークを行い、ドライブの読み取り速度をテストするには、大文字の"T"
を使用します。 小文字の "t"
以下のように一緒にフラグを立てます。
$ sudo hdparm -Tt /dev/sda
出力例:
/dev/sda: Timing cached reads: 7232 MB in 1.99 seconds = 3629.42 MB/sec Timing buffered disk reads: 250 MB in 3.01 seconds = 82.99 MB/sec

意味のある結果を得るには、このコマンドを少なくとも2〜3回繰り返します。
詳細については、マニュアルページを確認してください。
$ man hdparm
GNOMEDisksグラフィカルユーティリティを使用したハードディスクのベンチマーク
コマンドラインの方法が気に入らない場合は、GNOMEディスク GUIプログラムを使用すると、ハードディスクのベンチマークを行うこともできます。
メニューまたはダッシュからディスクを開きます。ベンチマークするディスクを選択し、3つのドットをクリックして、[ベンチマークディスク]を選択します。 オプション。

[ベンチマークの開始]をクリックします ベンチマークを開始するオプション:

結論
このガイドでは、Linuxでのハードディスクデータ転送速度(つまり、ハードドライブがデータを配信する速度)を見つける方法について説明しました。また、GnomeDisksGUIユーティリティを使用してコマンドラインモードとグラフィカルモードからハードドライブのベンチマークを行う方法についても説明しました。
Pixabayの注目の画像。