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

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая Голем (обсуждение | вклад) в 10:14, 22 марта 2008 (+ {{тупиковая статья}} с помощью AWB). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску

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

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

Примеры

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

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

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

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

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

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

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

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

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

Для сравнения наших тарифов с тарифами других провайдеров необходимо делать на это поправку. Например, тариф П-15, обеспечивающий нагрузку до 15% на один процессор, эквивалентен общей нагрузке на сервер в размере 3.75%, если другой провайдер указывает её для 4-х процессорного сервера целиком.

Таким образом, нагрузка в пределах 3.5% - 7.5% (предел стандартных тарифов) по этому показателю соответствует принятым для виртуального хостинга пределам, выраженным в нагрузке от всего сервера – встречаются условия от 1% до 3%. Общий предел нужно сначала умножить на 8 - общее количество процессоров в текущем сервере 1Gb - а потом поделить на среднее кол-во процессоров для установленного предела у сравниваемого провайдера. В подавляющем большинстве упоминается "машина класса Dual Xeon 3 ГГц", что составляет 4 логических процессора.