1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

Páginas PHP son servidas con mucha lentitud

Tema en 'Asuntos Técnicos' iniciado por Samanta, 2 Jun 2013.

  1. Samanta

    Samanta Usuario activo

    Saludos a tod@s.

    Les pido ayuda en esta extraña situación.

    He buscado en internet y no encuentro nada pues al parecer es un error muy extraño...

    Cuando corro el comando

    /usr/bin/php /home/USER/public_html/archivo_vacio.php

    La carga es inmediata por que el archivo esta 100% vacío, no hay ni un bit en su interior.

    Pero ese mismo archivo abierto en

    h t t p :// WEB.com / archivo_vacio.php
    (el foro no me permite escribir URL)

    se demora varios segundos.
    y es un archivo VACIO !!

    Cuando el *.php sí tiene que procesar álgo, la tardanza es excesiva (vía http), pero perfectamente rápida por línea de comandos.

    Precisamente con
    /usr/bin/php /home/USER/public_html/cualesquier.php
    corre perfectamente bien.

    El error lo tengo solo vía http.

    Tengo un cpanel con centos 6.4 y procesador de 2GH con 4GB de RAM...
    No es un tema de CPU como podria imaginarse...

    También he detenido el cortafuegos y el comportamiento no cambia ni un ápice...

    Les gradezco mucho si me orientan.
     
  2.  
  3. Samanta

    Samanta Usuario activo

    Olvidé mencionarles que la lentitud es únicamente con archivos PHP.

    Los archivos html, JSP, CGI, las descargas y todo en general tiene la velocidad correcta.

    A alguien le ha sucedido ?
     
    Última edición: 2 Jun 2013
  4. Datacenter1

    Datacenter1 Usuario activo

    Cuando invocas a php desde la línea de comandos, Apache no interviene para nada, cuando lo haces por http, apache tiene que hacer varias llamadas y procesos para interpretar el código PHP, que es al menos 10 veces más lento que HTML, el problema no es en php sino en como apache está interpretando PHP, que método estás usando? DSO, CGI, Fast-cgi? por ahí es por donde debes buscar tu cuello de botella

    Nota: Menciono apache como simple referencia, el caso es el mismo con todos los servidores web
     
  5. Samanta

    Samanta Usuario activo

    Agradezco que me des la mano, nisiquiera el soporte cpanel me ha ayudado, solo dijeron "eso no es tema de cpanel, revise su servidor".

    Y solo me dieron ese comando de

    /usr/bin/php /home/USER/public_html/archivo_vacio.php

    Puedes brindarme una línea SHELL para saberlo?

    Creé una página con

    <?php
    phpinfo();
    ?>

    y me imprime esto:

    Server API CGI/FastCGI

    ... despues de muchos segundos
     
    Última edición: 2 Jun 2013
  6. Datacenter1

    Datacenter1 Usuario activo

    es un dedicado? o VPS?

    Si estás segura que el servidor tiene recursos libres (cpu/memoria) y no hay un fallo de hardware prueba recompilando apache/php desde WHM con easyapache

    Si no sabes hacerlo, lo mejor es que busques ayuda de tu proveedor o ayuda profesional
     
  7. Samanta

    Samanta Usuario activo

    Lo hice hace dos días y no cambió en nada.

    Aquí está el cómo lo híce, este es mi 03SINModSec.yaml:

     
  8. Datacenter1

    Datacenter1 Usuario activo

    humm...

    Puedes postear la salida de free -m y la de iostat
     
  9. Samanta

    Samanta Usuario activo

    Gracias por no abandonarme, de verdad que estoy desesperada...


    PHP:
    root@samanta [~]# free -m
                 
    total       used       free     shared    buffers     cached
    Mem
    :          2000        943       1056          0          0          0
    -/+ buffers/cache:        943       1056
    Swap
    :            0          0          0
    root
    @samanta [~]#
    PHP:
    root@samanta [~]# iostat
    Linux 2.6.18-274.el5.028stab093.2 (samanta.web.com)     06/02/2013      _i686_  (1 CPU)

    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               4.26    0.11    1.18   12.23    0.00   82.21

    Device
    :            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn

    root
    @samanta [~]#
    Me explicas este segundo por favor
     
  10. Datacenter1

    Datacenter1 Usuario activo

    Es un VPS ?

    Tienes un alto iowait (%iowait = 12.23%) , esto quiere decir que el CPU pasa una buena parte del tiempo esperando por datos del sub-sistema de discos, lo que genera una carga alta del cpu user (4.26) a pesar de que el CPU está libre %idle = 82.21

    Parece que tu servidor requiere más que una simple recompilación, es probable que ya te está quedando pequeño el servidor, que tenga algún problema de hardware o lógico en el sistema de archivos

    Por cierto solo muestra 2000 Mb de memoria y no 4 Gb como mencionas

    En este punto solo manos expertas y con acceso root pueden hacer algo por tu servidor
     
  11. Samanta

    Samanta Usuario activo

    Sí ¿Guillermo?, es un VPS lo que he contratado.
    Te refieres al contenedor del VPS (la empresa proveedora), o al VPS mismo ?

    Quiero comentarte que volví a correr el mismo comando y ahora sale:
    PHP:
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               4.39    0.11    1.21   11.83    0.00   82.47

    Device
    :            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
     
  12. Samanta

    Samanta Usuario activo

    Guillermo, releyendo tu ayuda, diculpa mi ignorancia:

    JSP que procesa "cosas"...
    CGI
    PERL (.PL)
    y las descargas

    corren perfectamente.

    Solo hay fallos en archivos .PHP

    Es coherente ?
     
  13. Datacenter1

    Datacenter1 Usuario activo

    No, no es coherente pero así son los servidores :eek:
    Eso es lo que hace este trabajo interesante

    Hay una sobrecarga, si eso es o no la causa del problema con PHP no lo se, pero un iowait como el que tienes generará problemas en casi cualquier servidor.

    Este es un VPS donde solo tu tienes acceso o es usado como servidor compartido por varios usuarios de hosting? pregunto porque es posible relajar la seguridad y aumentar rendimiento pero solo si no es un servidor de hosting compartido

    Por otro lado desde WHM »Service Configuration »Configure PHP and suEXEC

    Escoje diferentes métodos de correr php y prueba con tu archivo vacio


    Si lo deseas puedes usar el perfil que usamos por defecto en nuestros servidores administados

    CODE, HTML o PHP Insertado:
    wget -O /var/cpanel/easy/apache/profile/custom/datacenter1.yaml http://www.datacenter1.com/download/datacenter1.yaml
    /usr/local/cpanel/scripts/easyapache --profile=datacenter1 --build
    
    No ofrezco ningún tipo de garantías con este código e incluye mod_security
     
  14. Samanta

    Samanta Usuario activo

    Guillermo te cuento que todo el VPS corre de manera muy velóz.

    Solo tengo problemas con la entrega de los resultados PHP.

    Incluso PHP corre a la velocidad que debe ser.

    Siemplemente despues de 5 segundos de espera, la pagina carga y dice:

    "La carga de esta página ha tardado un segundo"

    hay algo entre el PHP y la ventana del cliente que retrasa todo...

    Las paginas JSP corren muy veloces al igual que PERL, python, las descargas, etc...
     
  15. guitobon

    guitobon Usuario activo

    Samanta, sin poner en duda la ayuda que te esta prestando Datacenter, no tambien investigaria el archivo de configuracion de php (el php.ini).
    Por defecto el .ini al ejecutar php desde linea de comandos no tiene proque coincideir con el .ini al ejecutar php desde un webserver.
    intenta cargar el .ini que coge el webserver para php, en liena de comando para ver si hay el mismo retraso.
    Para ello usa el parametro -c en la llamada a php desde shell y le indicas la ruta del .ini
    El problema te lo podria estar dando algun modulo de php que te carga.
     
  16. Samanta

    Samanta Usuario activo

    Te cuento que hice una prueba colocando un php.ini vacio en un DIR y no cambio en nada.

    No sabia que puede cargarse el php.ini desde consola.

    Siendo esta mi linea de comnado:

    /usr/bin/php /home/USER/public_html/archivo_vacio.

    Cómo quedaría para gregar el PHP.INI localizado en:

    /usr/local/lib/php.ini

    Yo he corrido esta linea y el resultado es PERFECTO:

    /usr/bin/php -c /usr/local/lib/php.ini /home/<USER>/public_html/page_empty.php el tiempo de respuesta es inmediato.

    Te agradezco mucho cualquier otra buena idea.

    He reinstalado desde Easy Apache todas las versiones de Apache combinadas con todas las de PHP

    y el problema no cambia para nada.
     
  17. guitobon

    guitobon Usuario activo

    La verdad es que sin acceso fisico a shell, es especular.
    Haz un script con phpinfo() y dinos el enlace. Asi podre ver mas cosas.
    Revisa tambien el error.log por si hay algo raro cuando se carga el interprete de php.
    Po ultimo, te sugiero que nos dejes ver el httpd.conf. para esto puedes hacer una copia como httpd.txt y dejarlo accesible via web. Indica el enlace de esto tambien.
     
  18. Samanta

    Samanta Usuario activo

    Gracias. no hay error en el LOG.

    Esa linea es la correcta?

    /usr/bin/php -c /usr/local/lib/php.ini /home/<USER>/public_html/page_empty.php
     
  19. guitobon

    guitobon Usuario activo

    En principio si es la correcta. No obstante, segun la distro de linux, el php.ini esta en un sitio diferente.
    Puedes asegurarte viendo que php.ini esta cargando el php en el webserver, haciendo lo del phpinfo. Esta info te la da esa funcion, entre muchas otras cosas.

    Sobre los logs de error. Mira si hay algun mensaje sospechoso una vez reiniciado el apache tambien.
     
  20. jreoyo

    jreoyo Usuario activo

    yo empezaria por utilizar strace al proceso de apache que ejecuta el fichero .php, ahi tienes que ver que esta haciendo y si en algun momento esta esperando algo.
     
  21. Samanta

    Samanta Usuario activo

    Gracias.

    Y podrias decirme cómo hacerlo? (dada la urgencia en la que me encuentro).

    Lo mas cercano que he encontrado es

    strace /usr/local/bin/cough <any required argument for cough here>

    Pero no se si colocar ahí PHP o Apache


    PHP:
    root@Samanta [~]# strace /usr/local/bin/cough date
    strace: /usr/local/bin/coughcommand not found
    root
    @Samanta [~]# strace /usr/local/bin/date
    strace: /usr/local/bin/datecommand not found
    root
    @Samanta [~]#
     
    Última edición: 4 Jun 2013


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·