Страница 1 из 4
Advanced Page Generation Time
Добавлено: 23.01.2007 18:29
Менеджер сайта
Название мода: Advanced Page Generation Time
Автор: Coagulant
Описание мода: Мод показывает расширенную статистику внизу каждой страницы: время генерации, кол-во SQL-запросов, процент gzip-сжатия.
Версия мода: 1.0.3
Совместимая версия phpBB: 2.0.x
Cложность установки: Легко
Время, необходимое для установки: 10 минут
Скачать: apgt_1_0_3.zip
Размер файла: 23 kb
Drupal refresh
Добавлено: 26.01.2007 0:31
Siava
Код: Выделить всё
if (@file_exists('/proc/loadavg'))
{
if ($load = @file('/proc/loadavg'))
{
list($cur_load) = explode(' ', $load[0]);
}
}
elseif ( $uptime = @exec("uptime") )
{
preg_match( "/\: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/", $uptime, $load );
$cur_load = $load[1];
}
1. А если я хочу, чтобы в параметре "загрузка" было второе значение load average, а не первое?
2. И ещё один странный вопрос
как вы думаете, насколько возрастает нагрузка при использовании всех аддонов?
Добавлено спустя 16 минут:
3. А ещё забавный глюк (см. скрин)
он продолжается вплоть до 10-й минуты 004, 005, 006.... 009, а с 10-й всё нормально.
Добавлено: 26.01.2007 2:33
Coagulant
1) Я, помнится,
уже отвечал на это вопрос.
2) Даже не знаю как это измерить
При установке всех аддонов добаляется вызpов uptime или loadavg...
3) Выходит строчка
Код: Выделить всё
if ($cur_uptime[3] < 10) $cur_uptime[3] = '0'.$cur_uptime[3];
лишняя, надо её убрать.
Добавлено: 26.01.2007 8:30
Siava
Coagulant
1. Вот и я помню, что вроде спрашивал такой вопрос
спасибо.
3. Вроде бы решилось, но другой строчкой:
Код: Выделить всё
// if ($cur_uptime[2] < 10) $cur_uptime[2] = '0'.$cur_uptime[2];
(надо 10 минут подождать, чтобы проверить)
Добавлено: 26.01.2007 8:33
Mr. Anderson
Coagulant
По поводу 3-го пункта я тебе уже жаловался
Добавлено: 26.01.2007 19:14
Siava
Вы как хотите, но с аптаймом порнография какая-то выходит. Решил перезагрузить сервер, после загрузки одни нули в часах, в днях пусто, в минутах пусто. Вернул к первоначальному коду - везде нули по одному или по два, но ничего не изменяется. Пришлось наколбасить свой код, которым пользовался раньше. Пользуйтесь
старый блок аптайма заменить на этот:
Код: Выделить всё
if (@file_exists('/proc/uptime'))
{
if($uptime_array = explode(" ", exec("cat /proc/uptime")))
{
$up_sec = round($uptime_array[0], 0);
$up_min = $up_sec / 60;
$up_hour = $up_min / 60;
$up_day = floor($up_hour / 24);
$up_hour = floor($up_hour - ($up_day * 24));
$up_min = floor($up_min - ($up_day * 24 * 60) - ($up_hour * 60));
$up_sec = floor($up_sec - ($up_day * 24 * 60 * 60) - ($up_hour * 60 * 60) - ($up_min * 60));
}
}
Тут в принципе половину можно выкинуть.. оставил как у меня было.
старый блок в $template->assign_vars(array( заменить на этот:
Код: Выделить всё
'CUR_UPTIME' => ( isset($uptime_array) ) ? $up_day.$lang['d'].':'.
$up_hour.$lang['h'].':'.$up_min.$lang['m'] : $lang['NA'],
Добавлено: 26.01.2007 23:42
Coagulant
Siava
У меня есть мнение что для разных версий uptime результаты вывода разные
И для времени до суток и после.
Если кто-то напишет как выглядят различные результаты работы uptime я с удовольствием поправлю регэксп
Добавлено: 26.01.2007 23:43
Siava
Coagulant
Вот мой. Система Slackware Linux
Код: Выделить всё
# uptime
23:51:49 up 56 min, 2 users, load average: 1.87, 3.46, 3.46
Вот так на Ubuntu:
Код: Выделить всё
$ uptime
23:50:55 up 10 days, 14:01, 4 users, load average: 0.36, 0.45, 0.45
Добавлено: 27.01.2007 14:54
Siava
А ещё у меня есть подозрение, что данный мод вызывает нехилую утечку памяти на активных форумах, вследствии чего наступает переполнение файла подкачки сервера и крах системы.
Откуда такие предположения? Да вот с моим так и случилось.. начал откатывать все последние изменения и только после удаления мода вроде бы всё нормализовалось.
Но это всего лишь подозрения, пока нет доказательств.
Добавлено: 27.01.2007 15:19
Mr. Anderson
Siava
Хм... С чего бы ему memory leak'и устраивать?
Добавлено: 27.01.2007 23:00
Siava
Mr. Anderson
Вот сам не знаю, тут надо время чтобы быть уверенным. Вечером отпишусь.
Добавлено спустя 7 часов 27 минут 8 секунд:
Прошло почти 10 часов стабильной работы. Очень странно почему именно из-за мода такое начало происходить.. не улавливаю зависимости. Но суть такова.. на сервере 3Гб оперативки, процессор Athlon64 X2 4800+, Apache 2.0.59, PHP 4.4.4 и MySQL 5.0.33. До установки мода всё работало стабильно и аптайм был дней 20. Примерно через час-полтора работы при нагрузке 60-100 пользователей онлайн обнаружилось, что каким-то процессом (не засёк каким, но наверно Apache) съёдается вся оперативная память, затем начинает поглощаться swap, возрастает Load Average и когда swap забивается весь, то система падает.
Добавлено: 30.01.2007 20:42
SpeAker
а учитывает ли этот мод тормоза сервера?
Добавлено: 30.01.2007 22:09
Coagulant
Siava. Постоянные вызовы uptime могли такое сотворить?
SpeAker О каких тормозах речь? Время генерации страницы и
загрузка сервера дают представление о тормозах, да.
Добавлено: 30.01.2007 23:28
Siava
Coagulant
Вряд ли могли.. повторюсь, что до этого мода у меня был модернизированный мною мод от Smartor'а, с ним проблем не было вовсе. Тут взялся потестить и...
Кстати говоря, сейчас совсем без статистик всяких и.. форум меньше грузит сервер, уменьшилось L.A. раза в 1.5 по сравнению с тем, что было раньше! Получается, что даже такая статистика потребляет ресурсы.. может тот самый вызов /proc/uptime и прочего.. не ясно пока, но вот уже дней 5 без статистики и хорошо
Попробую на выходных потестить сей мод, но без аддонов.
Добавлено: 30.01.2007 23:56
Coagulant
Siava
Ну ресурсы может потреблять тока регулярный вызов uptime и loadavg.
Надо сделать кэш для этих целей, чтобы напрасно не тревожить утилиту. Поглядим, что это даст, думаю, результат должен быть.