Mejorar acceso a disco y aumentar rendimiento Linux – Parte 1

con No hay comentarios

Voy a ir creando una serie de entradas de las multiples maneras y truquitos que he ido implementado para mejorar el rendimiento global de los servidores Linux mejorando el acceso a disco y el rendimiento global del servidor, reduciendo los iops no esenciales para priorizar los iops imporantes y aumentar el rendimiento y tiempo de respuesta global.

 

Para que quede claro el escenario, se ha utilizado servidores CentOS 6.7 que utilizaban particiones tanto “normales” como LVM con ext3.

 

Recomiendo tener un backup integro del servidor antes de realizar ningún cambio en el sistema de ficheros, es más, recomiendo tener 2 copias y en una de las copias realizar primero todos los pasos antes de tocar el servidor de producción.

 

Parte 1 – Mejora rendimiento mediante ext4 y desfragmentación

Antiguamente, en los inicios de ext4, ext3 era superior en rendimiento, pero desde 2011 eso ya no es así, por lo que además de la propia mejorar de rendimiento de ext4(askubuntu.com – Difference beetwen ext3 vs ext4), podemos aprovechar las múltiples características que nos ofrece, como pueda ser utilizar extent en vez del tradicional sistema de bloques (es.wikipedia.org – Ext4) y otras propiedades muy notorias que veremos a continuación.

 

Para pasar de ext3 a ext4 una partición necesitamos que esta no esté montada, por lo que lo más sencillo es que usemos una distribución Linux que tenga las herramientas fsck y tune2fs. Yo en mi caso use Kali linux (Aquí dejo el enlace). Vamos al lio:

 

  1. Antes de arrancar con el LiveCD, editamos el fichero /etc/fstab y cambiamos las particiones que deseemos mejorar de ext3 a ext4
  2. Una vez en la distribución Live. Como root, ejecutamos lo siguiente en todas las particiones que desemos:
     tune2fs -O extent,uninit_bg,dir_index /dev/sdxX 
    --- SI USAS LVM -- 
    tune2fs -O extent,uninit_bg,dir_index /dev/mapper/VolGroup-lv_root
    
  3. Ahora es imprescindible pasar un fsck a ficha partición, o si no, no arrancará: fsck -f /dev/sdxX
  4. Ahora ya reiniciaríamos y el sistema operativo arrancaría como ext4, pero os recomiendo continuar con el siguiente paso que ya es opcional.

 

Desfragmentar partición ext4 (A partir de aqui es opcional)

Si el sistema de ficheros a tenido muchos cambios, pongamos que por ejemplo es un servidor de hosting compartido y ha estado tiempo, seguramente el sistema este muy fragmentado(Si, linux trambién se fragmenta, infinitamente menos que windows, pero también).

La mejor manera de desfragmentarlo es utilizando la herramienta e4defrag, que se puede utilizar con la partición montada y con la máquina en producción, pero si tienes muchos ficheros tarda bastante, pero no pasa nada, la podeis dejar ejecutandose en una session de screen.  Para vuestra información, en CentOS solo viene a partir de CentOS 7, no está para 6, por lo que yo me la tuve que compilar para poder ejecutarla con el servidor encendido y no desde un Live(Menos tiempo de parada para mis clientes, lo cual es esencial para un buen servicio).

Aunque hallamos hecho los pasos anteriores de cambiar de ext3 a ext4, no vamos a mejorar el rendimiento en su totalidad, pues los ficheros necesitan ser reescritos para utilizar extent en vez del sistema por bloques, por lo que recorreremos toda la partición para añadir el atributo extent a todos los ficheros y directorios:

Dado al tiempo necesario, recomiendo ejecutar en una sesion de screen.

 /usr/bin/find / -xdev -type f -print0 | xargs -0 chattr +e
/usr/bin/find / -xdev -type d -print0 | xargs -0 chattr +e

Ahora, si queremos saber el % de fragmentación antes de desfragmentar, podemos usar:

fsck -nvf /dev/mapper/VolGroup-lv_root

Desfragmentar partición:

/usr/sbin/e4defrag -v /

ext3 ext4 ext2 filesystem so sistema operativo cloud performance rendimiento desfragmentar optimizar

 

Ya tenemos la partición desfragmentada y en ext4. Para poder utilizar todos los beneficios de ext4 para mejorar el rendimiento, hay que leerse la segunda parte de esta guia.

 

 

Parte 2

next siguiente proxima pagina

 

Dejar un comentario