Como descobrir do Apache quais páginas causam longos tempos de carregamento?

6

Como posso descobrir quais scripts PHP levam mais tempo para carregar no Apache?

    
por Tom Wijsman 02.11.2009 / 06:20

6 respostas

7

Existem algumas maneiras de fazer isso.

1: ative o mod_status no seu servidor. Isso permite que você obtenha uma visão geral de como o servidor apache está se comportando em geral navegando para / server-status /. Lembre-se de limitar o acesso a este local:

ExtendedStatus on
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.0.0/24
</Location>

2: Modifique sua diretiva LogFormat para adicionar tempo de processamento. Você pode associar URIs a tempos de resposta:

LogFormat "%h %t \"%r\" %b sec:%T usec:%D"      

Isso exibirá o ip remoto, a solicitação de data e hora, a solicitação, os bytes enviados, os segundos e os microssegundos.

3: para o tamanho da memória do script e a taxa de acertos do script, o console administrativo que vem com o Xcache é muito bom. Scripts com grandes hierarquias de classe podem se expandir para muitos megas na memória.

4: A criação de perfil dos seus scripts php pode ajudar. Se você quer se concentrar em criar um único script, o Xdebug certamente ajudará. O usuário Damien sugere um caminho. Eu sugeriria registrar seu uso de memória e também usar o microtime, mas colocar um limite para log onit, assim:

$THRESH = 2;

$profile = array();
$profile['start'] = microtime( true );
// stuff
$profile['end'] = microtime( true );
$profile['delta'] = $profile['end'] - $profile['start'];

if( $profile['delta'] >= $THRESH ) 
    error_log( __FILE__.": ".$profile['delta']." seconds " );

Ajustar o limite mantém seus logs muito mais limpos.

    
por 30.01.2010 / 06:39
0

Execute-os com o Apache JMeter .

Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.

    
por 02.11.2009 / 06:24
0

Execute os logs do seu servidor por meio de uma ferramenta de relatório. Um decente deve ser capaz de dizer quanto tempo o usuário médio leva para baixar cada página. Ele também deve mostrar o tempo mínimo e máximo de download de cada página e muitas outras estatísticas.

    
por 02.11.2009 / 07:14
0

Y Slow é uma maneira de descobrir o desempenho da velocidade de carregamento da página.

    
por 18.11.2009 / 08:48
0

Dependendo do (s) seu (s) script (s) você pode usar a função microtime:

$stime = microtime();  
$stime = explode(" ",$stime);  
$stime = $stime[1] + $stime[0];  

//Some Code...

$mtime = microtime();  
$mtime = explode(" ",$mtime);  
$mtime = $mtime[1] + $mtime[0]; 

$totaltime = ($mtime - $stime);
echo $totaltime;

Coloque o máximo de que precisar para localizar a parte defeituosa do código.
(Mas talvez isso deveria ter sido uma resposta assim ...)

    
por 18.12.2009 / 11:14
0

Estou usando este comando para identificar o que está demorando para responder:

$ w3m http://localhost/server-status | tee | grep "GET\|HEAD\|POST" | awk '{if ($6>15) print}'
    
por 11.07.2017 / 02:40