GNU/Linux >> Tutoriales Linux >  >> Linux

Optimización del tamaño del sector lógico para el tamaño del sector físico 4096 Hdd?

Con muchos discos duros nuevos, el tamaño del sector físico es 4096. ¿Sería posible hacer que el sistema use un tamaño de sector lógico del mismo tamaño, en lugar del tamaño de sector lógico predeterminado de 512?

¿Acelerará las lecturas y escrituras masivas?
¿Dónde se puede configurar?

Respuesta aceptada:

512 bytes no es realmente el tamaño de sector predeterminado. Depende de su hardware.

Puede mostrar qué tamaño de sector físico/lógico informa su disco a través de /sys pseudo sistema de archivos, por ejemplo:

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

¿Cuál es la diferencia entre esos dos valores?

  • El physical_block_size es el tamaño mínimo de un bloque que la unidad puede escribir en una operación atómica.
  • El logical_block_size es el tamaño más pequeño que la unidad puede escribir (consulte la documentación del kernel de Linux).

Por lo tanto, si tiene una unidad de 4k, tiene sentido que su pila de almacenamiento (sistema de archivos, etc.) use algo igual o mayor que el tamaño del sector físico.

Esos valores también se muestran en versiones recientes de fdisk , por ejemplo:

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

En las distribuciones de Linux actuales, los programas (que deberían preocuparse por el tamaño óptimo del sector) como mkfs.xfs elegirá el tamaño de sector óptimo de forma predeterminada (por ejemplo, 4096 bytes).

Pero también puede especificarlo explícitamente a través de una opción, por ejemplo:

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

O:

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

En cualquier caso, la mayoría de mkfs las variantes también mostrarán el tamaño de bloque utilizado durante la ejecución.

Para un sistema de archivos existente, el tamaño del bloque se puede determinar con un comando como:

# 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

O:

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

O:

# 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

Al crear el sistema de archivos en una partición, otra cosa que debe verificar es si la dirección de inicio de la partición está realmente alineada con el tamaño del bloque físico. Por ejemplo, mire el fdisk -l salida, convierta las direcciones de inicio en bytes, divídalas por el tamaño del bloque físico; el recordatorio debe ser cero si las particiones están alineadas.

Relacionado:Linux:¿cómo probar si un binario de Linux se compiló como código independiente de la posición?
Linux
  1. cómo verificar el tamaño del montón asignado para jvm por linux

  2. ¿Por qué el tamaño de un directorio siempre es de 4096 bytes en Unix?

  3. Buen tamaño de bloque para la clonación de discos con diskdump (dd)

  4. Uso total del disco para un usuario en particular

  5. ¿Debo usar un SSD o HDD para intercambiar en una computadora vieja?

Tutorial de comandos de tamaño de Linux para principiantes (6 ejemplos)

Gestión de volúmenes lógicos explicada en Linux

Cambiar tamaño de partición por 4 GB de RAM

¿Cómo los comandos como fdisk -l encuentran el tamaño del sector?

Cómo determinar el mejor tamaño de bytes para el comando dd

¿Cuál es el tamaño recomendado para una partición Linux /boot?