Как найти из Apache, какие страницы вызывают долго загружающиеся времена?

Как я могу узнать то, что Сценарии PHP берут самый длинный для загрузки в Apache?

6
задан 26.02.2011, 01:20

5 ответов

Выполните их с Apache JMeter.

Apache JMeter может привыкнуть к проведению испытаний и на статических и динамических ресурсах (файлы, Сервлеты, сценарии Perl, Объекты Java, Базы данных и Запросы, FTP-серверы и больше). Это может использоваться, чтобы моделировать большую нагрузку на сервере, сети или возразить, чтобы протестировать ее силу или проанализировать общую производительность под различными типами загрузки. Можно использовать его, чтобы сделать графический анализ из производительности или протестировать сервер/сценарий/поведение объекта при тяжелой параллельной загрузке.

0
ответ дан 07.12.2019, 16:05

Выполните свои журналы сервера через инструмент отчета. Достойный должен смочь сказать Вам, сколько времени средний пользователь берет для загрузки каждой страницы. Это должно также показать Вам минуту и макс. загрузить время для каждой страницы и большого количества других статистических данных.

0
ответ дан 07.12.2019, 16:05

Y Медленный один способ узнать производительность скорости под нагрузкой страницы.

0
ответ дан 07.12.2019, 16:05

В зависимости от Вашего документа (документов) на получение можно использовать функцию микровремени:

$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;

Помещенный столько повреждается, сколько необходимо найти дефектную часть кода.
(Но возможно это должно было быть ТАК ответ...),

0
ответ дан 07.12.2019, 16:05

Существует несколько способов сделать это.

1: Включите mod_status на своем веб-сервере. Это позволяет Вам получать обзор того, как апачский сервер ведет себя в целом путем просмотра к/server-status/. Не забудьте ограничивать доступ к этому местоположению:

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: Измените свою директиву LogFormat для добавления времени обработки. Можно затем связать URIs со временем отклика:

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

Это отобразит удаленный IP, дату и время запроса, запрос, отправленные байты, секунды и микросекунды.

3: Для емкости памяти сценария и процента совпадений сценария, административная консоль, которая идет с Xcache, очень хороша. Сценарии с большими иерархиями класса могут расшириться до многих megs в памяти.

4: Профилирование Ваших сценариев PHP могло бы помочь. Если Вы захотите сфокусироваться на профилировании единственного сценария, то Xdebug, конечно, поможет. Пользователь Damien предлагает путь. Я предложил бы регистрировать Ваше использование памяти и также использовать микровремя, но поместить порог для входа onit, как так:

$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 " );

Корректировка порога сохраняет Ваши журналы намного более чистыми.

7
ответ дан 07.12.2019, 16:05

Теги

Похожие вопросы