Foros del Web » Programando para Internet » PHP »

proceso PHP.EXE consume casi el 100% de CPU

Estas en el tema de proceso PHP.EXE consume casi el 100% de CPU en el foro de PHP en Foros del Web. Hola a todos, mi problema es el siguiente, espero que alguien me pueda ayudar. tengo un programa hecho en .php que se ejecuta por consola ...
  #1 (permalink)  
Antiguo 30/09/2011, 10:06
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
proceso PHP.EXE consume casi el 100% de CPU

Hola a todos, mi problema es el siguiente, espero que alguien me pueda ayudar.

tengo un programa hecho en .php que se ejecuta por consola de la siguiente manera:

php -f "C:\programa\SQLSERVER\php\borrado.php"

este comando se ejecuta cada 5 segundos a traves de una tarea programada desde windows.

el problema es que cada que se ejecuta la tarea el php.exe consume el 100% de la cpu.

imaginense tener la CPU al 100% cada 5 segundos....

esto me preocupa, ¿ que puedo hacer para que al ejecutarse el comando php.exe este no use el 100% de la CPU ?


gracias por su valiosa ayuda.

cordial saludo

oscartga
  #2 (permalink)  
Antiguo 30/09/2011, 12:25
Avatar de Chico3001  
Fecha de Ingreso: septiembre-2011
Ubicación: Mexico, DF
Mensajes: 112
Antigüedad: 12 años, 6 meses
Puntos: 12
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

posiblemente el script entra en un loop infinito, haciendo que el consumo de la CPU se eleve tanto...
  #3 (permalink)  
Antiguo 30/09/2011, 12:34
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

hola,

cuando el php.exe se dispara la CPU se sube al 100% pero inmediatamente vuelve y cae a un porcentaje razonable.

si que el uso de la CPU esta oscilando constantemente....

existira alguna forma en que pueda configurar el uso del PHP de tal forma que solo utilice un porcentaje de CPU que yo asigne, o que corra el PHP.EXE en segundo plano???

gracias
  #4 (permalink)  
Antiguo 30/09/2011, 13:06
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

En lugar de estar culpando al proceso en sí, ¿por qué no nos muestras tu código?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 30/09/2011, 13:12
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Cita:
Iniciado por Sourcegeek Ver Mensaje
En lugar de estar culpando al proceso en sí, ¿por qué no nos muestras tu código?
+1000
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #6 (permalink)  
Antiguo 30/09/2011, 13:35
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

estoy seguro que el codigo no es, lo se porque el log no muestra errores, ademas el programa realiza las acciones para lo cual fue diseñado (actualizar una tabla de la base de datos).

en conclusion la salida del programa esta bien, como ya les comente el programa se ejecuta, llega al 100% la CPU pero inmediatamente cae al 20%. Si fuera un error en el codigo el 100% se mantendria ¿ o no?

gracias
  #7 (permalink)  
Antiguo 30/09/2011, 13:37
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

existen diferentes clases de errores, y entre ellos los criticos son los que interrumpen los scripts, además el hecho de un error no implica que el código consuma más o menos recursos, lo que te quieren decir es que una mala implementación del código puede generar exceso en el consumo de recursos, incluso una operación en base de datos en cascada, recursión, no liberar memoria, etc.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 30/09/2011, 13:53
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

ok, gracias por tu respuesta, pero me genera una duda tu respuesta, al lanzarse el proceso este demora menos de un segundo ejecutandose y la respuesta en la bd es inmediata; si existiera una mala implementacion en el codigo como insinuas el tiempo de ejecucion seria mayor ¿no?

gracias
  #9 (permalink)  
Antiguo 30/09/2011, 14:11
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Te respondo eso con otra pregunta...

¿No crees que sería demasiada casualidad que el código se ejecute cada 5 segundos y el proceso se eleve cada 5 segundos también? Si necesitas ayuda realmente, deja de dar vueltas y pon el código
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #10 (permalink)  
Antiguo 30/09/2011, 14:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Aparte sí dices que la respuesta es inmediata en menos de 1 segundo, que tiene que ocupe todo el procesador, eso es lo que hace rápido, si quieres que no ejecute usando todo el procesador. Recuerda que los procesadores estan diseñados para ejecutar múltiples tareas, por lo que el proceso de PHP tome 100% es porque el sistema no tiene otra cosa en la cual invertir.

Si realmente quieres que sea mas lento puedes usar un batch script para lanzar tu script usando el comando START:
Código:
START /LOW php.exe C:/archivos/script.php
Aunque eso solo hará que tarde más en procesar, el uso del CPU va a ser el mismo ya que Windows por defecto va a asignarlo a como las tareas se ejecuten.

Lee lo siguiente: http://technet.microsoft.com/en-us/l.../cc732553.aspx

Saludos.
  #11 (permalink)  
Antiguo 30/09/2011, 14:33
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

ok, mira el codigo:

<?php

////capturo un estado en un archivo plano

$archivo ='C:\programa\SQLSERVER\php\notificaciones\estado. txt';
$id_mail = fopen($archivo, 'a+');
$dato_archivo=fgets($id_mail);
fclose($id_mail);
$estado_archivo=trim($dato_archivo);

/////valido el parametro del archivo
if($estado_archivo=='pendiente_proceso')
{
///hace algo
}
exit();
?>

yo leo un parametro que me ponen en un archivo, si este parametro es igual a pendiente_proceso, se inicia una tarea, PERO LA GRAN MAYORIA DE LA VECES esta condicion no se cumple y el proceso salta el IF y finaliza.

como ves lo unico que hago es abrir un archivo, hacer la condicional(que se cumple pocas veces) y salgo, si la subida de la CPU ocurriera solo cuando entro al if que es donde esta casi todo el codigo tu teoria seria valida, pero ocurre siempre...

lo unico que me haria dudar seria el fopen que uso...

Gracias
  #12 (permalink)  
Antiguo 30/09/2011, 14:48
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

ok, voy a probar este dato que me diste y te cuento

Gracias
  #13 (permalink)  
Antiguo 30/09/2011, 15:01
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Después de revisar lo que te recomendó GatorV, me pregunto.. ¿Cuánto pesa ese archivo?

Saludos
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #14 (permalink)  
Antiguo 30/09/2011, 15:56
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

hola, pesa como 18 kb
  #15 (permalink)  
Antiguo 30/09/2011, 16:10
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 10 meses
Puntos: 322
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Bueno, entonces no es el proceso de abrir el archivo. ¿Qué tarea es la que se ejecuta dentro del if?
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #16 (permalink)  
Antiguo 30/09/2011, 16:40
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

mira la prueba que hice cambie mi script por este codigo simple:

<?php

if(3>10)
{
///algo
}

exit();
?>


aun asi la CPU se dispara al 100%, aprecio mucho la ayuda que me brindas pero no creo que sea el codigo supon que el codigo esta perfecto que otra cosa puede motivar a que esto pase???

pienso que la solucion va mas a lo que dice gatorV, si de alguna forma pudiese hacer el llamado del php pero que no me consumiera todo el disponible de la CPU sino solo un porcentaje determinado...

gracias nuevamente por tu colaboracion y espero tus comentarios
  #17 (permalink)  
Antiguo 30/09/2011, 16:58
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Hola,

¿Que servidor usas? ¿IIS? ¿Apache?
¿Haz tratado de reinstalar PHP?
  #18 (permalink)  
Antiguo 30/09/2011, 18:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Como te digo no vas a poder controlar el uso de CPU, eso lo maneja el Sistema Operativo, lo que puedes controlar es la prioridad del proceso, para que así el CPU en su cola de procesos sepa si tiene prioridad alta, media, real, o baja.

El que use al 100% el CPU no lo veo malo, al contrario, significa que tu CPU esta trabajando, si quieres que no pase eso, no corras el script.
  #19 (permalink)  
Antiguo 30/09/2011, 19:45
 
Fecha de Ingreso: abril-2007
Mensajes: 19
Antigüedad: 16 años, 10 meses
Puntos: 0
hola, utilizo un IIS 7, en un server 2008.

hola, utilizo un IIS 7 en un server 2008, gracias por tu consejo

gracias por tu opinion, pero la verdad no estoy seguro que no sea malo que el proceso se tome el 100%... si todos los programadores pensaran como tu el consumo de CPU siempre estaria al maximo.

oye yo solo estoy buscando una solucion a mi problema eso de "entonces no corras el script" me parece una respuesta tonta y sin sentido

asi no se resuelven los problemas

Última edición por GatorV; 02/10/2011 a las 17:45
  #20 (permalink)  
Antiguo 30/09/2011, 20:43
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 222
Antigüedad: 13 años, 4 meses
Puntos: 32
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Chequeaste si tu PC es un 486???? Además llegas acá pidiendo ayuda y eres un petulante de 4ta.... que desagrado.
__________________
La ciencia al poder. Pazciencia ya viene

Última edición por ricardo_tu; 30/09/2011 a las 21:03
  #21 (permalink)  
Antiguo 30/09/2011, 21:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: proceso PHP.EXE consume casi el 100% de CPU

Cita:
Iniciado por oscartga Ver Mensaje
gracias por tu opinion, pero la verdad no estoy seguro que no sea malo que el proceso se tome el 100%... si todos los programadores pensaran como tu el consumo de CPU siempre estaria al maximo.

oye yo solo estoy buscando una solucion a mi problema eso de "entonces no corras el script" me parece una respuesta tonta y sin sentido

asi no se resuelven los problemas
Si supieras que yo recientemente cree un aplicativo en Java que al correrlo durante la mayor parte del proceso tomaba alrededor del 50% del CPU (muchos procesos ya que era para hacer un backup).
El punto es que tuve la duda de si se podía optimizar y entre las respuestas me recomendaron dejarlo así, que no era ningún problema que tomará tanto CPU, que eso significaba que el proceso terminaría mas rápido (que es bueno).
No lo considero una solución "tonta", tiene mucho sentido.

Como veo que no aprecias la opinión de los demás, no voy a seguir comentando va y luego dices que te di una solución tonta.

Cuídate y que te vaya bien con tu problema.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:31.