Активные процессы Apache: данные за неделю

При прогнозировании мощностей для пиковых ресурсов необходимо следить за изменением пиков со временем. Далее на основании этих данных проводится прогнозирование будущих потребностей на основе экстраполяции. Наш пример с веб-сервером хорошо подходит для демонстрации этого процесса.

Ранее мы определили потолок веб-сервера как 85 процентов загрузки процессора для этой конкретной аппаратной платформы. Мы также убедились в том, что загрузка процессора напрямую связана с объемом работы, которую необходимо выполнять Apache для генерирования веб-страниц. Прочитав предыдущие записи, вы должны быть знакомы с типичной картиной нагрузки на всем кластере веб-серверов Flickr. На рисунке представлены пики и провалы в течение одной недели.

Данные были получены в тот момент истории Flickr, когда у компании было 15 веб-серверов. Давайте будем считать, что эти данные бы ли получены сегодня и мы понятия не имеем, как будет выглядеть наша будущая деятельность. Будем считать, что наблюдения точно описывают связь между загрузкой процессора и количеством активных процессов Apache (то есть они связаны простым коэффициентом 1,1). Если по какой-то причине это предположение изменится, мы об этом быстро узнаем, поскольку метрики отслеживаются поминутно. Согласно графику на рисунке мы видим около 900 активных параллельных процессов Apache в пиковые периоды, распределенные по 15 веб-серверам. Получается около 60 процессов на один веб-сервер. Таким образом, каждый веб-сервер использует приблизительно 66 процентов допустимой загрузки процeccopa (это допущение проверяется по графикам загрузки процессора).

Нас больше всего интересуют пики среди собранных данных. На рисунке представлены данные за более продолжительный период времени; на графике видны повторяющиеся закономерности.

Недельные пики веб-серверов за шесть недель

Именно эти недельные пики нужно отслеживать и использовать для прогнозирования будущих потребностей. Как выяснилось, в Flickr недельные пики почти всегда приходятся на понедельники. Если изолировать пиковые значения и провести линию тренда, как это было сделано ранее в нашем примере с дисковым пространством, мы получим нечто похожее на рисунок ниже.

Тренд пиков веб-сервера

Если график продолжит расти такими же темпами, то в соответствии с нашим графиком можно ожидать на пике примерно 1300 активных процессов Apache. При соотношении количества процессов (коэффициент 1,1) это дает около 1430 процентов суммарной загрузки процессоров по кластеру. Если верхний предел на каждом сервере равен 85 процентам, для обработки этой нагрузки потребуется 16,8 серверов. Конечно, фирмы-производители не продают дробные процессоры, поэтому результат округляется до 17 серверов. Сейчас кластер содержит 15 серверов; значит, придется добавить еще 2.

Следующий вопрос: как их добавить? Как объяснялось в статье Не покупайте «про запас», преждевременная закупка оборудования может привести к существенной трате средств.

К счастью, мы уже располагаем достаточными данными для вычисления момента исчерпания мощностей веб-серверов. Сейчас в кластере работает 15 серверов, каждый из которых в пиковые периоды работает на 66 процентах загрузки процессора. Потолок загрузки для веб-серверов установлен равным 85 процентам, что означает 1275 процентов загрузки процессоров в масштабах кластера. С учетом множителя 1,1 выходит, что на пике будет работать 1160 активных процессов Apache. Если доверять линии тренда на рисунке, можно ожидать, что мощности серверов будут исчерпаны где-то между 9-й и 10-й неделями.

Нагрузка 15 веб-серверов

Таким образом, основные положения нашего прогноза можно кратко изложить в следующем виде:

  • Мощности веб-серверов будут исчерпаны через три-четыре недели от настоящего момента.
  • Для обработки нагрузки, ожидаемой в ближайшие восемь недель, понадобятся еще два сервера.

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

Мы рассмотрели упрошенный пример. Добавление двух веб-серверов за 3-4 недели не вызывает ни особых сложностей, ни напряжения. В идеале прогноз должен основываться не менее чем на 6 точках данных, и текущая производительность кластера, скорее всего, будет не так близка к потолку, как в нашем примере. Однако сам процесс прогнозирования остается таким же независимо от количества добавляемых мощностей или фактической продолжительности временной шкалы.