Страница 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 минут подождать, чтобы проверить) :lol:

Добавлено: 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 могли такое сотворить? :shock:

SpeAker О каких тормозах речь? Время генерации страницы и
загрузка сервера дают представление о тормозах, да. :)

Добавлено: 30.01.2007 23:28
Siava
Coagulant
Вряд ли могли.. повторюсь, что до этого мода у меня был модернизированный мною мод от Smartor'а, с ним проблем не было вовсе. Тут взялся потестить и... :lol:

Кстати говоря, сейчас совсем без статистик всяких и.. форум меньше грузит сервер, уменьшилось L.A. раза в 1.5 по сравнению с тем, что было раньше! Получается, что даже такая статистика потребляет ресурсы.. может тот самый вызов /proc/uptime и прочего.. не ясно пока, но вот уже дней 5 без статистики и хорошо :)
Попробую на выходных потестить сей мод, но без аддонов.

Добавлено: 30.01.2007 23:56
Coagulant
Siava
Ну ресурсы может потреблять тока регулярный вызов uptime и loadavg.
Надо сделать кэш для этих целей, чтобы напрасно не тревожить утилиту. Поглядим, что это даст, думаю, результат должен быть.