GNU/Linux >> Linux Esercitazione >  >> Linux

Ottimizzazione della dimensione logica del settore per la dimensione del settore fisico 4096 HDD?

Con molti nuovi dischi rigidi, la dimensione del settore fisico è 4096. Sarebbe possibile fare in modo che il sistema utilizzi una dimensione del settore logico della stessa dimensione, anziché la dimensione del settore logico predefinito di 512?

Velocerà le letture e le scritture di massa?
Dove può essere configurato?

Risposta accettata:

512 byte non è davvero la dimensione del settore predefinita. Dipende dal tuo hardware.

Puoi visualizzare le dimensioni del settore fisico/logico che il tuo disco riporta tramite il /sys pseudo filesystem, ad esempio:

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

Qual è la differenza tra questi due valori?

  • Il physical_block_size è la dimensione minima di un blocco che l'unità è in grado di scrivere in un'operazione atomica.
  • Il logical_block_size è la dimensione più piccola che l'unità è in grado di scrivere (cfr. la documentazione del kernel linux).

Pertanto, se hai un'unità da 4k, ha senso che il tuo stack di archiviazione (filesystem ecc.) utilizzi qualcosa di uguale o maggiore della dimensione del settore fisico.

Questi valori vengono visualizzati anche nelle versioni recenti di fdisk , ad esempio:

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

Sulle attuali distribuzioni Linux, programmi (che dovrebbero preoccuparsi della dimensione ottimale del settore) come mkfs.xfs sceglierà la dimensione del settore ottimale per impostazione predefinita (ad es. 4096 byte).

Ma puoi anche specificarlo esplicitamente tramite un'opzione, ad esempio:

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

Oppure:

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

In ogni caso, la maggior parte dei mkfs le varianti mostreranno anche la dimensione del blocco utilizzata durante l'esecuzione.

Per un filesystem esistente la dimensione del blocco può essere determinata con un comando come:

# 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

Oppure:

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

Oppure:

# 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

Quando si crea il filesystem su una partizione, un'altra cosa da controllare è se l'indirizzo iniziale della partizione è effettivamente allineato alla dimensione del blocco fisico. Ad esempio, guarda fdisk -l output, convertire gli indirizzi iniziali in byte, dividerli per la dimensione fisica del blocco:il promemoria deve essere zero se le partizioni sono allineate.

Correlati:Linux – Come verificare se un binario Linux è stato compilato come codice indipendente dalla posizione?
Linux
  1. I miei comandi Linux preferiti per l'ottimizzazione delle immagini web

  2. Cosa definisce la dimensione massima per un singolo argomento di comando?

  3. Come cercare i file per dimensione ed estensione?

  4. Trovare la dimensione del settore di una partizione?

  5. Come verificare la presenza di blocchi danneggiati su un volume fisico Lvm?

Tutorial sui comandi di dimensioni Linux per principianti (6 esempi)

Spiegazione della gestione del volume logico su Linux

Quindi cosa sono i core CPU logici (in opposizione ai core CPU fisici)?

Perché la dimensione di una directory è sempre di 4096 byte in unix?

Buona dimensione del blocco per la clonazione del disco con diskdump (dd)

Come ottenere la dimensione fisica di un file in Linux?