Sistemas de Archivos y desempeño de una estación de trabajo Linux

Como hiciera en un artículo anterior (que indicaba sobre la instalación de una HP Compaq nx6320); las mejoras y posibles optimizaciones del rendimiento del equipo; he dedicido hacer una segunda evaluación (esta vez con algunos benchmarks de desempeño de por medio) para probar la utilidad de mezclar distintos FS para cada situación.

Esta vez la "victima" fue un HP Pentium 4 con 256MB de RAM (que de cariño se le dice "HP Pote"!):

  • HP Compaq Pentium 4 2.8Ghz
  • RAM 256MB
  • Disco IDE barracuda 40Gb 7200rpm
  • Debian Etch GNU/Linux 2.6.18-4-686

Esta vez dejé el kernel básico de Etch (pude haber instalado un 2.6.21.5, pero la idea era replicar una instalación básica que cualquier usuario medio pudiera hacer).

La idea es demostrar que aunque se tenga poca RAM y poco SWAP (1Gb de SWAP y 256MB de RAM); una buena escogencia de FS ayuda notablemente no solo a la seguridad sino además al desempeño general del equipo.

Background sobre FS:

Que se busca en un criterio de FileSystem:

Estabilidad (ninguna pérdida o mínima pérdida de datos)

Capacidad: Muy buen performance en variadas condiciones

Mantenimiento: Requiere el FS un downtime por mantenimiento? (defrag!)

Tuning: Puede ser modificado, y agregar opciones que modifiquen el comportamiento para distintas opciones?

Soporte: Forma parte del Kernel Linux?

Cosas en común:

Journaling(auto-defragmentación,auto-ordenamiento) /logging (log de errores)

Quick Recovery (no se requieren largas horas de dedicación para recuperar algo)

La disponibilidad del FS es escalable de acuerdo a tamaño.

Soporte para discos muy grandes, particiones, archivos y directorios de manera tambien escalable.

Alojamiento de los inodes y metadatos de manera dinámica.

Operaciones sobre directorios (búsqueda, creación y borrado) de manera dinámica y no lineal, (independiente del tamaño del directorio).

Cosas únicas de cada Filesystem:

ReiserFS: eficiencia en el espacio para archivos muy pequeños

(util para squid?).

Ext3fs: simple y robusto, compatibilidad hacia atrás (con ext2fs)

JFS: manejo de grandes archivos

Metadatos de los inodes pueden contener mucha información

XFS:

Page Buffer evita el bloqueo y el embasuramiento de la cache de lectura

Diseñado para soportar grandes sistemas MP (Multi-Processing)

Notas adicionales:

Solo ext3 y XFS soportan Quota Support (por ende, son los únicos FS adecuados para particiones /home/~usuario).

ReiserFS con "notail" mount option mejora notablemente el acceso a particiones.

Limitaciones:

ext3 tiene un límite de administración de 32 mil archivos por directorio y un max Filesize de 4TB (4 terabytes) mientras que JFS y XFS tienen un límite de 16TB (siendo este un límite del Kernel Linux).

XFS puede tener directorios de 4Gb de metadatos.

Precios en la velocidad:

XFS posee los archivos más grandes (hasta un 70% más del tamaño original)

ext3 el archivo más pequeño (hasta un 18% del tamaño original)

Inconvenientes:

XFS no puede contener un sector de arranque

XFS consume mucho más CPU que otros Filesystems

XFS tiene más probabilidades de perdida de datos que JFS o que ext3, por lo que es conveniente para Data partitions pero no para system partitions

JFS tiene un inconveniente de no montarse si encuentra fallos en el FS y solicitar un explicito chequeo de sistema; si el fallo se encuentra en una partición de sistema, el equipo se volverá inarrancable.

ReiserFS tiene demasiados "page failed" cuando procede a mover o copiar archivos; de nada vale que sea un FS rápido si se van a perder un 10% del tiempo en pérdidas de páginas.

En debian no existen modos mballoc,dealloc,calloc ni extents (para ext3 solo en superiores al kernel 2.6.20 que mejoran notablemente el acceso a discos con ext3fs).

Utilidades:

XFS: Filesystem extremadamente rápido que ordena muy bien archivos de distinto tamaño y directorios muy grandes

ReiserFS: Administra notablemente bien el espacio en discos pequeños

JFS: Buen balance entre velocidad y consumo de CPU y recursos, administra bien archivos de gran tamaño (como tablespaces de bases de datos)

ext3: posee el mejor metodo de journalist (incluyendo journalist de data con data=ordered y data=writeback)

ext2: es el más rápido de los FS, pero no posee journalist, util para particiones RO (read-only) como /boot

Conclusiones:

Modificar el tipo, modo de acceso y algunos parametros básicos de tuning mejoran notablemente el performance de un equipo; tomemos en cuenta que HP Pote es un equipo básico P4 con 256MB de RAM.

Recomendaciones:

ext2 para particiones de boot (posiblemente ro si no se está instalando cada rato un kernel nuevo).

ext3 para /, /usr y particiones de sistema

ext3 modo data=ordered para /etc (acceso rápido a archivos de sistema)

ext3 modo data=writeback,nosuid,nodev,noexec para /tmp

swap (en otro disco si es posible, y tmp tambien)

xfs para particiones /home

Un ejemplo de particionamiento (de un disco /dev/hda sería)

/boot – 512Mb – ext2 – defaults,ro

/ – (lo que desee el usuario) – ext3 – defaults

/tmp – (1 á 2gb) – ext3 – data=writeback,nosuid,nodev,noexec (posiblemente mballoc,extents si tu ext3 soporta esas opciones).

/var/log – (dependiendo de la cantidad de logging) – reiser4 – defaults,notail

/var/lib (sobre todo cuando se van a instalar bases de datos) – jfs

/home (particiones de usuario) – xfs

Si el disco es IDE:

agregar:

hdparm -a2048 -c1 -X udma5 -d1 -m16 -A1 -W1 /dev/hda

(solo para equipos ide, no sata (/dev/sda)).

Aunque el rendimiento a veces desde consola no se nota (menor del 5%), en usuarios portátiles un cambio notable se nota en la velocidad de ejecución y carga de programas (-A1 -a: readahead del disco) en acceso progresivo (-W1) en activación del DMA (-d1) y en activación del acceso UDMA (-X) y uso de cache de 32bits (-c1)

Tambien debemos agregar idebus=66 en el arranque del grub:

Por defecto, el bus ide en linux es de 33 (udma33) para mantener esa compatibilidad con discos viejos; pero si acaso no tenemos ningún disco viejo, un notable rendimiento en disco obtendremos con idebus=66 entre los parámetros del grub.

Nota adicional:

HP Pote mantiene una velocidad de booteo sostenida menor a 16 segundos.

Si a estas mejoras agregamos un kernel compilado con opciones típicas pero mejorando cosas como dynamic-ticks, tipo de CPU, latencia del kernel, etc; tendremos un equipo con un extraordinario desempeño no importando el tipo.

 

Ahora, como se comporta HP pote?:

Velocidad del disco HDA:

cache read: 704MB/seg

disk read: 56MB/seg

Segunda fase de pruebas:

Se procedió a instalar xorg, gdm, xfce4,iceweasel,openoffice2 y gnome para probar tiempos de carga, operación de entornos de escritorio y aplicaciones de usuario.

Carga del sistema hasta gdm:
31,22 seg.

Prueba 1: xfce4:

Tiempo detectado de carga (primera vez desde gdm): 6.2 segundos

Tiempo detectado de carga (otras veces): 5.8 seg.

Tiempo de carga de aplicaciones:

OpenOffice:

OpenOffice2 writer (primera vez): 6.5 seg.

Tiempo de creación de un documento: 4.18 seg

OpenOffice2 writer (segunda vez): 2.32 seg

Tiempo de creación de un documento: 1.46 seg

Iceweasel:

primera vez: 6.62 seg.

segunda vez: 1.48 seg.

Evolution:

primera vez: 5.39 seg.

segunda vez (despues de configurado): 1.48 seg.

Gimp:

primera vez: 2.07 seg.

Inkscape:

primera vez: 3.83 seg.

amsn (aplicación no-nativa (hecha en tcl-tk)):

primera vez: 7.96 seg.

Prueba 2: gnome:

Tiempo detectado de carga (primera vez desde gdm): 12.24 segundos

Tiempo detectado de carga (otras veces): 4.73 seg.

Tiempo de carga de aplicaciones:

OpenOffice:

OpenOffice2 writer (primera vez): 12.64 seg.

Tiempo de creación de un documento: 1.16 seg

OpenOffice2 writer (segunda vez): 2.32 seg

Tiempo de creación de un documento: 1.46 seg

Iceweasel:

primera vez: 4.28 seg.

segunda vez: 1.56 seg.

Evolution:

primera vez: 6.19 seg.

segunda vez (despues de configurado): 1.76 seg.

Gimp:

primera vez: 3.63 seg.

Inkscape:

primera vez: 3.98 seg.

amsn (aplicación no-nativa (hecha en tcl-tk)):

primera vez: 8.42 seg.

Prueba de stress de Gnome:

Aplicaciones abiertas:

Iceweasel, epiphany, totem, oo calc, oo math, oo base, oo writer, oo impress, gimp, inkscape.

Consumo de memoria: 76.9%

swap: 10.9%

CPU: promedio: 10%

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 20 junio 2007 en Linux. Añade a favoritos el enlace permanente. 4 comentarios.

  1. genial!

    muy muy bueno el articulo

  2. Este articulo me ayuda a la tarea que me asigno chekex de file system

  3. Consulta, update sobre este post ahora con ext4 y sata II??

  4. buenas noches tengo una lapto soneview, es nueva. pero la memoria recovery (E:) esta en rojo osea casi toda la memoria esta usada y cada vez que entro a internet me sale un aviso de mi antivirus que tengo poca capacidad en la memoria para usar internet que cierre y vuelva abrir,, por favor ayudenme con eso que debo hacer? hace 3meses atras no estaba asi, y yo no descargo cosas poco la uso para que este asi😦
    gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: