Esta es la experiencia que me sucedio con MySql.
Resulta que realize una migración de un servidor linux instalado con RedHat a otro servidor instalado con Debian Etch and a half.
La migración se realizo aparentemente sin ningún tipo de problema, el php, apache2 y Mysql funcionaba sin problemas.
Luego de un rato nos dimos cuenta que algunas aplicaciones web que usaban php para conectarse a las bases de datos LOCALES no funcionaban.
indagando un poco más sobre el error nos encontramos con el siguiente error
MySQL server at 'reading initial communication packet', system error: 111
Cambiamos el parametro del bind_adress en el archivo de configuración my.cnf por 127.0.0.1 y nada.
La solución fue colocar en el archivo hosts.allow la linea
mysqld: 127.0.0.1
Blog de dedicado a compartir las experiencias sobre los temas que me atraen y rodean, estos temas son: Administración IT. Desarrollo de Software. Educación. Salud. Adminsitración de Recursos Humanos.
jueves, 16 de octubre de 2008
lunes, 6 de octubre de 2008
Optimizar Mysql
Algunos parametros para optimizar MySql son.
Activar la cache para las consultas
1. query_cache_type = 1 (0 (deshabilitado ), 1 (habilitado ) y 2 (bajo solicitud).
2. query_cache_size = 128M Tamaño de la cache
3. query_cache_limit = 1M
La cantidad de tablas abiertas, si tengo un sistema que utilize muchas tablas, el defecto es 64.
Si lo aumento debo tener presente los parametros del sistema operativo
un buen valor es
1. table_cache = 256
max_allowed_packet = 64M
otra es basarse en el archivo my-huge.cnf
Debemos mirar que tanta memoria le vamos a dejar al buffer de claves, un buen valor para un servidor con 3Gb en RAM sería:
1. key_buffer_size=256M
Si quieres tener un informe de tu rendimiento, puedes ejecutar http://day32.com/MySQL/tuning-primer.sh
Activar la cache para las consultas
1. query_cache_type = 1 (0 (deshabilitado ), 1 (habilitado ) y 2 (bajo solicitud).
2. query_cache_size = 128M Tamaño de la cache
3. query_cache_limit = 1M
La cantidad de tablas abiertas, si tengo un sistema que utilize muchas tablas, el defecto es 64.
Si lo aumento debo tener presente los parametros del sistema operativo
un buen valor es
1. table_cache = 256
max_allowed_packet = 64M
otra es basarse en el archivo my-huge.cnf
Debemos mirar que tanta memoria le vamos a dejar al buffer de claves, un buen valor para un servidor con 3Gb en RAM sería:
1. key_buffer_size=256M
Si quieres tener un informe de tu rendimiento, puedes ejecutar http://day32.com/MySQL/tuning-primer.sh
jueves, 2 de octubre de 2008
Afinar configuración del PHP
El caso se presenta cuando tengo instalado el php
1. max_execution_time = 30 // tiempo de ejecución en cpu de un script
2. max_input_time = 60 // Cuanto tiempo esperar datos de entrada en un script
3. memory_limit 32M // Cuantos bytes de memoria puede consumir un script
4. output_buffering 4096 // Cuantos bytes se guardan en el buffer antes de enviarlos al cliente
5. error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
// Enviar al log lo menos posible
6. display_errors = Off // Prevenir ataques
1. max_execution_time = 30 // tiempo de ejecución en cpu de un script
2. max_input_time = 60 // Cuanto tiempo esperar datos de entrada en un script
3. memory_limit 32M // Cuantos bytes de memoria puede consumir un script
4. output_buffering 4096 // Cuantos bytes se guardan en el buffer antes de enviarlos al cliente
5. error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
// Enviar al log lo menos posible
6. display_errors = Off // Prevenir ataques
Afinar servidor web apache
La situación se presenta cuando tienes instalado un servidor web apache y el servidor Mysql.
Algunos parametros de configuración en los dos servidores pueden afectar el rendimiento.
APACHE:
Para cambiar los parametros es recomendable conocer que tipo de procesamiento utiliza apache, y otras cositas una de ellas es si utilizamos prefork o worker, para saber esto utilizamos el comando
httpd -l
La salida de este comando puede ser
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
En este caso se utiliza prefork
Ahora si, cambios a realizar
Este grupo de cambios se realizaran en el archivo de configuración del apache
* Afinar la cantidad de procesos con los que comienza el servidor apache.
En el archivo de configuración se pueden encontrar elementos definidos para el tipo de procesamiento, se puede reconocer a que corresponde por que vemos una linea como
******
Los parametros que esten en lugar de ***** estan definidos para prefork, cuales cambiamos:
1. StartServers, esta parametro es la cantidad de procesos para atender peticiones con los que comienza el servidor apache un buen dato seria 50, en mi caso lo encontre en 8.
StartServers 50
2. MinSpareServers y MaxSpareServers, cuando llega una petición y no existe un proceso para atenderla el servidor crea un nuevo proceso, esta creación es demorada, por lo que es recomendable tener una cantidad de procesos en reserva, pero por el contrario si no se estan utilizando procesos los procesos de reserva se deberian reducir.
MinSpareServers 25
MaxSpareServers 40
3. MaxClients, es el número maximo de procesos que se pueden atender por día.
MaxClients 256
4. MaxRequestsPerChild, un proceso atiende una cantidad de peticiones y luego es destruido para evitar problemas de memoria
MaxRequestsPerChild 4000
5. Cada vez que se realiza una petición el servidor apache traduce la Ip de la dirección de la petición en un nombre valido realizando llamados al DNS, este proceso puede consumir tiempo, para lo cual es importante desactivarlo.
HostnameLookups off
6. Afinar la persistencia, navegar significa realizar una petición + conectar + pedir una pagina web + recibir los datos de la pagina web + desconectar + cliente contento. Estos pasos pueden ser muy repetitivos si realizo muchas peticiones de paginas sobre un servidor, así que es importante no conectar y desconectar tantas veces y aprovechar una conexión.
KeepAlive 8
KeepAliveTimeout 10
Algunos parametros de configuración en los dos servidores pueden afectar el rendimiento.
APACHE:
Para cambiar los parametros es recomendable conocer que tipo de procesamiento utiliza apache, y otras cositas una de ellas es si utilizamos prefork o worker, para saber esto utilizamos el comando
httpd -l
La salida de este comando puede ser
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
En este caso se utiliza prefork
Ahora si, cambios a realizar
Este grupo de cambios se realizaran en el archivo de configuración del apache
* Afinar la cantidad de procesos con los que comienza el servidor apache.
En el archivo de configuración se pueden encontrar elementos definidos para el tipo de procesamiento, se puede reconocer a que corresponde por que vemos una linea como
******
Los parametros que esten en lugar de ***** estan definidos para prefork, cuales cambiamos:
1. StartServers, esta parametro es la cantidad de procesos para atender peticiones con los que comienza el servidor apache un buen dato seria 50, en mi caso lo encontre en 8.
StartServers 50
2. MinSpareServers y MaxSpareServers, cuando llega una petición y no existe un proceso para atenderla el servidor crea un nuevo proceso, esta creación es demorada, por lo que es recomendable tener una cantidad de procesos en reserva, pero por el contrario si no se estan utilizando procesos los procesos de reserva se deberian reducir.
MinSpareServers 25
MaxSpareServers 40
3. MaxClients, es el número maximo de procesos que se pueden atender por día.
MaxClients 256
4. MaxRequestsPerChild, un proceso atiende una cantidad de peticiones y luego es destruido para evitar problemas de memoria
MaxRequestsPerChild 4000
5. Cada vez que se realiza una petición el servidor apache traduce la Ip de la dirección de la petición en un nombre valido realizando llamados al DNS, este proceso puede consumir tiempo, para lo cual es importante desactivarlo.
HostnameLookups off
6. Afinar la persistencia, navegar significa realizar una petición + conectar + pedir una pagina web + recibir los datos de la pagina web + desconectar + cliente contento. Estos pasos pueden ser muy repetitivos si realizo muchas peticiones de paginas sobre un servidor, así que es importante no conectar y desconectar tantas veces y aprovechar una conexión.
KeepAlive 8
KeepAliveTimeout 10
Suscribirse a:
Entradas (Atom)