Кирил Л.
138 повідомлень
#15 років тому
Здраствуйте. Интересует такой вопрос некто немог бы подсказать как средствами php можно вывести нагрузку ЦП и ОЗУ?
Нагрузка ЦП : 22%
Использование ОЗУ : 65%
вот пример увидел (там где статистика сервера)
Никита К.
1594 повідомлення
#15 років тому
Это вряд ли силами PHP =) Там наверняка CGI приплели
Андрей Халецкий
3562 повідомлення
#15 років тому
Неплохо бы указать хотя бы ОС сервера, не говоря уже о том как настроен ПХП =)
Антон Е.
279 повідомлень
#15 років тому
Как-то так
<?php if (current_user_can('level_10')){ ?>
<?php echo " Запросов: " . get_num_queries() . " | "; timer_stop(1). "секунд";
if ( function_exists('memory_get_usage') )
echo ' Потребление памяти: ' . round(memory_get_usage()/1024/1024, 2) . 'MB '; ?>
<?php }?>

или еще есть функция memory_get_peak_usage
которая показыват пиковую нагрузку за время выполнения скрипта
Кирил Л.
138 повідомлень
#15 років тому
SmartDesign,
OC - win и линукс =)
_VersouL_,
ваш код выдает ошибку...
Fatal error: Call to undefined function current_user_can() in E:\VertrigoServ\www\test.php on line 1
Владимир М.
578 повідомлень
#15 років тому
Между прочим на означенном вами сервере показана загрузка не того серва на котором стоит сайт, а того сервера на котором крутится серверная часть Lineage, а данные эти вычисляет и поставляет сама оболочка Линейки, что затем подхватывается ПХП и постится на сайт. а вы я так понимаю хотите замерить собственные нагрузочные парметры хостинг-серва.
Кирил Л.
138 повідомлень
#15 років тому
vladmax,
ну сайт и серер на одном кампе

Цитата:
а вы я так понимаю хотите замерить собственные нагрузочные парметры хостинг-серва.

имено интересно просто когда скрипт индексирует сайты как серв загружается)
Евгений О.
263 повідомлення
#15 років тому
Сервера они, вообще-то, многозадачные, многопользовательские и даже многопоточные. Измерять нагрузку сервера и утилизацию памяти из пользовательского скрипта, конечно, можно, вопрос только в том, что именно будет померяно: загрузка сервера от Вашего процесса индексации или от процесса индексации запущенного "соседним" сайтом, а может быть и десятком соседних сайтов или от работы десятка фоновых процессов операционной системы. Если хочется померить потребление ресурсов именно Вашим процессом, то это надо смотреть подсистему sa, вызов acct, утилита sar (это все, конечно, применительно к linux).
Владимир М.
578 повідомлень
#15 років тому
А пхп-функции запущенные для данного пользователя, не рута, и получат долю ресурсов конкретного юзера, от имени которого они запущены - общей инфы им никто не даст. \
Цитата ("kiril1989"):
имено интересно просто когда скрипт индексирует сайты как серв загружается)
на самом деле это простите изврат. когда индексируется сайт - ну есть какая то пиковая нагрузка ну и что. все равно это простой http-трафик, ну у вас же не 10000 тсраниц на сайте - значит сделает к вам ПС 10 (100, 1000) запросов - и отвалит - никто и не заметит. даже на простых хостингах если пиковая нагрузка достигает 70-90% то хостер шлет уведомление. а у продвинутых хостеров, в особенности при исполльзовании dedicated или VDS - дык там есть в админке средства мониторинга и загрузки цп и памяти....
Евгений О.
263 повідомлення
#15 років тому
Цитата ("vladmax"):
А пхп-функции запущенные для данного пользователя, не рута, и получат долю ресурсов конкретного юзера, от имени которого они запущены - общей инфы им никто не даст. \


Это только по использованию памяти и только для данного процесса, не всех процессов данного пользователя, да и то сомнительно, чтобы оно память показывало с разбивкой на real и virt. Если Ваш процесс породил парочку подпроцессов, то эти функции все равно покажут объем памяти ведущего процесса без учета порожденных. Загрузка сервера всегда показывается как общая загрузка процессора всеми активными процессами - это, по определению, всегда интегральный показатель. Утилизация ресурсов для данного процесса - это подсистема sa. Общую информацию по всему серверу, обычно, не скрывают, она доступна любому пользователю и любому скрипту, например из сессии ssh можно выдать команды uptime и free и ознакомиться, из скрипта php можно выполнить те же uptime и free, перехватить STDOUT и показать результаты на странице Вашего сайта.
Владимир М.
578 повідомлень
#15 років тому
Illarion_SA согласен с вами полностью. я в этом не так осведомлен.
Кирил Л.
138 повідомлень
#15 років тому
vladmax,
вы непоняли это я поставил поисковик на сервак ... я индексирую сайты, а не мой сайт
Владимир М.
578 повідомлень
#15 років тому
)) ну тогда сразу вам скажу - ставьте свою систему на VDS или dedicated - на нем у вас будут штатные средства контроля расхода ресурсов, предоставленные хостером.
Никита К.
1594 повідомлення
#15 років тому
Как вариант: написать CGI-приложение (на c++, котороебудет определять загрузку сервера), сохранить полученные данные в файл, а php-ом их уже читать
Кирил Л.
138 повідомлень
#15 років тому
vladmax,
так друг чючуть выделил места на своей VDS
Антон Е.
279 повідомлень
#15 років тому
Round(memory_get_usage()/1024/1024, 2) . 'MB '; вот так попробуйте
Кирил Л.
138 повідомлень
#15 років тому
_VersouL_,
всеравно неработает пишет туже ошибку видно несудьба...

<?php 
if ( function_exists('memory_get_usage') )
echo round(memory_get_usage()/1024/1024, 2) . 'MB '; ?>

написал вот так оно мне пишет 0.07MB
Антон Е.
279 повідомлень
#15 років тому
Kiril1989 ну а чем это отличается от того,что писал я?
у меня
Round(memory_get_usage()/1024/1024, 2) . 'MB ';

у вас
round(memory_get_usage()/1024/1024, 2) . 'MB ';

разница только в заглавной букве,очевидно,что это была очепятка =)
эта функция показывает оперативку которую потребляет скрипт в момент ее вызова.а та которую я еще советовал показывает пиковое значение опретивки за время выполнения вашего скрипта. И что у вас не работает если пишет ведь 0.07 мб
Кирил Л.
138 повідомлень
#15 років тому
_VersouL_,
неработало из за
<?php if (current_user_can('level_10')){ ?>
<?php echo " Запросов: " . get_num_queries() . " | "; timer_stop(1). "секунд";

Яж написал как я прописал и как вы давили в начале...
я непойму для чего этот код? а вобщем спасибо за помощь.