Hace algunos días les dejé un artículo para optimizar el uso de nuestros discos IDE. Ahora pondré en sus manos otro tuto de como tunear las particiones ext3-ext4. De nuevo les pido que me excluyan de sus acciones, si alguien fastidia su HDD, les sugiero que tengan a mano un LiveCD o USB booteable para en caso de que tengan que hacer CTRL+Z.
Es bien sabido que casi todos los sistemas GNU/Linux aseguran compatibilidad sobre rendimiento(Debian es el campeón en esto, puede correr de la misma forma en un Core i7 que en un reloj Poljot), no es que me queje de esto, pero hay que tener en cuenta que el hardware avanza.
Durante muchos años(aproximadamente 4, durante mi estancia en la universidad) usé el sistema de archivos reiserfs, ni recuerdo donde leí que tenía mejor rendimiento que ext3 por aquello del journaling(palabreja que a mis oídos se escuchaba más feo que axila en ruso). En aquella época, aceptaba todo lo que me dictaba Google dogmáticamente y cosas como ext3, reiserfs, journaling, noatime,etc, causaban el mismo efecto en mi que los mugidos de una vaca…(los mugidos de una vaca… creo que tengo algún recuerdo vago, mejor diré que los ladridos de un perro… ya, ahora me siento mejor :-D).
Nunca me preocupé de que forma mi sistema(Debian hasta hace poco) gestionaba mis HDD, ni que parámetros utilizaba para mis particiones, ni si estos eran los más óptimos. Hace poco, pues empecé a sentir más curiosidad(específicamente cuando comencé con Fedora) de como puedo “exprimir” mis hardware en aras de mejor rendimiento.
Pues me mudé de reiserfs para ext4, dicho sistema de archivos ya viene por defecto en muchas distros de respeto, dígase ArchLinux, Android… y otras no tanto como Ubuntu(broma!!). ext4 se ha convertido en en más rápido y persistente de los sistemas de archivo, pero lo más llamativo es su flexibilidad para optimizar y variar su comportamiento.
Warming Up!
Si no recordamos que parámetros le pusimos a nuestras particiones, pues usen su editor de texto favorito y abran en fichero /etc/fstab. Debe mostrar algo como esto:
#
# /etc/fstab
# Created by anaconda on Mon Mar 25 19:27:05 2013
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=44b16abd-5cd5-4514-9f4f-9dd7a53a231e / ext4 defaults 1 1
UUID=843c3826-b921-49f0-8a4c-778bda33d64d /boot ext4 defaults 1 2
UUID=707ce01d-d7f1-4151-9481-55c6165db7b2 /home ext4 defaults 1 2
UUID=e7bd3118-239e-46de-8b36-c780be343245 swap swap defaults 0 0
El fstab tiene este orden:(#man fstab)
El primer campo define el dispositivo de bloques o sistema de archivos remoto a ser montado.
El segundo campo define el punto de montaje, como pueden ver, el punto de montaje de la swap puede ser swap o none.
El tercer campo define el tipo del sistema de archivos, los cuales pueden ser dfs, affs, autofs, coda, coherent, cramfs, devpts, efs, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, ntfs, proc, qnx4, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs…
El cuarto campo define las opciones de montaje. Debe contener al menos una opción, o más de una separadas por una coma. Las más comunes son: defaults(incluye rw, suid, dev, exec, auto, nouser, async), noauto, user, owner, comment, nofail. Les sugiero que se lean las páginas man, donde viene una explicación más detallada de cada una.(no se si se han percatado en que siempre les sugiero leer las páginas man, pues claro, nadie mejor para explicarte que el propio desarrollador de la aplicación).
El quinto campo define que partición debe utilizar el comando dump, dump provee información del sistema de archivos.(#man dumpefs)
El sexto campo es usado por el mandato fsck para determinar el orden en que las particiones son chequeadas en tiempo de booteo. La partición root debe tener 1, mientras que las demás deben tener un 2. esto define una secuencia de chequeo, a no ser que las particiones se encuentren en HDD diferentes, donde podrá hacerse fsck de forma paralela.
El contenido puede variar en sus sistemas, por ahora nos concentraremos en nuestra partición / o root. Como puedieron apreciar, las opciones de montaje que tiene mi / son defaults. Bien por tí, Fedora, pero como usuario no me “sirve”, digamos que quiero que mi ext4 vuele bajito. Así que saltaremos a la siguiente sección:
Opciones de montaje:
Puede que existan muchas más opciones, estas son las que uso y domino y hasta ahora no me han defraudado.
Opción: data=writeback
Descripción:
El modo por defecto de los datos es ordered. Existen 3 métodos: ordered, writeback y data. La diferencia entre los tres es el instante de tiempo en que los datos son escritos a disco, en relación con los metadatos al journaling.
Opción: noatime, nodiratime
Descripción:
Cuando nuestro sistema accede a cualquier archivo o carpeta, por defecto escribe este último acceso. Podemos inferir que estos procesos son bastante lentos(una escritura en el HDD por cada lectura). Con estos parámetros aseguramos que nuestro sistema no siga ese comportamiento.
Pues si comprendieron, llegó la hora de ponerlo en práctica. Nuevamente con nuestros editor de texto favorito, vamos a /etc/fstab y he aquí la forma en que me quedó:
#
# /etc/fstab
# Created by anaconda on Mon Mar 25 19:27:05 2013
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=44b16abd-5cd5-4514-9f4f-9dd7a53a231e / ext4 defaults,noatime,nodiratime,data=writeback 1 1
UUID=843c3826-b921-49f0-8a4c-778bda33d64d /boot ext4 defaults 1 2
UUID=707ce01d-d7f1-4151-9481-55c6165db7b2 /home ext4 defaults,noatime,nodiratime,data=writeback 1 2
UUID=e7bd3118-239e-46de-8b36-c780be343245 swap swap defaults 0 0
Voilá! Eso es todo, sencillo verdad? Bien es sabido que el almacenamiento de datos es actualmente el dolor de cabeza de todos los fabricantes de hardware. No importa cuan avanzado sea sus microprocesadores, ni cuanta RAM tengan, ni siquiera si ya usan los famosos discos de estado sólido(SSD). La optimización de los HDD siempre les dará mejoras significativas.
Hey gracias por el artículo. Es muy interesante, pero el modo «data=writeback» es seguro usarlo cuando se apaga inadecuadamente la PC dígase por un fallo eléctrico o un bloqueo de la PC???
bueno a la de data=writeback no le veo el hack pero a la noatime, nodiratime si, reduce drásticamente la cantidad de veces que leemos/escribimos en el disco, cada ves que leemos un fichero dejamos de leer el último acceso y cada ves que lo modificamos dejamos de escribir el último acceso, esto también con las carpetas pero… eso nos deja sin posibilidades de hacer búsquedas temporales. Para el que no haga eso ok, pero cuidado!!
Primero mis mas sinceras disculpas GUTL porque no incluí las referencias.
@BlueXaber: Hasta donde se sí, he tenido fallos eléctricos y no me ha pasado nada. Se recupera el journaling y fuera catarro.
@BishopWolf: el data=writeback no tiene un gran hack, lo que hace es actualizar metadata al unísono de los datos. Esto, en sistemas binary-based no hace la gran diferencia, ahora, si suamos Gentoo, cuando compilamos casi la totalidad de nuestro sistema, si vemos una «pequeña» mejoría. Sobre los otros hacks, no pudiste explicarlo mejor. Lo que tenemos esa pequeña dificultad, además, pueden aparecer directorios «fantasmas»(nunca los he visto).
Hola a todos, les escribo para informarles que ya humanOS esta online una vez más.