Base de Datos bloquea Host

Rodrigo Fuentealba darkprox en gmail.com
Lun Ago 20 12:54:29 CLT 2007


El 20/08/07, oscar reyes <listasorh en gmail.com> escribió:
> Hola Rodrigo
>
> >
> > ¿Qué hay entre el servidor de bases de datos y los servidores Web?
>
>
> Un switch, que no es el definitivo y tampoco es un equipo robusto... pienso
> que esto podría ser parte del problema.
>

Intenta cambiarlo por uno definitivo. Hazle un ping al servidor y mira
cuántos paquetes se pierden. Fíjate que el ping numera los paquetes,
así:

64 bytes from www.nic.cl (200.1.123.3): icmp_seq=1 ttl=58 time=42.0 ms
64 bytes from www.nic.cl (200.1.123.3): icmp_seq=2 ttl=58 time=119 ms
64 bytes from www.nic.cl (200.1.123.3): icmp_seq=10 ttl=58 time=30.6 ms
64 bytes from www.nic.cl (200.1.123.3): icmp_seq=11 ttl=58 time=28.0 ms

Parece normal, pero icmp_seq=X te da un indicio de que algo anda mal y
podría ser por ahí el problema.

> ¿Qué clase de queries se ejecutan en el servidor de bases de datos?
>
>
> Select, insert, update, delete, create, create tempory tables, drop , index
> alter
>

Al menos en lo que me enseñaron a mí, "query" es solamente un SELECT
(query == consulta); INSERT, UPDATE y DELETE son instrucciones de
manipulación de datos, pero no necesariamente hacen la consulta. En
este contexto, te preguntaba qué clase de queries hay, si existe algún
query anidado mal hecho, y si éstos se apoyan en los índices.

He visto casos en que la conexión termina abortada luego de hacer un
select a demasiadas tablas y el producto cruzado (antes de hacer la
discriminación de qué campos van y qué campos no) es mayor al buffer
de salida. Otras veces he visto que el procesador simplemente comience
a freírse antes de caerse MySQL.

> En MySQL hay un log de consultas, ¿qué te dice?
>
>
> El Log completo no lo tenía andando, al principio todo andaba bien y crece
> rápidamente, voy a bajar el parámetro max_connect_errors y poner a andar
> mysql.log para ver que aparece...
>
> Lo que si me veo en el mysql-error.log son muchos registros de conexiones
> abortadas:
>
> [warning] Aborted connection XXXX to db: 'dbname' user 'dbuser' host
> 'hostname' (Got an error reading communication packets)
>

No es MySQL; es problema de conexión.

> ¿Cada cuánto tiempo ocurre el bloqueo?
>
>
> Me ha pasado 5 veces, al principio  bastante seguido, 3 veces en un día,
> luego modifique  max_connect_errors de 10 a 100 y el bloqueo ocurrió un día
> después, luego lo modifiqué a 1000 y ocurrió un día después del anterior
> (también había aumentado la cantidad de usuarios registrados en el sistema),
> ahora lo tengo en 10000 y no ha ocurrido hace 2 días...
>
> Siendo MySQL puede ser hasta que una mosca está parada encima del server.
>

La mosca está en el switch, y creo que se está electrocutando, por eso
pierdes tantos paquetes.

-- 
Rodrigo Fuentealba Cartes
Desarrollador de Sistemas - Consultor UNIX - Database Administrator



Más información sobre la lista de distribución Linux