Нагрузка на сервер.

Правила форума
При возникновении вопросов, связанных с работой движка вы должны предоставить ссылку на свой сайт с установленным движком (или вписать адрес трекера в свой профиль), в случае, если на вашем сайте не будет копирайтов (внизу каждой страницы), то в помощи вам будет отказано, а ваш аккаунт будет отключен.
Все сообщения должны быть написаны на русском языке. Язык "падонкаф" русским языком не считается.
Все сообщения, написанные не на русском языке будут удаляться, а их автор будет получать предупреждения.

Нагрузка на сервер.

Сообщение ccenzz » 14 май 2010, 16:53

index.php
Код: Выделить всё
$percent = min(100, round(exec('ps ax | grep -c apache') / 256 * 100));
if ( $percent <= 70 ) $pic = "loadbargreen.gif";
elseif ($percent <= 90) $pic = "loadbaryellow.gif";
else $pic = "loadbarred.gif";
$width = $percent * 4;

$template->assign_vars(array(
'PERCENT' => $percent,
'WIDTH' => $width,
'PIC' => $pic)
);


index_body.html

Код: Выделить всё
<table width=750 class=detail2 border=1 cellspacing=0 cellpadding=20>

<caption>{L_SERVER_LOAD} {PERCENT}%</caption>

<tr>

<td align=center>

<table class=detail2 border=1 cellspacing=0 cellpadding=5><tr><td align=center>
<table class=main border='0' width=402><tr><td style='padding: 0px; background-image: url("pic/loadbarbg.gif"); background-repeat: repeat-x'>
<img height='15' width={WIDTH} src="pic/{PIC}" alt='{PERCENT}%'>
</td></tr></table>


pic/
Архив.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось ccenzz 14 май 2010, 16:54, всего редактировалось 1 раз.
ccenzz
 
Сообщения: 18
Зарегистрирован: 16 ноя 2009, 17:02

Re: Нагрузка на сервер.

Сообщение Boec » 14 май 2010, 16:54

а скрин можно?
Впринципе я работу понел, но все же
Boec
 
Сообщения: 77
Зарегистрирован: 29 янв 2008, 23:30

Re: Нагрузка на сервер.

Сообщение ccenzz » 14 май 2010, 16:55

Изображение
ccenzz
 
Сообщения: 18
Зарегистрирован: 16 ноя 2009, 17:02

Re: Нагрузка на сервер.

Сообщение Nafania » 14 май 2010, 17:17

У всех нормальных людей работать не будет, ибо exec
Аватара пользователя
Nafania
Администратор
 
Сообщения: 1207
Зарегистрирован: 30 июн 2007, 16:10

Re: Нагрузка на сервер.

Сообщение ccenzz » 14 май 2010, 17:22

Nafania писал(а):У всех нормальных людей работать не будет, ибо exec


Что подразумевается под словом нормальных? Сервер на debian это не нормально?
ccenzz
 
Сообщения: 18
Зарегистрирован: 16 ноя 2009, 17:02

Re: Нагрузка на сервер.

Сообщение ccenzz » 14 май 2010, 17:24

Версия для серверов на Win.
Index.php
Код: Выделить всё
$perc = get_server_load();
$percent = min(100, $perc);
if ( $percent <= 70 ) $pic = "loadbargreen.gif";
elseif ($percent <= 90) $pic = "loadbaryellow.gif";
else $pic = "loadbarred.gif";
$width = $percent * 4;

$template->assign_vars(array(
'PERCENT' => $percent,
'WIDTH' => $width,
'PIC' => $pic)
);


index_body.html
Код: Выделить всё
    <table width=750 class=detail2 border=1 cellspacing=0 cellpadding=20>

    <caption>{L_SERVER_LOAD} {PERCENT}%</caption>

    <tr>

    <td align=center>

    <table class=detail2 border=1 cellspacing=0 cellpadding=5><tr><td align=center>
    <table class=main border='0' width=402><tr><td style='padding: 0px; background-image: url("pic/loadbarbg.gif"); background-repeat: repeat-x'>
    <img height='15' width={WIDTH} src="pic/{PIC}" alt='{PERCENT}%'>
    </td></tr></table>


include\functions.php
Код: Выделить всё
function get_server_load($windows = 0) {
if(class_exists("COM")) {
  $wmi = new COM("WinMgmts:\\\\.");
  $cpus = $wmi->InstancesOf("Win32_Processor");
  $i = 1;
     // Use the while loop on PHP 4 and foreach on PHP 5
    //while ($cpu = $cpus->Next()) {
   foreach($cpus as $cpu) {
   $cpu_stats += $cpu->LoadPercentage;
   $i++;
   }
  return round($cpu_stats/2); // remove /2 for single processor systems
 }
}
ccenzz
 
Сообщения: 18
Зарегистрирован: 16 ноя 2009, 17:02

Re: Нагрузка на сервер.

Сообщение Nafania » 14 май 2010, 17:29

ccenzz писал(а):
Nafania писал(а):У всех нормальных людей работать не будет, ибо exec


Что подразумевается под словом нормальных? Сервер на debian это не нормально?

Под словом нормальный подразумеваются те, у которых закрыты такие "дырки".
Функции exec, system и иже с ними закрываются везде и всегда.
Даже если сервер личный, то все равно закрываются и открываются только для определенных проектов по крайней нужде.
Аватара пользователя
Nafania
Администратор
 
Сообщения: 1207
Зарегистрирован: 30 июн 2007, 16:10

Re: Нагрузка на сервер.

Сообщение ccenzz » 14 май 2010, 17:31

А можно-ли заменить exec на что-то аналогичное и более безопасное?
ccenzz
 
Сообщения: 18
Зарегистрирован: 16 ноя 2009, 17:02

Re: Нагрузка на сервер.

Сообщение Nafania » 14 май 2010, 17:39

ccenzz писал(а):А можно-ли заменить exec на что-то аналогичное и более безопасное?

Нет, замен нет.
Кстати, мод-то не ваш явно.

Код: Выделить всё
exec('ps ax | grep -c apache') / 256 * 100

Вот эта строка, считает вообще непонятно что.
Она считает количество запущенных форков апача и делит на 256.
Каким образом по количеству запущенных процессов, да еще и деленных на взятое с потолка число, можно мерять нагрузку?
А я вот лично апач не использую. У меня тогда нагрузка всегда 0 будет :)

Уже ведь есть готовый пример, встроенный в движок, который по-приличнее показывает нагрузку
Код: Выделить всё
   $os = strtolower(PHP_OS);
   $cur_load = 0;
   if(strpos($os, 'win') === false) {
      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];
           }
   }


Коль вам нужен красивый прогресс-бар, то используйте этот пример. В нем хотя бы дергается /proc/loadavg
Аватара пользователя
Nafania
Администратор
 
Сообщения: 1207
Зарегистрирован: 30 июн 2007, 16:10

Re: Нагрузка на сервер.

Сообщение ccenzz » 14 май 2010, 17:42

Nafania писал(а):Нет, замен нет.
Кстати, мод-то не ваш явно.


А я и не писал что мой :) Ставил на TBDev 09 когда-то. Вместе с базой перетащил и его.

Кстати, что думаете о создании xhtml версии движка?
ccenzz
 
Сообщения: 18
Зарегистрирован: 16 ноя 2009, 17:02


Вернуться в Готовые модификации

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron