jueves, 7 de noviembre de 2013

Tunning MySQL 5.1




Optimiza y tunea my.cnf (Mysql) en tu servidor VPS

Imaginemos la situación. Acabas de mudar todas tus webs de un servidor compartido (Shared server) a un Servidor Virtual dedicado (VPS) y te encuentras que tienes que optimizar un monton de cosas, entre ellas tu base de datos Mysql que usabas en tus blogs de WordPress, en Drupal, Joomla o Moodle. ¿Por donde empezamos?
  1. ¿Cuanta RAM tenemos en nuestro servidor? Factor clave y determinante para la optimización de nuestra base de datos Mysql
  2. ¿Qué es lo que tengo que optimizar en Mysql? Principalmente el archivo my.cnf que encontraremos en /etc/mysql/my.cnf o /etc/my.cnf despendiendo del Sistema operativo.
  3. ¿Como lo edito? A través de terminal mediante una conexión ssh al servidor y gracias al editor de unix ‘vi’
  4. ¿Que cantidad de memoria RAM puede consumir Mysql? En función de los parametros que configuremos en my.cnf. Podemos hacernos una idea con esta calculadora de memoria RAM para Mysql
  5. Leemos esta biblia de optimización de MySQL, para comprender el significado de cada parametro.
Antes de empezar a hacer ningun cambio, sería mejor culturizarnos un poco. Normalmente, en nuestro servidor, podemos encontrar ejemplos de archivos my.cnf en función de la RAM que tengamos disponible:
/usr/share/doc/mysql-server-5.1/
my-small.cnf: para sistemas con 64MB de RAM (Como!!!)
my-medium.cnf: para sistemas con 256MB de RAM
my-large.cnf: para sistemas con 512MB de RAM
my-huge.cnf: para sistemas con 1-2GB de RAM
Para empezar no esta mal y nos podemos hacer una idea de cuales son los parametros más importantes a ajustar.

martes, 29 de octubre de 2013

JRException errors.GrailsExceptionResolver Invalid byte 1 of 1-byte UTF-8 sequence

JRException errors.GrailsExceptionResolver Invalid byte 1 of 1-byte UTF-8 sequence. 

Descripción: Error que aparece al momento de generar el objeto JasperReport: JasperReport report = JasperCompileManager.compileReport(archivoJasper); Es un error muy tonto, pero me sacó más de una cana verde en resolverlo.  

Solución: Entregarle al método compileReport(parametro) el nombre del archivo .jrxml en vez del archivo .jasper. Si bién parece un error sencillo de solucionar (y lo es), el problema radica en que la clase JRException entrega una descripción muy poco detallada y no describe bien el error.

Espero que a alguien le evite perder el tiempo que quitó a mi resolverlo.