Сергей
Сергей

как узнать процессорное время сайта

Ал
Александр

Учет процессорного времениИменно процессорное время - тот ресурс, который может закончиться на сервере. Необходим его учет. При этом, как видно из примеров, не важно, сколько именно работал ваш скрипт - важно, какую именно работу он при этом делал, т. е. процессорное время, необходимое для работы скрипта. Нормальным количеством времени на одну страницу является 10 - 100 мс (т. е. в 10 - 100 раз меньше, чем одна секунда) . Поскольку сервер одновременно обрабатывает десятки запросов, время генерации страницы составляет обычно в пределах одной секунды. Это нормально. Как производится учетВеб-сервер ведет лог-файл процессорного времени, которое было затрачено на каждый запрос. Его сообщает операционная система. Затем данные суммируется для каждого сайта в пределах одного часа. Если суммарное процессорное время для вашего сайта составило 1 минуту в 1 час, это обозначает, что в этот час вы потратили 1/60 = 1.7% ресурсов одного процессора сервера. Работаем с php. Информация о процессоре в php можно получить используя метод getrusage(). (В Windows эта функция не работает) print_r(getrusage());
/* prints
Array
(
[ru_oublock] => 0
[ru_inblock] => 0
[ru_msgsnd] => 2
[ru_msgrcv] => 3
[ru_maxrss] => 13732
[ru_ixrss] => 456
[ru_idrss] => 3894
[ru_minflt] => 64
[ru_majflt] => 0
[ru_nsignals] => 1
[ru_nvcsw] => 54
[ru_nivcsw] => 4
[ru_nswap] => 0
[ru_utime.tv_usec] => 0
[ru_utime.tv_sec] => 0
[ru_stime.tv_usec] => 3549
[ru_stime.tv_sec] => 0
)
*/Расшифровкаru_oublock: количество операций блочной записиru_inblock: количество операций блочного чтенияru_msgsnd: количество отправленных сообщенийru_msgrcv: количество принятых сообщенийru_maxrss: максимальный размер невыгружаемого набораru_ixrss: общий объем разделяемой памятиru_idrss: общий объем неразделяемых данныхru_minflt: количество используемых страниц памятиru_majflt: количество ошибок отсутствия страницru_nsignals: количество принятых сигналовru_nvcsw: количество переключений контекста процессомru_nivcsw: количество принудительных переключений контекстаru_nswap: количество обращений к диску при подкачке страницru_utime.tv_usec: время работы в пользовательском режиме (микросекунды) ru_utime.tv_sec: время работы в пользовательском режиме (секунды) ru_stime.tv_usec: время работы в привилегированном режиме (микросекунды) ru_stime.tv_sec: время работы в привилегированном режиме (секунды) Для того чтобы узнать какие ресурсы вашего процессора используются скриптом, вам необходимо значение ‘user time’ (время работы в пользовательском режиме) и ’system time’ (время работы в привилегированном режиме) . Получим результат в секундах добавив следйющий код в конце скрипта: $data = getrusage();
echo "User time: ".
($data['ru_utime.tv_sec'] +
$data['ru_utime.tv_usec'] / 1000000);
echo "System time: ".
($data['ru_stime.tv_sec'] +
$data['ru_stime.tv_usec'] / 1000000);
/* выводит
User time: 0.015631
System time: 0
*/

Ольга
Ольга

Процессорное время - 2 секунды. На сервере выполняется одновременно 10 таких скриптов. …Затем данные суммируется для каждого сайта в пределах одного часа.
P.S. Лучше всего пояснить этот термин примерами. На вашей домашней машине вы архивировали большой файл. Это заняло 40 секунд. Общее время - 40 секунд, процессорное время - 40 секунд. Аналогично, но два файла одновременно. Общее время завершения процессов - 80 секунд, процессорное время каждого - 40 секунд. На пустом сервере выполняется скрипт, время генерации страницы - 2 секунды. Процессорное время - 2 секунды. На сервере выполняется одновременно 10 таких скриптов. Время генерации страницы будет 20 секунд, однако, процессорное время по прежнему 2 секунды. На соседнем сервере произошла перегрузка mySQL сервера, в результате чего ваш скрипт работал не 2 секунды, а 45 секунд. Время генерации страницы - 45 секунд, процессорное время по прежнему 2 секунды.

Эрадж
Эрадж

Простите, ЧТО Вы хотите узнать? Для чего Вам этот показатель? В чем он измеряется? Где вы ЭТО услышали?

ОЮ
Ольга Юлинова

А еще можно посмотреть Load Overage.

например пользовательское время будет 0.8 секунды а системное 0.1 секунды. и LO(1,5,15) = 0.1 0.2 0.6
Т. е. мы видим что процессор не забит особо. Скорее всего задержки на уровне коннектов с БД или еще какие-то сетевые задержки. Но если LO/КОЛЛИЧЕСТВО ПРОЦЕССОРОВ будет близко или больше к 1. Это значит сервак висит. И вы увидите увеличение пользовательского времени...

Похожие вопросы
Как узнать какая модель процессорного кулера?
Как получить имя процесса, занимающего большую часть процессорного времени в Perfomance Monitor?
как узнать сайт производителя своей видеокарты?
Как узнать с какого сайта я скачала видео
Как узнать шум идет от процессорного кулера или от видеокарты? Как не прислушивался не могу понять
Процессорный кулер стоит заменить?
Для каких целей операционная система пытается занять все процессорное время и всю память ПК?
крепление процессорного куллера + фото
Что такое воровство процессорного времени? И что вообще такое BitCoin, в принципе? Случайно узнал, интересно.
как узнать время появления статьи на сайте