Comprobar el estado de la caché de MySQL

mysql-caching-techniquesHace unos días hablamos de cómo activar la caché de MySQL. Espero que la hayáis probado y que hayáis visto cómo vuestros tiempo de consulta se reducen considerablemente con sólo activarla. Os dije que os comentaría cómo monitorizarla y de esa promesa, esta entrada.

Soy de los que dice que algo por bien que funcione, si no puede medirse, no funciona tan bien. Las sensaciones son esos y aunque veamos que el tiempo de ejecución ha caído, no sabemos nada sobre la caché. Todos los que hayáis estudiado algo relacionado con la informática, conoceréis conceptos como la tasa de fallos y de aciertos de cualquier caché y ésta, no podía ser menos.

¿Cómo podemos ver esos datos? Veamos.

Comprobar si la caché está activada

Para esta labor usaremos el siguiente comando (siempre desde la consola de MySQL):

SHOW VARIABLES LIKE 'have_query_cache';

Que nos devolverá si está activada lo siguiente:

+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_query_cache | YES |
+------------------+-------+

Parámetros de estado

Para ver todos los parámetros del estado de la caché, una vez sabemos que está activada hacemos:

SHOW STATUS LIKE 'Qcache%';

Y el resultado es el siguiente:

+-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | Qcache_free_blocks | 3409 | | Qcache_free_memory | 501720656 | | Qcache_hits | 3265000 | | Qcache_inserts | 1321208 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 72160 | | Qcache_queries_in_cache | 10027 | | Qcache_total_blocks | 24143 | +-------------------------+-----------+ read more

Leer más » 3 Comentarios

Consola de recuperación de Ubuntu: quitar modo de sólo lectura, permitir escritura

Probablemente en alguna ocasión os hayáis tenido que enfrentar a la consola de recuperación de Ubuntu. El problema más frecuente en estos casos suele venir derivado del servidor gráfico: problemas al configurarlo, con el controlador de la tarjeta gráfica o al trastear con diferentes entornos de escritorio.

Ubuntu 13.04 logo

Una vez el sistema gráfico no funciona y sólo nos queda entrar en la consola de recuperación, ésta, nos ofrece una terminal en la que el sistema de ficheros, el nuestro, está montado en modo de sólo lectura. Sin embargo, somos superusuarios y podemos cambiar esto rápidamente. read more

Leer más » 3 Comentarios

Integración de sistemas y servicios distribuidos con OpenLDAP

Me ha llegado desde una lista de correo el siguiente manual sobre OpenLDAP. Me gustaría compartirlo con vosotros mediante esta vía para darle difusión.

ldap_linux_hispano

Prefiero no replicar contenido. Podéis encontrarlo desde el siguiente enlace.

Leer más » 1 Comentario

Determinar si un vector está aumentando constantemente – Curso Octave

NOTA: este tutorial es parte del curso de Octave de Linux Hispano.

Os voy a proponer un pequeño ejercicio a resolver. Más adelante tenéis la solución pero en un principio me gustaría que lo intentáseis por vosotros mismos.

El ejercicio es el siguiente: Crea una función, incrementa_vector_constantemente.m, que reciba un vector de números. Dicha función devuelve true si los elementos del vector van aumentando constantemente. De lo contrario devuelve false.

Leer más » 6 Comentarios

Comprimir imágenes JPG con Jpegoptim

Hace unos meses os contaba cómo comprimir imágenes en formato PNG con la herramienta OptiPNG pasando a obtener una imagen con la misma calidad y menor tamaño. Ahora veremos su homólogo para reducir el tamaño de imágenes en formato JPEG a través de la herramienta Jpegoptim.

jpegoptim

Veamos cómo instalar Jpegoptim en nuestra distro, en el caso de Debian/Ubuntu/Mint, podemos abrir un terminal y continuar como sigue:

ahornero@6581-D:~$ sudo apt-get install jpegoptim

Ya instalado, vamos a probar. Me dirijo al directorio Pictures y lanzo el comando sobre una única imagen:

ahornero@6581-D:~/Pictures$ jpegoptim IMG018.jpg

Y una vez lanzado obtendremos lo siguiente como salida, sonde se aprecia una reducción de tamaño del 2.43%:

IMG018.jpg 2592×1944 24bit Exif [OK] 1778140 –> 1734850 bytes (2.43%), optimized.

Esto esta muy bien, pero ¿y si quiero aplicarlo a toda mi galería de imágenes?

Leer más » 2 Comentarios

Cómo borrar archivos de un sólo tipo y de forma recursiva

Nos encontramos ante la siguiente situación: tenemos en una ruta determinada, formada por varias carpetas, un tipo de fichero que queremos borrar conservando el resto.

La solución si hablamos de dos carpetas y tres ficheros es hacerlo a mano, si tenéis más carpeta o más ficheros, debéis usar la solución que abajo os propongo y que hace uso de las bondades de la terminal.

Si no estáis seguros de lo que vais a hacer lo mejor es que pida confirmación entre borrado y borrado.

Veamos un ejemplo: queremos borrar todos los ficheros PDF que existen en nuestro directorio actual y en todos sus hijos:

find . -type f -name "*.pdf" -exec rm -i {} \;

Leer más » 9 Comentarios

rsync a través de SSH con ficheros PEM

Si ya hemos hablado en entradas anteriores de copiar ficheros mediante SCP usando un fichero PEM para autenticarse y de conectarse a un servidor por SSH con un fichero de certificado digital PEM, hoy seguimos nuestra serie dedicada al manejo de conexiones seguras con ficheros PEM con el uso de rsync.

Como veis son tips muy cortos pero verdaderamente útiles en ambientes como Amazon Web Services donde este tipo de autenticación es frecuente.

Lo único que debemos hacer en este caso es indicar el tipo de comunicación, mediante SSH y más concretamente usando dicha clave:

rsync -e "ssh -i miclave.pem"

Un ejemplo completo podría ser:

Leer más » 1 Comentario

¿Cómo desmontar un dispositivo cuando está ocupado? Device is busy

Os pongo en situación, habéis montado de forma manual o automática cualquier dispositivo: desde una carpeta usando SMB o CIFS, o un USB extraíble o un CD-ROM y al ir a desmontarlo recibimos un aviso así que nos lo impide:

# umount /media/disco/
umount: /media/disco: device is busy

¿Qué significa esto? Que hay algún proceso que está usando el punto de montaje. ¿Quién? fuser nos lo dice:

# fuser -m /dev/sdc1
/dev/sdc1: 928

Es el proceso con identificador 928, veamos más datos sobre él, eso tenemos ps ayudado por grep:

Leer más » 5 Comentarios

Insertar clave de Akismet desde el wp-config.php

Logo AkismetAkismet es un plugin de WordPress y es un modelo de negocio que me encanta en sí mismo. Ofrece un servicio básico para los que usamos blogs: aislar el spam de forma inteligente, y hay que pagarlo o no, depende para qué lo usemos, haciendo del Software Libre un modelo económico viable, amable y a la vez justo.

Pero bueno, dejando de lado esas consideraciones, hoy os comento cómo meter la clave API de Akismet que conseguís al registraros, para poder usar el servicio.

Probablemente todos conozcáis el método por el cuál introduces la clave API en el escritorio de WordPress. Este método tiene tres problemas, de menor a mayor importancia:

  • Es más lento que el que os voy a inscribir.
  • Es muy pesado si tenemos una red WordPress con muchos blogs (hay que replicar uno a uno).
  • En algunas instalaciones, sobre todo de WordPress Network, el interfaz gráfico de usuario para meter la clave está deshabilitado por un problema técnico que aparece por restricción de permisos. Es un bug y hay varios tickets al respecto.

¿Cuál es la idea que os planteo? Introducirlo directamente en vuestro wp-config.php, exactamente así:

Leer más » 2 Comentarios

¿Qué motor de base de datos de MySQL está usando una tabla?

MySQL es un sistema gestor de base de datos con mejores o peores consideraciones. Como punto positivo, está la posibilidad de usar más de un motor de base de datos. Básicamente dos son los más conocidos: MyISAM e InnoDB.

¿Cómo saber desde la consola de MySQL esta información? Con la siguiente orden, fijaos que el DESCRIBE TABLE no ofrece esta información, sólo la información referente al tipo de dato de cada columna, así que tenemos que usar:

SHOW TABLE STATUS WHERE Name = 'nombre_tabla'

Leer más » 1 Comentario