Monitorizar tu servidor con «vmstat»

Tras oír el magnifico podcast (junto con la entrada en su blog que resume todo lo hablado) de DaboBlog junto con Ricardo Galli sobre sus experiencias como SysAdmins, el cual recomiendo encarecidamente oír, ya que cuentan de manera muy amena, y con ejemplos, su día a día administrado un sistema.

Tras oírlo tuve la curiosidad por uno de las utilidades de las que hablaron y que no utilizaba (sencillamente nunca me he visto en la necesidad).

Esta herramienta es vmstat, que nos permite monitorizar lo que pasa dentro de nuestro servidor a nivel de hardware… memoria, discos, procesos, y demás partes oscuras de nuestro sistema.

Tras leer un poco he visto que esta herramienta es totalmente imprescindible cuando su servidor baja de rendimiento y quieres saber el porqué. Si alguna vez te has enfrentado a este problema sabrás lo complicado que es en ocasiones, pero estas herramientas nos permiten hacernos una idea global con un vistazo.

Para hacernos una idea, las cosas que tenemos que tener en mente es lo siguiente:

  • La columna «swap» nos indica la actividad de la paginación, en la subcolumna «so» nos indica la paginación en el sentido memoria->disco. Si ves que hay números elevados, sin duda te has quedado sin memoria, y tiene que mover cosas a disco ya que no entran en memoria.
  • La columna «procs» nos indica el estado de los procesos, en la subcolumna «r» encontramos los procesos que están esperando por el uso del procesador.
  • La columna «memory» nos indica el estado de la memoria, en la subcolumna «free» nos indica la memoria libre. No creo que tenga que decirte que significa cuando llegamos a 0.
  • La columna «cpu» nos indica en que estamos gastando (o perdiendo) el tiempo de CPU, en la subcolumna «wa» os indica el porcentaje de espera por E/S de la CPU. Es especialmente útil cuando queremos ver en que pierde tiempo nuestra CPU (os recomiendo este documento)

Quizás sólo con esto no logres descubrir el 100% de los problemas que se pueden dar en tu servidor, pero sin duda son una buena guía para empezar una investigación.

Referencias que he usado para escribir este artículo:

Please follow and like us:

Geoserver y las extensiones «ImageIO-ext» no se llevan bien con Tomcat (>= 6.0.24)

Parece que tenemos un problema, Houston. Y uno gordo.

Muchas de las personas que utilizamos Geoserver como servidor de mapas, nos hemos decidido por la combinación Geoserver+Tomcat, ya que parece una forma «ordenada» y «optimizada» de implantar un servidor de mapas.

Pero todo tiene problemas.

Si hemos instalado las extensiones «ImageIO-ext» para obtener la posibilidad de usar muchos más formatos de fuentes de cartografía en nuestro servidor, y por casualidad hemos actualizado a una versión de Tomcat por encima de la 6.0.24 (inclusive) nos encontramos que al intentar usar un formato de los que nos da soporte las extensiones «ImageIO-ext», encontramos este fantástico error:

Caused by: java.lang.IllegalArgumentException: Incorrect input type!
       at javax.imageio.ImageReader.setInput(ImageReader.java:290)
       at it.geosolutions.imageio.gdalframework.GDALImageReader.setInput(GDALImageReader.java:838)

¿Yuhu?. Bueno, al menos, es un error reconocido por la gente de Geoserver y ahora mismo esta trabajando en ello, aunque no creo que tengan una solución próxima, ya que el problema esta en la extensión, no en el servidor Geoserver. La extensión tiene un problema de «leak» de memoria en ciertas condiciones, y las nuevas versiones de Tomcat tiene un nuevo mecanismo que detecta esto fallos que pueden peligrar el buen funcionamiento del servidor y hacen que no permita el registro de la extensión en el sistema (et voilà, ya no tenemos acceso a la extensión).

Aunque haya algún «workaround» a la vista, como deshabilitar dicho mecanismo de protección anti-fugas de memoria en el servidor Tomcat. Aunque esperemos que no quede mucho para que lo solucionen de una manera mas «fina».

Referencias:

Please follow and like us:

¿Problemas de memoria con WordPress?, no hay problema

Cuando usas WordPress, no es difícil encontrarse con algún odioso error de «Fatal error: Allowed memory size of XXX bytes exhausted (tried to allocate YYY bytes)«. Este problema se produce cuando tu PHP trata de usar más memoria de la que tiene asignada por defecto (si no recuerdo mal son 32 Mb), la cual es fácil de sobrepasar si tenemos mas de 10 plugins activos, sobretodo con alguno que consume muchos recursos…
Para conocer si el problema es el uso de la memoria de tu WordPress, hay un plugin recomendado que nos permite saber cuanta memoria consumimos con nuestro blog, y es «TPC! Memory Usage«, el cual recomiendo ya que es muy sencillo y práctico.

Para tratar de solucionar este problema, hay tres métodos a intentar. Primero en la propia configuración de WordPress, añadiendo (ojo, digo añadiendo) al principio del fichero wp-config.php la sentencia:

// Por ejemplo, si no te vale, ve subiendo el valor.
define('WP_MEMORY_LIMIT', '32M');

En este caso se ponen 32 Mb de memoria, pero por ejemplo para este blog tengo que poner 48 Mb y todo va bien, con un consumo medio de 33 Mb. Tampoco te pases poniendo el límite, ya que si estas es un server compartido, seguro que no te dejan subirlo mucho…

Si no te vale con este cambio y te siguen saltando errores con la memoria, es que te tienen limitado el tamaño máximo en la configuración de PHP, y puedes probar cambiando la configuración del PHP desde el fichero .htaccess (solo si el servidor web lo permite claro y usas Apache) del raíz de tu aplicación.

# De nuevo es valor que puedes cambiar
php_value memory_limit 32M

Si tuvieras acceso al fichero php.ini (cosa que dudo salvo que manejes tu el servidor), podrías cambiar la siguiente línea en él:

memory_limit = 16M

Si aún no te lo ha solucionado, te recomiendo que contactes con el administrador de la máquina ya que tienes las manos atadas con este asunto.

Referencias:

Please follow and like us: