Процессорное время

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Коммунар (обсуждение | вклад) в 17:58, 22 марта 2008 (больше не тупиковая). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
Вывод программы top. Процессорное время каждого процесса указано в колонке «TIME+»

Процессорное время — это время, которое потратил процессор сервера на обработку задачи.

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

Процессорное время зависит только от проделанной работы. В случае, если из-за загруженности сервера или из-за ожиданий (например, ответа от MySQL-сервера) время выполнения скрипта изменяется, реальное процессорное время (то есть нагрузка на процессор) остается постоянной.

Примеры

Лучше всего пояснить этот термин примерами.

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

Учет процессорного времени

Именно процессорное время — тот ресурс, который может закончиться на сервере. Необходим его учет. При этом, как видно из примеров, не важно, сколько именно работал ваш скрипт — важно, какую именно работу он при этом сделал, то есть процессорное время, необходимое для работы скрипта.

Нормальным количеством времени на одну страницу является 10—100 мс (то есть в 10—100 раз меньше, чем одна секунда). Поскольку сервер одновременно обрабатывает десятки запросов, время генерации страницы составляет обычно в пределах одной секунды. Это нормально.

Как производится учет

Веб-сервер ведет лог-файл процессорного времени, которое было затрачено на каждый запрос. Его сообщает операционная система. Затем данные суммируется для каждого сайта в пределах одного часа. Если суммарное процессорное время вашего для вашего сайта составило 1 минуту в 1 час, это обозначает, что в этот час вы потратили ресурсов одного процессора сервера.

Полная мощность сервера

Сервера обладают разным количеством процессоров. На сервере, где 8 процессоров (точнее, более реалистично, 2 процессора по 4 ядра в каждом), общее процессорное время может достигать 800 %, это обозначает, что вы на 100 % загрузили все 8 логических процессоров.

Учет ведется именно по ядрам процессоров, так как в одном сервере может быть от 1 до 8 независимых ядер, при этом цифра «3,5 % от ресурсов сервера» может означать мощность, которая фактически отличается в 8 раз в зависимости от конфигурации сервера, что было бы некорректно.

См. также