Bei vielen neuen Festplatten beträgt die physische Sektorgröße 4096. Wäre es möglich, das System dazu zu bringen, eine logische Sektorgröße derselben Größe anstelle der standardmäßigen logischen Sektorgröße von 512 zu verwenden?
Wird es Massenlese- und -schreibvorgänge beschleunigen?
Wo kann es konfiguriert werden?
Akzeptierte Antwort:
512 Byte ist nicht wirklich die Standardsektorgröße. Das hängt von Ihrer Hardware ab.
Sie können anzeigen, welche physikalischen/logischen Sektorgrößen Ihre Festplatte über /sys
meldet Pseudo-Dateisystem, zum Beispiel:
# cat /sys/block/sda/queue/physical_block_size
4096
# cat /sys/block/sda/queue/logical_block_size
512
Was ist der Unterschied zwischen diesen beiden Werten?
- Die
physical_block_size
ist die minimale Größe eines Blocks, den das Laufwerk in einer atomaren Operation schreiben kann. - Die
logical_block_size
ist die kleinste Größe, die das Laufwerk schreiben kann (vgl. die Linux-Kernel-Dokumentation).
Wenn Sie also ein 4k-Laufwerk haben, ist es sinnvoll, dass Ihr Speicherstapel (Dateisystem usw.) etwas gleich oder größer als die physische Sektorgröße verwendet.
Diese Werte werden auch in neueren Versionen von fdisk
angezeigt , zum Beispiel:
# fdisk -l /dev/sda
[..]
Sector size (logical/physical): 512 bytes / 4096 bytes
Auf aktuellen Linux-Distributionen, Programme (die sich um die optimale Sektorgröße kümmern sollten) wie mkfs.xfs
wählt standardmäßig die optimale Sektorgröße (z. B. 4096 Bytes).
Sie können es aber auch explizit über eine Option angeben, zum Beispiel:
# mkfs.xfs -f -s size=4096 /dev/sda
Oder:
# mkfs.ext4 -F -b 4096 /dev/sda
Auf jeden Fall die meisten mkfs
Varianten zeigen während der Ausführung auch die verwendete Blockgröße an.
Für ein bestehendes Dateisystem kann die Blockgröße mit einem Befehl wie:
ermittelt werden# 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
Oder:
# tune2fs -l /dev/sda
Block size: 4096
Fragment size: 4096
Oder:
# 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
Wenn Sie das Dateisystem auf einer Partition erstellen, müssen Sie außerdem prüfen, ob die Startadresse der Partition tatsächlich an der physischen Blockgröße ausgerichtet ist. Sehen Sie sich zum Beispiel fdisk -l
an Ausgabe, wandle die Startadressen in Bytes um, dividiere sie durch die physikalische Blockgröße – die Erinnerung muss Null sein, wenn die Partitionen ausgerichtet sind.