synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяВеб Сервер + PHP / MySQL › вывод на сайте загрузку CPU, Mem и LAN

вывод на сайте загрузку CPU, Mem и LAN

Brigand · 23.09.2015

Как вывести на сайте текущую загрузку наса, можно среднею.

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

polanat · 23.09.2015
Что бы друзья перед скачиванием больших файлов оценили нагрузку и скачали позже, когда nas освободится.

А большие файлы - это что? Фильмы скачанные с торрентов???

Brigand · 24.09.2015
А большие файлы - это что? Фильмы скачанные с торрентов???

Фильмы друзья сами качают. :) Раздавал фото и видео со свадьбы 40 гигов, все бросились качать, особенно вечером как с работы пришли. На будущее буду в интернет выкладывать в архивах под паролем, что то же муторно. А так посмотрят на загрузку сервера и позже скачают.

polanat · 24.09.2015
Фильмы друзья сами качают. :) Раздавал фото и видео со свадьбы 40 гигов, все бросились качать, особенно вечером как с работы пришли. На будущее буду в интернет выкладывать в архивах под паролем, что то же муторно. А так посмотрят на загрузку сервера и позже скачают.

Если качающих много и качают одинаковое - то всё равно напрашивается BitTorrent Sync. Вам проще сделать безтрекерный (частный) торрент тем же мюТоррентом, а потом скормить его Вашему Трансмишену. Ну а скорость отдачи именно на него Вы уже сами регулируйте в самом Трансмишене ...

 

PS Вот здесь уже обсуждалось -> Как самому создать новый torrent (раздачу)?

Brigand · 24.09.2015
Если качающих много и качают одинаковое - то всё равно напрашивается BitTorrent Sync. Вам проще сделать безтрекерный (частный) торрент тем же мюТоррентом, а потом скормить его Вашему Трансмишену. Ну а скорость отдачи именно на него Вы уже сами регулируйте в самом Трансмишене ...

 

PS Вот здесь уже обсуждалось -> Как самому создать новый torrent (раздачу)?

 

Думал об этом, попробую.

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

polanat · 24.09.2015
Думал об этом, попробую.

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

Вам (или точнее друзьям) - "шашечки или ехать" ??? Никому не нужны Ваши графики (кроме Вас) - людям надо просто качнУть. К тому же через торрент качать они будут все у всех, а в Вашем первоначальном варианте - все только у Вас ;)

Brigand · 24.09.2015
Вам (или точнее друзьям) - "шашечки или ехать" ??? Никому не нужны Ваши графики (кроме Вас) - людям надо просто качнУть. К тому же через торрент качать они будут все у всех, а в Вашем первоначальном варианте - все только у Вас ;)

 

Все так!

Но все же как вывести на сайте загрузку процессора и сети? Можно без статистики, без подробностей.

alexejnic · 24.09.2015

polanat Человек задал конкретный вопрос, а вы ему жуете что то другое.

Brigand Вот вставляй в index.php сайта и пользуйся. Ненужное можешь убрать.

<?PHP
if (function_exists('sys_getloadavg') && is_array(sys_getloadavg()))
{
        $load_averages = sys_getloadavg();
        array_walk($load_averages, create_function('&$v', '$v = round($v, 3);'));

        $server_load_1 = $load_averages[0] * 100;
        $server_load_5 = $load_averages[1] * 100;
        $server_load_15 = $load_averages[2] * 100;
}
else if (@is_readable('/proc/loadavg'))
{
        
        $fh = @fopen('/proc/loadavg', 'r');
        $load_averages = @fread($fh, 64);
        @fclose($fh);

        $load_averages = empty($load_averages) ? array() : explode(' ', $load_averages);

             $server_load_1 = $load_averages[0] * 100;
        $server_load_5 = $load_averages[1] * 100;
        $server_load_15 = $load_averages[2] * 100;
}

else
        $server_load = $lang_admin_index['Not available'];

echo 'Средняя загрузка CPU сервера за последнюю минуту '.$server_load_1. " %";
echo '</br>';
echo 'Средняя загрузка CPU сервера за последние 5 минут '.$server_load_5. " %";
echo '</br>';
echo 'Средняя загрузка CPU сервера за последние 15 минут '.$server_load_15. " %";
echo '</br>';
echo 'А лучше качайте в другом месте';
?>

polanat · 24.09.2015
polanat Человек задал конкретный вопрос, а вы ему жуете что то другое.

Brigand Вот вставляй в index.php сайта и пользуйся. Ненужное можешь убрать.

Мне бы перестать жевать, но разве что ещё на пару кусков - уж больно сам подход решения задачи нетривиален. Вот вам всем небольшая аллегория - 10 человек а то и все 50-100) хотели бы качнуть сорок гигов (всего-то). Но есть одно условие - некий семафор-график загрузки процессора/памяти/сети. Ну и что произойдёт если скажем все эти 10 сидят и ждут сигнала этого самого семафора и дружно начинают "ломиться" причём все сразу и одновременно ;) Ну а если совсем абстрагироваться - то тот же НАС - у-во многозадачное и может крутить не один и не два процесса одновременно. Так и до нервного тика недалеко если запуск той или иной задачи будет всегда сопоставляться с графиком загрузки процессора/сети. Тогда уже и свои торренты качать-раздавать - тоже по графику???

 

PS Да я не против частного решения подзадачи (хочу график) но не в контексте всей задачи целиком (N человек хочет качнуть)...

 

PSS Да, и ещё - порою бывает и так, что получив ту же Линукс-команду, автор дальше вопрошает про "что есть командная строка", как настроить MC или WinSCP и тп...

Brigand · 24.09.2015

alexejnic спасибо, но значения странные при загрузке в оболочке 3-5%

Средняя загрузка CPU сервера за последнюю минуту 177 %

Средняя загрузка CPU сервера за последние 5 минут 212 %

Средняя загрузка CPU сервера за последние 15 минут 204 %

Читаю описание команды.

 

polanat

Этап MC и WinSCP уже прошел, потихоньку учусь дальше. Думал есть простое решение выдрать из оболочки значения мониторинга наружу, но похоже все не просто. Пока все в ручном режиме, отключаю свои закачки, даю ссылки пятерым и изредка отслеживаю логи, затем остальным. Все растягивается на неделю. В следующий раз попробую торрент, их все качать умеют :), а про фтп и докачку не всем девушкам объяснишь.

 

alexejnic · 25.09.2015

Так в приведённом примере два варианта получения загрузки. У меня точнее срабатывает первый через функцию sys_getloadavg()

Попробуй такой вариант.

<?PHP

        $load_averages = sys_getloadavg();
        array_walk($load_averages, create_function('&$v', '$v = round($v, 3);'));
        //$server_load = $load_averages[0].' '.$load_averages[1].' '.$load_averages[2];
        $server_load_1 = $load_averages[0] * 100;
        $server_load_5 = $load_averages[1] * 100;
        $server_load_15 = $load_averages[2] * 100;

//echo $server_load;
echo 'Средняя загрузка сервера за последнюю минуту '.$server_load_1. " %";
echo '</br>';
echo 'Средняя загрузка сервера за последние 5 минут '.$server_load_5. " %";
echo '</br>';
echo 'Средняя загрузка сервера за последнюю 15 минут '.$server_load_15. " %";
echo '</br>';
echo 'А лучше качайте в другом месте';
?>

 

polanat · 25.09.2015
В следующий раз попробую торрент, их все качать умеют :), а про фтп и докачку не всем девушкам объяснишь.

Если развивать тему в "правильном" направлении - то помимо торрентного способа, который можно назвать частным или приватным, есть ещё и публичные - те же файлообменники (например http://rusfolder.com/ ) или облачные сервисы. Если озабочены конфиденциальностью, то Ваши 40 гигов вполне впишутся в тот же надавно упомянутый Mega, предоставляющий 50GB бесплатно в зашифрованном виде...

SergeyASV · 25.09.2015

Brigand

Можно скриптом собирать статистику загрузки процессора в файл, потом на PHP нарисовать график и кинуть в папку web на НАС-е. В настройках включить webstation и тогда при обращении на ip НАС-а будет выводиться необходимая статистика.

Я так мониторю УПС, нагрев HDD, нагрев CPU и отрисовываю, только что добавил загрузку CPU.

http://fotkidepo.ru/photo/135524/56457lO1lEUE7Vq/1099200w.jpg

Осталось узнать как температуру системы логировать без SNMP. :rolleyes:

SergeyASV · 25.09.2015

Кстати в файл /proc/loadavg пишется загрузка процессора системой. Т.е. если я ставлю проверку антивирусом, то в мониторе на самом НАС-е вижу график с загрузкой: пользователь-50%, система 4%, вх/вых. 2%., а в этом файле 4.45 4.37 4.41 2/298 26267.

alexejnic · 25.09.2015

Ну так делись скриптом и файлом php

SergeyASV · 25.09.2015

Так делился уже.

вот тут

Остальное по аналогии.

Brigand · 30.09.2015
Так делился уже.

вот тут

Остальное по аналогии.

Отлично, напряжение я уже вижу! :)

Можешь выложить финальную версию скрипта, как на скриншоте?

 

А где хранятся данные из Мониторинга ресурсов самого Nas?

SergeyASV · 01.10.2015

Мой скрипт у тебя работать не будет, процессоры разные, количество дисков тоже. Тем более, что я мониторю не только NAS, но еще и роутер.

http://i017.radikal.ru/1510/df/b7bc6650699f.jpg

 

Загрузку ЦП лучше получать по SNMP командой

snmpwalk -Ov -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.9.0

т.к. в /proc/loadavg пишется хрень.

А по snmpwalk реальная загрузка, ее и нужно воткнуть в скрипт и отрисовать на графике. Так же можно и загрузку по LAN смотреть, только OID другой будет.