>>
>> no le encuentro errores, pero aun así tiene esos lapsos en que la
>> carga baja
>> a cero y el sito deja de responder y no hay logs de errores de nada
>> por
>> ninguna parte :(
>>
>
>
> ¿como sabes que el sitio no responde?
> ¿pruebas desde fuera?
> ¿pruebas desde dentro de la maquina?
> ¿localmente puedes conectarte al mysql?
> ¿si te conectas cuantos queries hay?
> ¿hay alguno en estado locked?
> ¿en ese momento cuantos procesos del servidor web estan corriendo?
> ¿cuantas conexiones te muestra el netstat?
> ¿tienes procesos en crontab para esa hora?
>
1) por que la pagina no hace nada.
2) si, el servidor está en USA, todo se hace remoto, lo pruebo con el
navegador de mi casa.
3) no
4) si puedo.
5) ninguno ya que el sitio no responde y las consultas a la db se van
a cero.
6) no
7) son 4 workers y montones de spwan de fast-cgi (fácil unos 20
procesos derivados del lighttpd
8) solo unas pocas, ninguna desde el sitio.
9)nop, no hay crontabs a esa hora.
algo apareció en un log de lighttpd
establishing connection failed: Connection refused socket: tcp:127.0.0.1
fcgi-server re-enabled: tcp:127.0.0.1
dentro de la escuálida documentación de lighttpd encontré esto:
error fantasma o error 500 en foros con mucho tráfico.
muchas veces no deja logs ni muestra errores (como en este caso)
en otro muestra un error 500.
la posible solución es una configuración del modulo de fast-cgi
//////
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/var/tmp/lighttpd/php-fastcgi.socket",
"max-procs" => 3,
"bin-path" => "/usr/bin/php-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "8",
"PHP_FCGI_MAX_REQUESTS" => "8000"
)
)
)
)
//////
cosa que ya implementé (con valores adecuados a la carga del
servidor), hasta ahora no ha vuelto a pasar.
esperemos a ver que pasa.
gracias a todos.
si tienen algo que comentar, aportar o alegar, no dejen de hacerlo,
siempre es útil cualquier comentario.
From [EMAIL PROTECTED] Tue Sep 30 19:20:41 2008
From: [EMAIL PROTECTED] (Lorenzo Ponce)
Date: Tue Sep 30 19:47:48 2008
Subject: Mysql, consulta registro sin integridad referencial
Message-ID: <[EMAIL PROTECTED]>
Estimados, en primer lugar, no sé si esta es la lista adecuada por lo que no vi
una de base de datos, si no lo es, favor indicar (con una vez basta).
Tengo una base de datos MyISAM (MySQL), y tengo la necesidad de rescatar datos
de una tabla cuya integridad referencial no existe.
Es sencillo sacar los que tienen su PK con la FK en otra tabla, WHERE
idCampo=fkCampo, pero lo que quiero es sacar aquellos registros que NO tienen
hecha la relación.
He intentado usando selects anidados y funciones como NOT IN, lo cual funciona
bien con pocos registros, pero al crecer la cantidad de registros se torna
demasiado lento por los selects que debe hacer en cada vuelta.
Me gustaría me indicaran alguna solución más eficiente. Me imagino que llenar
de OR la consulta sería poco eficiente también.
Favor, omitir comentarios del tipo cámbiate a postgres, u otros, que no
contribuyan a la solución de codificación requerida.
Muchas gracias.
LP
____________________________________________________________________________________
¡Todo sobre Amor y Sexo!
La guía completa para tu vida en Mujer de Hoy.
http://mujerdehoy.telemundo.yahoo.com/
From [EMAIL PROTECTED] Tue Sep 30 20:26:44 2008
From: [EMAIL PROTECTED] (Rodrigo Fuentealba)
Date: Tue Sep 30 20:26:53 2008
Subject: Mysql, consulta registro sin integridad referencial
In-Reply-To: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
Message-ID: <[EMAIL PROTECTED]>
Lorenzo Ponce <[EMAIL PROTECTED]> escribió:
> Estimados, en primer lugar, no sé si esta es la lista
> adecuada por lo que no vi una de base de datos,
> si no lo es, favor indicar (con una vez basta).
En general tratamos temas relacionados con bases de datos.
> Tengo una base de datos MyISAM (MySQL), y
> tengo la necesidad de rescatar datos de una
> tabla cuya integridad referencial no existe.
MyISAM... ¿por qué torturan tanto a la gente?
> Es sencillo sacar los que tienen su PK con la
> FK en otra tabla, WHERE idCampo=fkCampo,
> pero lo que quiero es sacar aquellos registros
> que NO tienen hecha la relación.
SELECT tabla1.campo FROM tabla1, tabla2 WHERE tabla1.campo1 NOT IN
(SELECT tabla2.campo2 FROM tabla2);
Eso, ¿cierto?.
http://dev.mysql.com/doc/refman/5.0/en/rewriting-subqueries.html
Haz un query rewrite como el que sigue:
SELECT tabla1.*
FROM tabla1 LEFT JOIN tabla2 ON tabla1.id=tabla2.id
WHERE tabla2.id IS NULL;
Con eso deberías tener un improvement.
> He intentado usando selects anidados y funciones
> como NOT IN, lo cual funciona bien con pocos registros
Querrás decir "funciona".
> pero al crecer la cantidad de registros se torna demasiado
> lento por los selects que debe hacer en cada vuelta.
El optimizador de MySQL es horrible.
> Me gustaría me indicaran alguna solución más eficiente.
> Me imagino que llenar de OR la consulta sería poco eficiente
> también.
Yo no veo la forma simple de hacerlo con OR. Por algo parecido mandé a
un tipo a repetir Bases de Datos I.
> Favor, omitir comentarios del tipo cámbiate a postgres,
> u otros, que no contribuyan a la solución de codificación
> requerida.
No te preocupes; no te cambies a PostgreSQL, si al total, son datos de
un cliente nada más, no importa ni integridad ni consistencia ni una
base de datos decente... (sarcásticamente hablando, claro).
Saludos,
--
Rodrigo Fuentealba