Autor Zpráva
Tori
Profil
Dobrý večer všem.
Strašně dlouho (10-15s) se mi načítá stránka na localhostu, přitom samotný PHP skript se provede za <0.002s. Ze serveru se přenáší pár bytů, error_log nic, rewrite log nehlásí zacyklení. Mohl by mne, prosím, někdo nakopnout, kde mám hledat příčinu?

Access log:
127.0.1.5 - - [11/Jun/2011:23:15:40 +0200] "GET /web.wedos.tmp/app/kraviny/0123456789 HTTP/1.1" 200 47 15.15017020

/home/Tori/weby/web.wedos.tmp/app/.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ main.php?route=/$1 [L,QSA]

<VirtualHost 127.0.1.5:80>
    ServerName localhost
    DocumentRoot /home/Tori/weby
#    HostnameLookups Off
#    UseCanonicalName On
    ServerSignature On
    Include /etc/apache2/conf.d/*.conf
    
    <Directory "/home/Tori/weby">
    	Options Indexes FollowSymLinks
    	AllowOverride All
    	Order deny,allow
    	Allow from localhost
    </Directory>
    
  LogLevel info
  CustomLog /home/Tori/log/apache2/workspace/access_log "%h %l %u %t \"%r\" %>s %b %T.%D"
  ErrorLog /home/Tori/log/apache2/workspace/error_log 
  RewriteLogLevel 1
  RewriteLog /home/Tori/log/apache2/workspace/rewrite_log
</VirtualHost>
janbarasek
Profil
Je možný, že to máš buď někde zacyklený a nebo máš vytíženej procesor.

Pokud máš windows, zmáčkni kombinaci kláves: <ctrl> + <alt> + <delete>, a zkontroluj, jestli ti něco nebrzdí procesor.

Pokud budou stavy dobrý, tak se koukni, jestli třeba nemáš pro server vyhrazenou jenom malou paměť. Obvykle se to nenastavuje, ale i to se dá.
Pokud se ti to nepomůže, napíšu další kroky.
Tori
Profil
janbarasek:
Nemám zapnutý žádný program, který bych jindy neměla, ostatní weby z localhostu fungují rychle jako obvykle, pouze tento zlobí. Většina jich přitom běží na stejné IP, liší se jen podadresáře v DocumentRoot. To je mi právě divné - nenapadá mě nic, čím by se tak zásadně mohl tenhle web lišit. Těch 10-15s čekání se týká jak skriptů, tak grafiky, stylopisů apod.
Mám SUSE Linux - jak zjistím spotřebu paměti jednotlivými procesy? (V shellu se orientuji jen trochu)
Tomáš K.
Profil *
Tori:
Zkusil bych Zkusil bych zadat přímo IP adresu http://127.0.1.5, jestli to nečeká někde na překlad. Pak bych zkusil vypnout mod_rewrite a načíst stránku přímo. Nakonec bych zvýšil úroveň logování apache a kouknul se do logů, co se děje.

Spotřebu paměti jde v konzoli zjistit pomocí top, případně ps aux.
YoSarin
Profil
Tori:
Na základě apache dokumentace pro VirtualHost a vysvětlení co znamená "context: server config" bych řekl, že celá sekce <VirtualHost> nemá v .htaccessu co dělat (a divím se, že nedostáváš 500ku). Pokud to teda správně chápu...
Tori
Profil
YoSarin:
Zapomněla jsem napsat, z jakého je to souboru. <VirtualHost> je samozřejmě v /etc/apache2/vhosts.d/weby.conf, konfigurák se includuje v pořádku.

Tomáš K.:
Díky, top -u wwwrun vypadá zajímavě, zkusím si s tím trochu pohrát, povypínat části skriptu apod.
Tori
Profil
Situace se změnila - teď se stránka načítá buď za <0.3s, nebo za 10.1s, poměrně náhodně (vizte accessLog, refresh téže stránky). Napadlo mne, jestli by mohl server cosi cachovat (= pokud je interval mezi požadavky kratší než řekněme 30s, pošle se stránka okamžitě; pokud delší, tak server 10s něco kutí a pak ji teprv pošle), ale nevím, jestli to je možné.

Výsledky z top. Použití CPU/paměti je uvedeno běžné / při načítání stránky; jedna hodnota = nemění se.
proces         | %CPU      | %MEM | pozn.
----------------------------------
httpd2-prefork | 0 / 1%      | 0.2% |  = vlákno, které obsluhuje tento požadavek. Ostatní zůstávají na <1% CPU.
chrome         | 0-2 / <= 8% | 1.7 - 2% |
Podle %CPU jsou nejvýš X a chrome, celková volná paměť okolo 60%. Upgradovala jsem Chrome z 8.cosi na 12.0.742, výsledky stejné. Ve Firefoxu jsou časy načítání stránky obdobné, jen prohlížeč spotřebuje víc výkonu procesoru + paměti.

Napadne vás k tomu nějaký tip, kde se mám ještě podívat? Funkčně mi to až tak nevadí, spíš mne ze zvědavosti zajímá příčina toho, že se stejná věc chová různě (jestli to teda nespadá do kategorie "nevysvětlitelné chování strojů").
Davex
Profil
Zkus zapnout podrobnější error_log pomocí LogLevel debug. Mělo by z něj být zřejmé, na co se čeká.
YoSarin
Profil
Tori:
případně, pokud ani rozšířené logování nepomůže, nainstaluj xdebug a zkust tu stránku profilovat ( http://devzone.zend.com/article/2899 )
Tori
Profil
YoSarin:
Myslím, že skripty to nezpůsobují. Jednak mám microtime(1) na začátku i konci hlavního skriptu a rozdíl je okolo 0.3s, druhak jsem to teď zkusila zkopírovat na hosting a tam to běží normální rychlostí (max. 2s načtení stránky).

Davex:
V ErrorLogu jsou jen přehlédnuté chyby (E_NOTICE) PHP, jinak nic.

Napadla mne možnost, že si Eclipse nárokuje příliš mnoho paměti (což běžně dělá, po pár desítkách minut co je zapnuté IDE se mi začnou zpomalovat ostatní programy, přeskakuje muzika apod., i při 4G RAM), jenže u té stránky se to děje i když IDE je vypnuté.

Každopádně děkuji všem za rady - byť se tohle nevyřešilo, tak jsem se zas něco nového naučila.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0