problema con servidor con mucho trafico.

2008-10-03 Por tema Felipe Román Márquez
encontré otro log más.

pertenece al /var/log/lighttpd/error.log

unexpected end-of-file (perhaps the fastcgi process died): pid: 0  
socket: tcp:127.0.0.1:1026
2008-10-02 22:29:05: (mod_fastcgi.c.3325) response not received,  
request sent: 996 on socket: tcp:127.0.0.1:1026 for /foro/vbseo.php ,  
closing connection


no encuentro soluciones para esto.
la verdad ya me está cansando, estoy a punto de sacar esto y poner un  
apache como dios manda.

alguna idea?

de antemano muchas gracias.




 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.



problema con servidor con mucho trafico.

2008-09-30 Por tema Miguel Oyarzo O.
Felipe Román Márquez escribió:
Hola a todos, les escribo por que estoy a punto de decir que está 
 máquina está poseída.
 
 en detalle:
 
 centos 5.2
 4gb ram ecc FB-DIMM
 2 quad-core (8 nucleos en total a 2.0ghz)
 arreglo de discos decente.
 
  
 
 cualquier tip o ayuda será muy bienvenido, de antemano muchas gracias.
 

que te dice rkhunter cuando lo corres?


Slaudos,

Miguel Oyarzo O.
Austro Internet S.A.
Punta Arenas
From [EMAIL PROTECTED]  Tue Sep 30 07:26:17 2008
From: [EMAIL PROTECTED] (=?ISO-8859-1?Q?Felipe_Rom=E1n_M=E1rquez?=)
Date: Tue Sep 30 08:21:43 2008
Subject: problema con servidor con mucho trafico.
In-Reply-To: [EMAIL PROTECTED]
References: [EMAIL PROTECTED]
[EMAIL PROTECTED]
Message-ID: [EMAIL PROTECTED]



El 30-09-2008, a las 1:10, Germán Póo-Caamaño escribió:



 que te dice iostat? vmstat?

todo dentro de los parametros normales.

iostat:
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
6.000.001.940.060.00   92.00

Device:tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda   1.5040.00 0.00 80  0


vmstat:

procs ---memory-- ---swap-- -io --system--  
-cpu--
  r  b   swpd   free   buff  cache   si   sobibo   in   cs us  
sy id wa st
  0  0 155572 375364 108492 266343600141000  
16  2 81  0  0
  0  0 155572 374744 108492 266348000 0 0 1452  600   
3  0 97  0  0
  0  0 155572 374868 108508 266347200 080 1447  365   
1  0 99  0  0
  0  0 155560 373628 108508 266352400 0 0 1378  806   
8  0 92  0  0
  1  0 12 373512 108512 266352800 2 0 1504  526   
5  0 95  0  0



 No es tanta una carga de 2 ó 3.  Me imagino que responde bien el  
 sistema
 si es que tienes respuesta con htop y tail.  De hecho, debieras  
 tenerla.

antes del tuning tenía un Load Average de 8.
ahora en promedio no llega a 3. (esto en gran parte por hacer que  
mysql trabaje en varios threads y que lighttpd también.



 Esto también incide en la memoria en uso.  Puedes deshabilitar  
 KeepAlive
 en las conexiones HTTP o dejarlo en 1 segundo.

rara vez el server llega a usar más de 1.3gb de ram, la gran mayoría  
de eso es mysql (como 800mb de ram)


 Una cosa es afinar el motor de BD y otra es afinar las BD (tablas,
 índices, consultas).

lo sé, pero yo no puedo meterme ahí, no me corresponde.

 Si lighty sigue respondiendo, el problema lo puedes tener en la
 comunicación con la base de datos.

 Podrías utilizar fast-cgi para mejorar el rendimiento de PHP con  
 lighty,
 pero es muy probable que el problema esté en la aplicación o en la  
 base
 de datos, ya sea por algún bloqueo, consultas no optimizadas,  
 deadlocks,
 etc.  En tal caso, revisa como analizar lo que hace el planificador de
 MySQL.

ya está usando fast-cgi y lua para trabajar con php5.


 Las optimizaciones en la infraestructura sirven, pero no tanto si las
 aplicaciones utilizan fuerza bruta para funcionar.

si lo sé, el problema es que no tengo logs de nada, estoy dando palos  
de ciego, no se por que el servidor deja de responder.


 Suerte,

muchas gracias.
From [EMAIL PROTECTED]  Tue Sep 30 08:56:03 2008
From: [EMAIL PROTECTED] (=?ISO-8859-1?Q?Felipe_Rom=E1n_M=E1rquez?=)
Date: Tue Sep 30 08:56:15 2008
Subject: problema con servidor con mucho trafico.
In-Reply-To: [EMAIL PROTECTED]
References: [EMAIL PROTECTED]
[EMAIL PROTECTED]
Message-ID: [EMAIL PROTECTED]


El 30-09-2008, a las 2:14, Miguel Oyarzo O. escribió:

 Felipe Román Márquez escribió:
   Hola a todos, les escribo por que estoy a punto de decir que está  
 máquina está poseída.
 en detalle:
 centos 5.2
 4gb ram ecc FB-DIMM
 2 quad-core (8 nucleos en total a 2.0ghz)
 arreglo de discos decente.
 cualquier tip o ayuda será muy bienvenido, de antemano muchas  
 gracias.

 que te dice rkhunter cuando lo corres?

todo OK.

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 :(
From [EMAIL PROTECTED]  Tue Sep 30 10:14:17 2008
From: [EMAIL PROTECTED] (Aldrin Martoq)
Date: Tue Sep 30 10:44:48 2008
Subject: problema con servidor con mucho trafico.
In-Reply-To: [EMAIL PROTECTED]
References: [EMAIL PROTECTED]
Message-ID: [EMAIL PROTECTED]

On Tue, 2008-09-30 at 00:45 -0400, Felipe Román Márquez wrote:
 Hola a todos, les escribo por que estoy a punto de decir que está  
 máquina está poseída.
[..]
 ahora el real problema  es a la hora de mayor carga. aprox 8pm.
 tengo abierta una consola para ver htop, otra con tail -f al messages,  
 otro tail -f al lighttpd/error_log  y  tail -f al log de errores de  
 mysql.
 mirando el htop, con los 8 nucleos con carga (Load Average de 2 a 3 ),  
 sin previo aviso y sin logs de errores ni warnings, todos los nucleos  
 se van a CERO carga, y el sitio no funciona.
 no hay logs, no hay avisos, no hay nada, pasa

problema con servidor con mucho trafico.

2008-09-30 Por tema Felipe Román Márquez


El 30-09-2008, a las 10:14, Aldrin Martoq escribió:

 On Tue, 2008-09-30 at 00:45 -0400, Felipe Román Márquez wrote:
 Hola a todos, les escribo por que estoy a punto de decir que está
 máquina está poseída.
 [..]
 ahora el real problema  es a la hora de mayor carga. aprox 8pm.
 tengo abierta una consola para ver htop, otra con tail -f al  
 messages,
 otro tail -f al lighttpd/error_log  y  tail -f al log de errores de
 mysql.
 mirando el htop, con los 8 nucleos con carga (Load Average de 2 a  
 3 ),
 sin previo aviso y sin logs de errores ni warnings, todos los nucleos
 se van a CERO carga, y el sitio no funciona.
 no hay logs, no hay avisos, no hay nada, pasa aprox 1 minuto y sube  
 la
 carga de nuevo y el server sigue trabajando como si nada

 Lo primero es buscar culpables. Veo solo dos componentes: el servidor
 lighttpd y la base de datos mysql. Entonces cuando se pega revisa  
 quien
 esta tieso: o la base de datos o el lighttpd. Para http, create una
 pagina php con sesion de prueba pero sin base de datos; para mysql
 create una consulta con una tabla nueva (o base de datos distinta) y
 otra con tablas de la base de datos.

ya hice lo de la mysql y sigue funcionando cuando pasa esto, no he  
probado lo del light. pero estoy 99.9% seguro de que el problema está  
ahí.



 Lo segundo es ver que le pasa. Al ojimetro, tiene pinta de algun
 deadlock en la base de datos que se libera tras 1 minuto.


 Que tipo de tablas estas usando? Trata de buscar los parametros, debe
 haber alguno que este cerca de los 60 segundos, por ejemplo mira esto:


MyISAM

 # You can set .._buffer_pool_size up to 50 - 80 %
 # of RAM but beware of setting memory usage too high
 innodb_buffer_pool_size = 8000M
 #innodb_additional_mem_pool_size = 80M
 # Set .._log_file_size to 25 % of buffer pool size
 innodb_log_file_size = 1000M
 #innodb_log_buffer_size = 32M
 #innodb_flush_log_at_trx_commit = 1
 #innodb_lock_wait_timeout = 50
 ^^^





problema con servidor con mucho trafico.

2008-09-30 Por tema Juan Manuel Doren

 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?


problema con servidor con mucho trafico.

2008-09-30 Por tema Felipe Román Márquez


 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