Archivos Mensuales: junio 2007

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%

Red Binaria (o un caso digno de estudio)

Recuerdan a SIAP (Sistema Integrado de Administración de Portales?) una aplicación CMS hecha en el nefasto ASP de Microsoft?; bueno, como siempre digo, la culpa NO ES de ASP (aunque de plano ayude muchisimo por lo malo que es y corriendo en IIS más); sino además los malos, descuidados y funestos desarrolladores; por qué lo digo?, bueno, despues de escribir el artículo anterior visité la página contraloriasocial3390.org.ve para ver si hablaba del SENIAT, me consigo con que la página del MF (Ministerio de Finanzas) fue "hackeada" (deberiamos decir "desfaceada") y cuando la visito me encuentro con que está hecha con el ya "famosisimo" SIAP, de la empresa "RedBinaria" (http://www.redbinaria.com/). Cual es mi mayúscula sorpresa que cuando visito la página me encuentro con que todos los íconos de sus clientes poseen una característica imagen:

Para que no digan que es "un montaje", veamos el screenshot de la pagina web:

Lo más triste es que siguen llenas las web de seguridad de este tipo de alarmas:

http://securitydot.net/txt/id/18997/type/vuln/

http://www.securityfocus.com/bid/21346

http://www.pn-security.de/module-Sicherheits_News-view-option-article-artid-4171.html

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2006-6260

Lo cual contrasta MUCHISIMO con una carta emitida por redbinaria a ubuntu-ve recientemente:
http://www.ubuntu-es.org/index.php?q=node/33832

Todavia el gobierno sigue confiando en estas empresas tan poco innovadoras, inseguras y además fuera de cualquier ámbito del 3390?…

de plano, esta ciega actitud ya cansa …

En busca de la “buena web”

En España hay todo un revuelo con la nueva web del congreso donde han contratado a una empresa filial de la telefonica española para diseñar un adefesio de aplicación que dura el cotillón de 22 segundos en generarse y otro tanto en transmitirse (hasta 2 minutos) …

El articulo de barrapunto:

http://espana.barrapunto.com/article.pl?sid=07/06/18/1129238&from=rss

Y unos enlaces de interes (que no tienen desperdicio):

aNieto2k

Hmuda

magarto.com

albertofortes.com

La polémica no viene en el caso de que hubiera sido un pasante y bueno, por su nombre se le pasan las cosas; pero fue una empresa (la infame INDRA (conocida en estos lares por hacer las elecciones del año 98 con una aplicación en fox pro contra las maquinitas electorales)) que cobró la increible suma de 13 millones de euros por esa cosa que no pasa absolutamente ningún test (css, wc3 html, WAI (accesibilidad)); pero es que:

su DOCTYPE está declarado 3 veces, increiblemente, la primera presencia del !DOCTYPE es en la linea 1800 (tenia entendido que era en la linea 1!) …

Pero para que vean que eso no solo le pasa a los congresantes Españoles, miremos un poco a "nuestro alrededor" …

Pagina 1:

Seniat:

si, les tengo $#$%#$%&, esa cosa nos costó millones y fijense:

NO funciona bien ni en linux o en firefox (y son ejecutivo, donde queda el 3390?)

NO pasa ningun test (xhtml o al menos html 4.0 estricto, css, WAI y accesibilidad

La aplicación tiene un "generation time" de 21 segundos (la aplicación libre más lenta que he visto en el gobierno es la del MCT que dura 17 segundos)

La presencia de un ORACLE o de un "Java Enterprise" no mejoran en nada si hacemos cosas como esta:

Mezcla de tags Uppercase:

</TD></TR></TABLE></TD></TR></TABLE>

con tags lowercase:

<table cellpadding="0" cellspacing="0" border="0" width="100%" height="100%" id="table64">

nada mas triste es que las paginas vengan de word:

<!– MSTableType="layout" –>
<!– MSCellFormattingTableID="16" –>

atributos en camelCase (cuando HTML es inocuo a minusculas o mayusculas):
bgColor=#012e65
y atributos sin comillas (simples o dobles):
<TD colSpan=2 rowSpan=2>

Mezcla de estilos in-line CSS con antiguos (y deprecated) cosas horribles como FONT
<FONT
face
=Verdana color=#ffffff size=1>

Versus:

style=color:#ffffff

Una Marquee fuera del body?

<marquee style="font-family: Verdana; font-size: 8pt; font-weight: bold; color:#FFFFFF" width="100%">El valor actual de la Unidad Tributaria (U.T.) es de Bs. 37.632,00.</marquee>

No hay !DOCTYPE declarado, ni meta charset (para que el navegador no tenga que "adivinar" si la app es iso-8859-1 o utf-8, o en este caso windows-1252 (el que genera Oracle+servlets desde windows)

Los scripts DEBEN estar fuera del body?

Miles de atributos propietarios (o sea, del navegador internet explorer):
background="/images/pobtrans.gif"
color="" (como parte de un atributo)
atributos sin valor (como <hr noshade) violan la norma xhtml

Bueno, son muchisimos, vamos a evaluar otra web:

Pagina 2:
http://www.asambleanacional.gob.ve
La "famosa" web desfaceada por jabber (un hacker venezolano de 16 años) en enero de este año; está hecha con un CMS en ASP (scripting engine Visual Basic de microsoft) el cual tiene multiples bugs reportados en varias paginas de seguridad informática, pero remitamonos simplemente al codigo:

Etiquetas propietarias:
onLoad="window.defaultStatus=’:::::: Copyright © 2000-2007 Asamblea Nacional ::::::’;return true" bgcolor="#FFFFF
window.defaultStatus?, eso es TAAAAAN Internet Explorer!, y ni hablar de un bgcolor white (cuando es el "por defecto de body!", es como decir color:#00000 para color (font), eso es valores por default y no valen la pena ser declarados).

No existe !DOCTYPE declarado, pero al menos hay un charset 😉

Como siempre, nunca pasan los tests (ni siquiera de HTML 4!):
validator de la w3c
ni tampoco los de CSS, los de WAI (accesibilidad), etc

No es que mis aplicaciones lo hagan (aunque por lo general, SI SON XHTML 1.0 strict y CSS 2.1 valid), pero es que a mi no me pagan millones por hacerlas!, si me pagaran esas sumas, hasta AJAX functionality les agrego! …

Bueno, quise hablar mal de venezuela.gob.ve; pero por lo visto, está fuera de servicio :p

Bueno, con la contraloría pobre, ni siquiera es bueno meterse, con ese !DOCTYPE (<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">) parece hecha con frontpage …

Pero, hay quien lo hace bien?
(no miren al CNTI, tiene 147 errores de diseño HTML) 😛
RINDE: sus errores son de omisión (como ausencia de ALT o de ACTION en algunos FORM, es más culpa de algún diseñador que del CMS como tal que gestiona la aplicación), sin embargo, contrasta sus 12 errores (tomando en cuenta que se compara con xhtml 1.0 transitional) contra los 162 errores de gobierno en linea (que se compara contra html 4.01 transitional (el mas laxo de los DOCTYPE y el mas permisivo que puede existir)).


Inicialmente esta página se llamaba "el HOWTO de NO LO DEBO HACER! en una página web" pero en vista de que no pude conseguir un "buen ejemplo" de diseño web dentro de la APN (Administración Pública Nacional) entonces simplemente se convirtió en una búsqueda de "la buena web" (hasta ahora, creo que solo 3 (finde, rinde y nic.ve) han ocupado los primeros lugares en diseño (pocos errores, más errores de tipo y del diseñador usado (tal vez macromedia dreamweaver)) que reales "errores" como:

  1. uso de etiquetas propietarias

  2. mal javascript

  3. scripts propietarios (solo funcionan en Microsoft IE)

  4. errores en la deficion de tags

  5. ausencia de DOCTYPE

  6. nula compatibilidad entre navegadores, fallo incluso en Internet Explorer

  7. mezlca de etiquetas (UPPERCASE, lowercase y camelCase).

  8. errores en los atributos

  9. mezcla de css definido, css inline y etiquetas de estilo (deprecated), ex: FONT, CENTER, etc


Será crear una comunidad de diseño web?, un ente de asesorias?, un 800-DISEÑO? … xD

Las Aerolíneas deberían ser FIFO

First In, First Out; quien primero entra, primero sale, creo que debería ser la filosofía a seguir en todos lados; pero por sobre todo en las aerolíneas; para muestra, dos casos ocurridos con la misma aerolínea.
Caso 1 – llegar temprano:
Por aquello de que la trocha es algo insufrible en estos días, decidí bajar temprano a Maiquetia, unas 2 horas casi de diferencia entre mi llegada y la salida del vuelo, fui la segunda persona en registrarme para dicho vuelo; que bien!, dije … entrego mi equipaje, entro al Nacional y comienzo chulear wifi y a pasear entre tiendas para hacer tiempo…
Al llegar al destino, mi maleta (extrañamente) es la penultima en salir (contando con que el primer pobre hombre, el que llegó primero, aquel que casi duerme en maiquetia, su maleta salió del último en el aeropuerto de destino.

Caso 2 – llegar muy tarde:
Me dirigía hacia barinas cuando por desgracia la cola era más anormal (o normal?) que de costumbre en la trocha, 2 horas y media en una via entre miles de vehiculos con variopintos utensilios playeros (y el infaltable paño playero de bob esponja y las chancletas colgadas); a Caracas le deberían construir una playa artificial! …
El vuelo de avior habia cerrado 2 minutos antes de mi llegada y ni porque soborné a la tipa, me dejó subir (aun quedan funcionarios incorruptibles!); asi que opté por cambiar de estrategia y volar hacia Mérida (pero inscribiendome en la lista de espera, pues evidentemente siendo fin de semana ese vuelo estaba lleno); quedo de quinto en la lista de espera (pocas esperanzas de subir; pero, tenía algun plan C?) …
Para mi sorpresa, quedaba un puesto y llaman al cuarto de la lista … el hombre, no se presenta! … surprise surprise ! … me voy a merida!! …

Suben mi maleta de último y a la carrera, un avión completamente atiborrado de personas (unas 30 creo que le caben) demuestra que soy el último en chequear boleto y en subir equipaje, lo demuestra tambien el hecho de que estando ya dentro del avión, llega un vehiculo al area de maletas frontal (debajo de la cabina del piloto) y veo como bajan unas pocas maletas (de las personas de la lista de espera) y como joya, mi maleta entra de última …
Al llegar a Mérida, largo retraso de entrega de maletas, comienza la entrega … debo explicar cual salió primero? …

Creo que estas actitudes fomentan ese hecho (muy típico venezolano por cierto) que las personas que dejan todo para último, se verán gratamente recompensadas y las personas que cumplen con la ley, no botan basura en la calle, saludan a sus vecinos, son buenos con los demás, hacen donaciones de fin de año y en fin SIEMPRE llegan temprano a donde se debe estar, su maleta saldrá "SIEMPRE DE ULTIMO!" …

A %d blogueros les gusta esto: