Re: Sobre Desempeño

Ramirez Aranda, Marcos, Proyecto APS mramireza en armada.cl
Jue Feb 21 03:10:58 CLST 2013


El 20 de febrero de 2013 a las 17:27 Javier Garay <javierzgaray en gmail.com>
escribió:
> Tengo la siguiente pregunta, pero no antes sin argumentar.
>
> Tenemos una base de datos en la empresa que pesa 120 GB. Corre sobre un
> servidor windows 2003 con SQL Server 2005 y en ocasiones es casi imposible
> trabajar, sobre todo en días específicos cuando se realizan miles de
> consultas por hora.

Antes de pensar en cambiar algo (hw o sw) debes averiguar por qué tu BD no tiene
el desempeño que esperas/necesitas y que alternativas de solución tienes.

Algunas posibles causas de lentitud en la BD:

- Consultas mal hechas / poco optimas. Es típico de los programadores no
considerar refinar sus consultas creyendo que la BD es responsable de optimizar
cualquier cosa.
- Te faltan índices estratégicos y/o diseñados para las consultas que pueden ser
muy pesadas/consumir mucha cpu y/o disco. Me ha tocado ver casos en que un
simple indice (dos campos) significa bajar el uso de la cpu del 40% al 4%.
- Tienes tu BD virtualizada. Se puede, pero no por eso deja de ser un error (a
veces muy grave)
- Te falta RAM o tu BD no está usando toda la ram posible.

Si tienes algún sistema de monitoreo en la maquina (nagios, zenoss o similar)
seria útil tener una estadística de uso de cpu/disco/ram. SQL Server también
tiene herramientas de diagnóstico que te permiten determinar si te faltan
indices y/o que consultas son las mas pesadas en caso que puedas reescribirlas
y/o modificar tu(s) aplicación(es).

> Estamos evaluando la posibilidad de migrar todo a una plataforma con un hw
> mucho más nuevo y con mayor poder de proceso[...]

Mejor HW nunca está de mas, pero antes de cambiar, asegurate que tienes medidas
y medios que te permitan comparar desempeño antes y después, al menos para poder
comparar que tanta mejora puedes conseguir.

> La pregunta es: ¿Valdrá la pena migrar todo una plataforma linux asumiendo
> que es un proyecto mucho más costoso y complejo tecnologicamente hablando,
> buscando obtener un mejor desempeño/estabilidad en desmedro de la opción
> más simple (windows), sin olvidad que el hw será mejorado
> significativamente?

En lo personal, evito a toda costa tener soluciones M$ (pareciera mas simple a
primera vista, pero las complicaciones son mucho peores).  Por otro lado, mejor
HW no necesariamente significa mejor rendimiento. Todo va a depender de las
condiciones que hacen que tu BD actual tenga problemas y lo mas seguro es que el
impacto de cambiar el hw no compense otros problemas que te pudieran estar
afectando.

Mi recomendación: averigua primero por qué tu BD tiene mal rendimiento y luego
evalúa si vale la pena el cambio de hw. El cambio de plataforma (sobretodo si es
a Linux+postgresql / oracle) deberías considerarlo una vez que tengas resuelto
tu problema actual y sólo si representa una ventaja, no sea que cambies un
servidor MSSQL lento por un servidor Oracle/PostgreSQL lento...

Saludos
--
DOCUMENTO PUBLICO



Más información sobre la lista de distribución Linux