Nov 282015
 
Artículo Administración de Servidores

El tamaño de bloque de un sistema de ficheros (filesystem block size) es número mínimo de bytes que son leídos o escritos en el disco cada vez que se realiza una operación de entrada/salida. Este parámetro puede ser relevante a la hora de optimizar el rendimiento de determinadas aplicaciones, como por ejemplo una base de datos.

En este artículo explicamos como determinar este y otros parámetros de un sistema de ficheros en un servidor Linux.

mount, tune2fs

En un sistema Linux, los tipos de sistemas de ficheros más comunes son los de tipo ext2, ext3 y ext4. El comando “mount” muestra los sistemas de ficheros existentes en un sistema, y su tipo:

# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=1798181,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=2880428k,mode=755)
/dev/vda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
...

En este ejemplo, podemos ver que el disco físico contiene una partición “/dev/vda1” que está montada como la raíz (root, “/”) del disco, y es de tipo ext4.

Para los filesystems de tipos ext2, ext3 y ext4, podemos utilizar el comando tune2fs con la opción “-l” para obtener la información sobre las características del filesystem:

# tune2fs -l /dev/vda1
tune2fs 1.42.12 (29-Aug-2014)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          da5bd09e-ba65-4cb2-81c6-4d2a1390d1c7
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery
                          extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink
                          extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              65536000
Block count:              262143488
Reserved block count:     13107174
Free blocks:              119526547
Free inodes:              65031866
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      961
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Fri Apr 10 11:58:55 2015
Last mount time:          Sun Nov 22 20:55:26 2015
Last write time:          Sun Nov 22 20:54:00 2015
Mount count:              25
Maximum mount count:      -1
Last checked:             Fri Apr 10 11:58:55 2015
Check interval:           0 (<none>)
Lifetime writes:          302 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       7602182
Default directory hash:   half_md4
Directory Hash Seed:      a8640c58-dc8a-40e7-b2d8-ddb5342a4c76
Journal backup:           inode blocks

Entre ellas, podemos encontrar el parámetro “Block size”, que en el ejemplo tiene un valor de 4096.

Es decir, que en este casos cualquier operación de entrada/salida supondrá la lectura o escritura de 4 KBytes, o un múltiplo de 4 KBytes.

 Publicado por en 5:39 pm

 Deja un comentario

(requerido)

(requerido)