GNU/Linux >> Linux の 問題 >  >> Linux

物理セクターサイズ4096Hddの論理セクターサイズの最適化?

多くの新しいハードドライブディスクでは、物理セクターサイズは4096です。システムにデフォルトの論理セクターサイズ512ではなく、同じサイズの論理セクターサイズを使用させることは可能でしょうか?

一括読み取りと書き込みが高速化されますか?
どこで構成できますか?

承認された回答:

512バイトは実際にはデフォルトのセクターサイズではありません。ハードウェアによって異なります。

/sysを使用して、ディスクが報告する物理/論理セクターのサイズを表示できます。 疑似ファイルシステム、例:

# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512

これら2つの値の違いは何ですか?

  • physical_block_size ドライブがアトミック操作で書き込むことができるブロックの最小サイズです。
  • logical_block_size ドライブが書き込める最小サイズです(Linuxカーネルのドキュメントを参照)。

したがって、4kドライブを使用している場合は、ストレージスタック(ファイルシステムなど)が物理セクターサイズ以上のものを使用することは理にかなっています。

これらの値は、最近のバージョンのfdiskにも表示されます。 、例:

# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes

現在のLinuxディストリビューションでは、mkfs.xfsのようなプログラム(最適なセクターサイズを気にする必要があります) デフォルトで最適なセクターサイズを選択します(例:4096バイト)。

ただし、オプションを使用して明示的に指定することもできます。例:

# mkfs.xfs -f -s size=4096 /dev/sda

または:

# mkfs.ext4 -F -b 4096 /dev/sda

いずれにせよ、ほとんどのmkfs バリアントは、実行中に使用されたブロックサイズも表示します。

既存のファイルシステムの場合、ブロックサイズは次のようなコマンドで決定できます:

# xfs_info /mnt
[..]
meta-data=                       sectsz=4096
data     =                       bsize=4096
naming   =version 2              bsize=4096
log      =internal               bsize=4096
         =                       sectsz=4096
realtime =none                   extsz=4096

または:

# tune2fs -l /dev/sda
Block size:               4096
Fragment size:            4096

または:

# btrfs inspect-internal dump-super /dev/sda | grep size
csum_size             4
sys_array_size        97
sectorsize            4096
nodesize              16384
leafsize              16384
stripesize            4096
dev_item.sector_size  4096

パーティション上にファイルシステムを作成する場合、もう1つ確認する必要があるのは、パーティションの開始アドレスが実際に物理ブロックサイズに合わせられているかどうかです。たとえば、fdisk -lを見てください。 出力し、開始アドレスをバイトに変換し、それらを物理ブロックサイズで除算します。パーティションが整列している場合、リマインダーはゼロである必要があります。

関連:Linux – Linuxバイナリが位置に依存しないコードとしてコンパイルされたかどうかをテストする方法は?
Linux
  1. コマンド単一引数の最大サイズを定義するものは何ですか?

  2. サイズと拡張子でファイルを検索する方法は?

  3. パーティションのセクターサイズを見つけますか?

  1. Lvm物理ボリューム上の不良ブロックをチェックする方法は?

  2. Linux でプロセスのヒープ サイズを確認する方法

  3. Linuxでjvmに割り当てられたヒープサイズを確認する方法

  1. UNIXでディレクトリのサイズが常に4096バイトなのはなぜですか?

  2. diskdump (dd) を使用したディスクのクローン作成に適したブロック サイズ

  3. 古いコンピューターのスワップに SSD または HDD を使用する必要がありますか?