Cómo mejorar el rendimiento de una instalación de gestión documental.
En este artículo con doble título (en realidad el primero es la contestación a la pregunta que plantea el segundo) me gustaría comentar de forma muy simplificada una situación que se plantea con frecuencia, por no decir siempre, al instalar un software de gestión documental en el que se introduce, o se pretente introducir, un número importante de documentos. «Importante» es ambiguo, lo sé, pero lo es tanto como el problema real: para un despacho de 4 ó 5 usuarios, con un presupuesto muy reducido, 10 ó 15 mil documentos ya es un número importante y decidir qué equipos poner para gestionarlos es el mismo problema, a otra escala, que el que tiene un hospital con 200 usuarios y 3 millones de documentos a gestionar. Obviamente el problema aquí es mucho mayor, como también el presupuesto, pero el análisis de la situación y los «módulos» que conforma la instalación son los mismos.
Empecemos por el principio: el problema (o la necesidad). Tengo varios usuarios (de 5 a 5.000) que acceden desde sus respectivos ordenadores, utilizando una red local (o Internet, aunque podemos dejar el problema en «local» para empezar), con un conmutador que los conecta a uno o varios servidores en los que están almacenados varios miles (o millones) de documentos.
Esta es, muy resumida, la «arquitectura» del sistema a instalar y el reto es que el acceso de todos los usuarios sea en un tiempo «razonable», es decir, pocos segundos en el peor de los casos. Todos odiamos tener que esperar a que el ordenador responda a nuestras órdenes, aunque entendemos que si queremos consultar un expediente con 50 ó 60 folios de una base de datos de cientos de miles tengamos que esperar «un poco» desde que lo solicitamos al sistema. El reto es que ese «un poco» sea realmente corto.
Cuando la instalación es realmente grande y el presupuesto alto, un ingeniero de sistemas debe diseñar e instalar todos los componentes. Pero en los casos más sencillos bastan algunas ideas generales para dimensionar los equipos y obtener un buen rendimiento sin necesidad de acudir a un especialista.
Si algo me gusta de la evolución de la informática es lo barato que vale un disco duro de 500Gb o un par de GB de memoria RAM, por lo que instalar un sistema que maneje con soltura cientos de miles de documentos no requiere el presupuesto de la NASA. Sin embargo, algunas ideas generales son importantes porque tan innecesario es gastarse 3.500€ en un servidor para 5 usuarios (un auténtico despilfarro) como equivocarse al dimensionar algún elemento del sistema y hacer perder el tiempo a los usuarios a cada momento esperando que el sistema les proporcione la información que buscan.
La idea más importante que quiero transmitir es que la correcta elección de todas las partes que componen un “sistema” de gestión documental depende de un análisis de los “cuellos de botella” de la instalación.
Al igual que todos entendemos que en una autopista los “cuellos de botella” siempre son los peajes, en la gestión documental hay determinados elementos que determinan el rendimiento general de toda la instalación y su correcta identificación permitirá incrementar la velocidad de respuesta para todos los usuarios. De nada sirve incrementar la potencia de cálculo de un ordenador si el procesador está, literalmente, esperando a que el disco duro le proporcione los datos, o la red está saturada enviando el documento que estamos consultando, mientras el servidor no tiene nada que hacer (este es mi argumento contra el “cloud computing” en gestión documental, pero eso ya lo comenté hace tiempo).
En definitiva, la cadena es tan débil como el más débil de sus eslabones y para mejorarla hay que identificarlo, antes de gastar el dinero en el lugar equivocado.
Y para identificar el “cuello de botella” un ejercicio muy sencillo e ilustrativo es imaginar cómo la información fluye desde su origen hasta el destino final, de forma similar a como los coches recorren una autopista. Es una simplificación, y como tal con errores, pero puede ser muy útil para una primera aproximación y para sistemas sencillos.
Empezamos. Quiero consultar un documento, por ejemplo un PDF de varios folios, que está almacenado en la base de datos en el servidor. El procesador (primera pieza de mi cadena) localiza el documento, normalmente consultando datos que tendrá en su memoria local (segundo elemento). Una vez localizado, recupera el documento del disco duro (del servidor) y lo envía a través de la tarjeta y el cable de red hasta el conmutador que lo envía a su vez al ordenador del usuario (de nuevo a través de un cable y tarjeta de red). El ordenador lo muestra en pantalla utilizando su memoria y su procesador.
En todo este proceso hay un solo elemento mecánico, frente a todos los demás que son “pura electrónica”. Por supuesto me estoy refiriendo al disco duro del servidor. Un disco con un recubrimiento magnético que tiene un brazo metálico (recordemos los viejos tocadiscos de vinilos), brazo que debe posicionarse en el lugar adecuado y recorrer todo el espacio físico en el que está grabado el fichero.
Frente a la velocidad de los procesos electrónicos, el proceso mecánico de mover el brazo y girar el disco es cientos o miles de veces más lento y es aquí donde solemos tener el “cuello de botella”. De hecho, esto ocurre también en cualquier ordenador y es el motivo por el que en los últimos años, siempre que compro un ordenador nuevo de sobremesa le instalo directamente un disco duro de 10.000 rpm (revoluciones por minuto), frente a los discos duros corrientes, que suelen ir a 7.200 (los de los portátiles a 5.400 la mayoría, y esta es una de las razones de su pobre rendimiento).
En realidad, una instalación completa puede tener otros muchos factores que considerar, como el número de usuarios concurrentes, tamaño de los ficheros… lo que puede provocar que aparezcan “cuellos de botella” en otros lugares, pero para un primer artículo sobre este tema la respuesta suele ser siempre el disco duro del servidor. O mejor, “los” discos duros porque lo primero que hacemos cuando montamos un servidor de gestión documental es instalarle 3 discos duros, de 10.000rpm (o incluso de 15.000) y “balancear la carga”, esto es, repartir la información entre los tres para buscar el máximo rendimiento en el punto crítico del sistema, en el eslabón más débil.
No te gastes el dinero en super-procesadores, en memoria de alto rendimiento o en redes carísimas. El primer dinero debe ir al disco duro. (Continuará…)
[…] ya escribí hace unos meses como “Evitar los cuellos de botella de un sistema”, o comentaba que no hay que comprar servidores enormes – “No vayas al supermercado en […]