fstrim
Linuxブロックデバイスをマウントする必要があり、それほど冗長ではありません。blkdiscard
ご覧のとおり、ここでは書き込み操作も必要です。
実際に何かをトリミングしたりドロップしたりしなくても、ブロックデバイスがトリム/ドロップをサポートしているかどうかを知ることができますか?
答え1
デバイスの最大廃棄サイズを確認できます。例えば
$ cat /sys/block/X/queue/discard_max_hw_bytes
(X
適切に交換)。
0より大きい値が表示された場合この装置は廃棄をサポートします:
0 の値は、
discard_max_hw_bytes
デバイスが廃棄機能をサポートしていないことを示します。
最大値サポートdiscard_max_bytes
ドロップサイズは、次のように同じディレクトリに表示されます。これは、ドロップ待ち時間を制限するためにハードウェアがサポートするよりも小さくすることができます(制限を変更するために作成できます)。
discard_max_hw_bytes
デバイスのハードウェア制限ですが、この設定はソフトウェア制限です。一部のデバイスは、大量廃棄を発行したときに大きな待ち時間を示します。より低い値を設定すると、Linuxはより小さな廃棄を発行し、大規模な廃棄操作による待ち時間を減らすのに役立ちます。
これは、ディスクだけでなく、ループデバイス、デバイスマッパーデバイスなど、さまざまなブロックデバイスにも当てはまります。
答え2
このhdparm
コマンドを使用すると、ディスクデバイスで下位レベルのコマンドを実行できます。
このオプションhdparm -I /dev/sda
(またはsdaではなくブロックデバイスの挿入)は、ドライブから情報を照会します。ドライブでサポートされているタスクを一覧表示するセクションがあります。
hdparm -I /dev/sda | grep TRIM
TRIM対応ドライバで実行すると、以下が出力されます。
* Data Set Management TRIM supported (limit 1 block)
出力には他の有用な情報がたくさんあり、hdparmコマンドは非常に便利です。
hdparm
これは、デバイスでSATAコマンドを実行するように設計されたSATAおよび一部のSCSIデバイスにのみ適用されます。
答え3
デバイスがクリーンアップ/廃棄をサポートしていることを確認するには、Linuxユーティリティを使用することもできますlsblk
。デバイスの削除制限(たとえば、granularity
およびmax_sectors
)がゼロ以外の場合は、削除/スプラッシュサポートが有効になります。
$ lsblk -D
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 512B 2G 0