Процессорное время
Материал из 1GbWiki.
Процессорное время - это время, которое потратил процессор сервера на обработку задачи. За базовое время можно взять общее время решения задачи (генерации страницы и т.д.), однако, в него не входит время, которое было затрачено на генерацию других параллельных задачи или ожидание внешних событий.
Процессорное время зависит только от проделанной работы. В случае, если из-за загруженности сервера или из-за ожиданий (например, ответа от 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 логических процессора.