Gracias al TED encontré un vídeo muy interesante de dibujos animados explicando cómo hay muchas cosas invisibles para nosotros y tratando de hacer que las comprendamos aunque sea un poquito.
04 octubre 2012
De optimizaciones de MySQL
Hace ya un tiempo que no escribo ninguna entrada en el blog debido a la cantidad de trabajo que me está viniendo encima, que viendo los tiempos que corren, quizás hay que pensar que es más una cuestión de fortuna que de desgracia.
Sigamos con lo que me interesa. El hecho es que mi grupo se va a hacer cargo de un despliegue web de un cliente. El despliegue es servicio un servidor web Apache con PHP, una base de datos MySQL. Al trabajar en el mundo de la consultoría, para bien o para mal, hay otro grupo que hace el "delivery", es decir, ellos preparan las instalaciones y me las traspasan. En este caso, el cliente estaba bastante cabreado con el delivery de bases de datos. Es común pensar que MySQL es una base de datos de juguete, y entonces lo que hacen las consultoras es coger a un administrador de base de datos de Oracle, que es una base de datos de verdad, y lo ponen a preparar la entraega. En nuestro caso ha pasado, que el cliente no sólo no es tonto, sino que encima sabe técnicamente y ha llegado un momento en el que ha visto que no se ha optimizado la base de datos sino que la base de datos era un cuello de botella.
Finalmente nos han traspasado a nosotros el Delivery de la base de datos, lo hemos hecho y el cliente está un poco más contento porque ahora la base de datos funciona bien. Ahora yo me pregunto, ¿tengo que hacer yo la documentación de algo que me tienen que traspasar?.
Respecto a las optimizaciones nos dedicamos a seguir las recomendaciones de la web de mysql, o en caso de duda, las de mysqlperformance.
Finalmente la sensación que tengo es que la mejora en la base de datos viene dada por el aumento de dos variables:
innodb_read_io_threads
innodb_write_io_threads
Con 12 cores situamos los parámetros anteriores en 24, y da la sensación de que esa ha sido la mejora sustancial.
Ahora se ha traspasado la responsabilidad a Apache, pero realmente por mucho que optimicemos, hay una seguridad del 90% de que haya que optimizar el código php, y norlmalmente esta es la parte menos flexible.
Sigamos con lo que me interesa. El hecho es que mi grupo se va a hacer cargo de un despliegue web de un cliente. El despliegue es servicio un servidor web Apache con PHP, una base de datos MySQL. Al trabajar en el mundo de la consultoría, para bien o para mal, hay otro grupo que hace el "delivery", es decir, ellos preparan las instalaciones y me las traspasan. En este caso, el cliente estaba bastante cabreado con el delivery de bases de datos. Es común pensar que MySQL es una base de datos de juguete, y entonces lo que hacen las consultoras es coger a un administrador de base de datos de Oracle, que es una base de datos de verdad, y lo ponen a preparar la entraega. En nuestro caso ha pasado, que el cliente no sólo no es tonto, sino que encima sabe técnicamente y ha llegado un momento en el que ha visto que no se ha optimizado la base de datos sino que la base de datos era un cuello de botella.
Finalmente nos han traspasado a nosotros el Delivery de la base de datos, lo hemos hecho y el cliente está un poco más contento porque ahora la base de datos funciona bien. Ahora yo me pregunto, ¿tengo que hacer yo la documentación de algo que me tienen que traspasar?.
Respecto a las optimizaciones nos dedicamos a seguir las recomendaciones de la web de mysql, o en caso de duda, las de mysqlperformance.
Finalmente la sensación que tengo es que la mejora en la base de datos viene dada por el aumento de dos variables:
innodb_read_io_threads
innodb_write_io_threads
Con 12 cores situamos los parámetros anteriores en 24, y da la sensación de que esa ha sido la mejora sustancial.
Ahora se ha traspasado la responsabilidad a Apache, pero realmente por mucho que optimicemos, hay una seguridad del 90% de que haya que optimizar el código php, y norlmalmente esta es la parte menos flexible.
Publicado por
jmcalvar
en
6:41 a. m.
0
comentarios
Enviar por correo electrónicoEscribe un blogCompartir con TwitterCompartir con FacebookCompartir en Pinterest
Etiquetas:
mysql,
optimización,
performance
03 mayo 2012
Sucesos extraños con ext4
Hace poco más de seis meses cambié de distribución en mi portátil y pasé de uno de los sabores de Debian (Mint), a uno de los sabores de RedHat (Fedora). Hasta la fecha la experiencia de usuario, mía y de mi mujer (que no es técnica) no ha podido ser más satisfactoria.
Hace un par de semanas asistí a un taller de Oracle Weblogic y allí me sucedió una cosa muy extraña. Encendí mi portátil, y se me quedó en el arranque indicándome que había un filesystem con muchos fallos y que tenía que ejecutar un fsck a ese filesystem manualmente. El filesystem en cuestión era /home, debido a lo cual me eché a temblar y casi a tener sudores fríos.
Después de unos 20 minutos de fsck, me cansé y pensé en montarlo para ver si había perdido mucha información, y para mi sorpresa estaba toda (o eso parecía).
¿Qué había hecho fuera de lo normal con ese filesystem los días previos? Pues simplemente lo había extendido en 10 GB con lvm y redimensionado con resize2fs.
Ese mismo día tuve que extender /tmp para que pudiera soportar la descompresión de weblogic. En el siguiente reinicio tenía los errores en /home y en /tmp. Está claro que hay un problema con ext4 y el redimensionamiento, quizás con las herramientas de redimensionamiento y el ext4 propiamente, quizás con lvm., realmente no lo sé, no he investigado demasiado, pero por las pocas cadenas que busqué no encontré nada. Los problemas que indicaban que había eran extraños, activado el flag del compresión en ínodos que no están comprimidos, ínodos que parecen directorios, pero que son ficheros..., etc, etc..., lo peor es que eran muchísimos. Ejecuté una noche el fsck y estuvo toda la noche corrigiendo errores sin terminar.
Finalmente la solución fue muy sencilla. Creé un nuevo filesystem del mismo tamaño, copié toda la información ahí, cambié la entrada del fstab, y todo volvió a funcionar. Ahora tengo pendiente la parte de investigación, puesto que tiemblo pensando que me pueda volver a pasar el mismo problema.
Hace un par de semanas asistí a un taller de Oracle Weblogic y allí me sucedió una cosa muy extraña. Encendí mi portátil, y se me quedó en el arranque indicándome que había un filesystem con muchos fallos y que tenía que ejecutar un fsck a ese filesystem manualmente. El filesystem en cuestión era /home, debido a lo cual me eché a temblar y casi a tener sudores fríos.
Después de unos 20 minutos de fsck, me cansé y pensé en montarlo para ver si había perdido mucha información, y para mi sorpresa estaba toda (o eso parecía).
¿Qué había hecho fuera de lo normal con ese filesystem los días previos? Pues simplemente lo había extendido en 10 GB con lvm y redimensionado con resize2fs.
Ese mismo día tuve que extender /tmp para que pudiera soportar la descompresión de weblogic. En el siguiente reinicio tenía los errores en /home y en /tmp. Está claro que hay un problema con ext4 y el redimensionamiento, quizás con las herramientas de redimensionamiento y el ext4 propiamente, quizás con lvm., realmente no lo sé, no he investigado demasiado, pero por las pocas cadenas que busqué no encontré nada. Los problemas que indicaban que había eran extraños, activado el flag del compresión en ínodos que no están comprimidos, ínodos que parecen directorios, pero que son ficheros..., etc, etc..., lo peor es que eran muchísimos. Ejecuté una noche el fsck y estuvo toda la noche corrigiendo errores sin terminar.
Finalmente la solución fue muy sencilla. Creé un nuevo filesystem del mismo tamaño, copié toda la información ahí, cambié la entrada del fstab, y todo volvió a funcionar. Ahora tengo pendiente la parte de investigación, puesto que tiemblo pensando que me pueda volver a pasar el mismo problema.
10 febrero 2012
Cómo saber que tamaño tiene una base de datos en mysql
Desde el cambio a la versión 5 de MySQL in con la introducción de las vistas del Information_schema, saber qué tamaño tiene una base de datos es relativamente fácil, tan fácil como ejecutar esta consulta:
El problema surge cuando tenemos una base de datos de la versión 4, ya que en estas versiones MySQL no disponía de Information_schema.
Yo he hecho un pequeño script que parsea la información que proporciona el SHOW TABLE STATUS, de modo que me da un valor aproximado.
El script sería éste:
(lista_basesdatos es una lista con las bases de datos que quiero medir)
SELECT table_schema "Data Base Name", sum( data_length + index_length ) / 1024 / 1024 "Data Base Size in MB" FROM information_schema.TABLES GROUP BY table_schema ;
El problema surge cuando tenemos una base de datos de la versión 4, ya que en estas versiones MySQL no disponía de Information_schema.
Yo he hecho un pequeño script que parsea la información que proporciona el SHOW TABLE STATUS, de modo que me da un valor aproximado.
El script sería éste:
(lista_basesdatos es una lista con las bases de datos que quiero medir)
#!/bin/bash for i in `cat lista_basesdedatos`; do a=`mysql -u root -D ${i} -e 'show table status\G'|grep Data_l|awk '{print $2}'|(tr '\n' +; echo 0)|bc` b=`mysql -u root -D ${i} -e 'show table status\G'|grep Index_l|awk '{print $2}'|(tr '\n' +; echo 0)|bc` resultado=`echo $a+$b|bc`; echo $i $resultado done
05 febrero 2012
Un forastero llega a la ciudad y quizás te haga mejorar la productividad, bienvenido lazymeter
Pues sí, lo descubrí de casualidad mientras ojeaba unas cosas de evernote, qué incongruencia.
Se trata de lazymeter, parece que sigue 100% "The Cycle", aunque es tan nuevo que de momento no tiene una aplicación pesada para Android, aunque dicen que la tienen en desarrollo.
Merece la pena probarla, ya que además de poder anotar tareas, cambiarlas de día, moficiar el orden de la tarea, etc., nos va mostrando el porcentaje de logro diario. Puede ser un buen sistema de motivación
En unos días supongo que habré probado el sistema más profundamente y tendré oportunidad e escribir una opinión más extensa sobre él
Se trata de lazymeter, parece que sigue 100% "The Cycle", aunque es tan nuevo que de momento no tiene una aplicación pesada para Android, aunque dicen que la tienen en desarrollo.
Merece la pena probarla, ya que además de poder anotar tareas, cambiarlas de día, moficiar el orden de la tarea, etc., nos va mostrando el porcentaje de logro diario. Puede ser un buen sistema de motivación
En unos días supongo que habré probado el sistema más profundamente y tendré oportunidad e escribir una opinión más extensa sobre él
Publicado por
jmcalvar
en
12:55 p. m.
0
comentarios
Enviar por correo electrónicoEscribe un blogCompartir con TwitterCompartir con FacebookCompartir en Pinterest
Etiquetas:
android,
gestión del tiempo,
productividad
31 enero 2012
Herramientas para gestionar el tiempo de una manera eficaz I
Como muchos administradores de sistemas, tengo el defecto de estar en una búsqueda casi constante de las mejores herramientas para poder tener una gestión eficaz del tiempo.
En otro post hablé de "The Cycle" de Tom Limoncelli, su método de gestión del tiempo para administradores de sistemas del cual se puede leer más en su blog, o en su libro, "Gestión del Tiempo para Administradores de Sistemas".
He estando probando varios programas, lo cual me ha estado llevando a una gestión ineficaz del tiempo, y por una causa otra he dejado de utilizarlos (lo cual no significa que en algún momento los retome).
¿Qué es lo que busco en un programa para el ordenador y por supuesto para el móvil para poder llevar una gestión eficaz del tiempo?
Lo primero que busco es una aplicación web, para que sea multiplataforma. En la oficina trabajo con Windows, pero luego en mi casa sólo utilizo Linux.
Quiero que sea compatible con Firefox y Chrome, que son los navegadores que utilizo casi exclusivamente.
Lo segundo que busco es que tenga una aplicación pesada para el móvil.
Cuando trabajo con el ordenador casi siempre tengo conexión a internet.
Cuando utilizo el móvil, no siempre tengo conexión, y hay muchos momentos en los que quiero anotar algo sin disponer dde conexión, lo cual no sería posible con una aplicación web. Además si no tuviera conexión en mi ordenador, siempre me quedaría el móvil.
Para la aplicación web, busco que sea sencilla, me da igual que tenga múltiples listas, porque realmente utilizo las lista de "hoy" y de "mañana". Después de intentar aplicar The Cycle, sí que encuentro ventajas en poder tener múltiples listas porque puedo gestionar proyectos pequeños, que no afectan a mi planificación diaria, pero es importante resaltar, que no es fundamental.
Para la aplicación móvil, busco algo sencillo, que no haga que mi teléfono con Android se quede sin recursos y que se pueda sincronizar con una web propia, o bien de terceros.
El método de selección de las herramientas que he ido probando ha sido bien sencillo, he ido probando programas para el móvil que se pudieran sincronizar con alguna web, ya fuera propia, o de terceros, mediante su API.
Esta es la lista de las aplicaciones que he probado:
En las siguientes entradas hablaré un poco de lo que más me ha gustado y disgustado de cada uno, haciendo un pequeño análisis del uso que yo les he dado a estas aplicaciones.
En otro post hablé de "The Cycle" de Tom Limoncelli, su método de gestión del tiempo para administradores de sistemas del cual se puede leer más en su blog, o en su libro, "Gestión del Tiempo para Administradores de Sistemas".
He estando probando varios programas, lo cual me ha estado llevando a una gestión ineficaz del tiempo, y por una causa otra he dejado de utilizarlos (lo cual no significa que en algún momento los retome).
¿Qué es lo que busco en un programa para el ordenador y por supuesto para el móvil para poder llevar una gestión eficaz del tiempo?
Lo primero que busco es una aplicación web, para que sea multiplataforma. En la oficina trabajo con Windows, pero luego en mi casa sólo utilizo Linux.
Quiero que sea compatible con Firefox y Chrome, que son los navegadores que utilizo casi exclusivamente.
Lo segundo que busco es que tenga una aplicación pesada para el móvil.
Cuando trabajo con el ordenador casi siempre tengo conexión a internet.
Cuando utilizo el móvil, no siempre tengo conexión, y hay muchos momentos en los que quiero anotar algo sin disponer dde conexión, lo cual no sería posible con una aplicación web. Además si no tuviera conexión en mi ordenador, siempre me quedaría el móvil.
Para la aplicación web, busco que sea sencilla, me da igual que tenga múltiples listas, porque realmente utilizo las lista de "hoy" y de "mañana". Después de intentar aplicar The Cycle, sí que encuentro ventajas en poder tener múltiples listas porque puedo gestionar proyectos pequeños, que no afectan a mi planificación diaria, pero es importante resaltar, que no es fundamental.
Para la aplicación móvil, busco algo sencillo, que no haga que mi teléfono con Android se quede sin recursos y que se pueda sincronizar con una web propia, o bien de terceros.
El método de selección de las herramientas que he ido probando ha sido bien sencillo, he ido probando programas para el móvil que se pudieran sincronizar con alguna web, ya fuera propia, o de terceros, mediante su API.
Esta es la lista de las aplicaciones que he probado:
- Astrid -> http://www.astrid.com
- Wunderlist-> http://www.6wunderkinder.com
- Remember the Milk -> http://www.rememberthemilk.com
- Asana -> http://www.asana.com
- Workflowy-> https://workflowy.com/
- Springpad -> http://springpadit.com
- Evernote -> http://evernote.com/
- Any.do -> http://www.any.do
En las siguientes entradas hablaré un poco de lo que más me ha gustado y disgustado de cada uno, haciendo un pequeño análisis del uso que yo les he dado a estas aplicaciones.
Publicado por
jmcalvar
en
2:56 p. m.
0
comentarios
Enviar por correo electrónicoEscribe un blogCompartir con TwitterCompartir con FacebookCompartir en Pinterest
Etiquetas:
android,
gestión del tiempo,
productividad
15 enero 2012
Año nuevo, editor nuevo
Quizás no es el título más apropiado que puede tener esta entrada, pero lo que quiero transmitir es que le quiero dar una oportunidad a emacs.
Casi siempre edito con vim, alguna vez, con nano, y es sólo decir emacs, y me da un poquito de repelús, pero he decidido que voy a aprender cómo usarlo para saber si es tan potente como dicen o por el contrario regreso a vim.
De momento lo que estoy viendo me está gustando, como por ejemplo los diferentes modos mayores, o que cuando hago una búsqueda no se me quedan marcados los resultados, y tengo que introducir otro comando para desmcarcar.
Veremos en unas semanas qué tal me llevo con el.
Links:
http://www.gnu.org/software/emacs/
http://www.rpublica.net/emacs/start/start.html
http://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html
http://www.merlos.org/documentos/linux/22-tutorial-de-emacs.html
Casi siempre edito con vim, alguna vez, con nano, y es sólo decir emacs, y me da un poquito de repelús, pero he decidido que voy a aprender cómo usarlo para saber si es tan potente como dicen o por el contrario regreso a vim.
De momento lo que estoy viendo me está gustando, como por ejemplo los diferentes modos mayores, o que cuando hago una búsqueda no se me quedan marcados los resultados, y tengo que introducir otro comando para desmcarcar.
Veremos en unas semanas qué tal me llevo con el.
Links:
http://www.gnu.org/software/emacs/
http://www.rpublica.net/emacs/start/start.html
http://www2.lib.uchicago.edu/keith/tcl-course/emacs-tutorial.html
http://www.merlos.org/documentos/linux/22-tutorial-de-emacs.html
Suscribirse a:
Entradas (Atom)