Снижение средней нагрузки при замене 67 компьютеров 18 компьютерами большей производительности

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

Прежде чем просматривать цены фирмы-поставщика, разберитесь, чего вы пытаетесь добиться. Должен ли сервер выполнять значительные объемы вычислений? Будет ли он интенсивно использовать память? Выполняет ли он функции шлюза, ориентированного на сетевые операции?

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

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

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

Со времени появления многоуровневых (tiered) и неразделяемых (shared-nothing) архитектур горизонтальное масштабирование получило широкое признание благодаря своим преимуществам перед вертикальным масштабированием в том, что касается веб-приложений. Способность системы к горизонтальному масштабированию подразумевает, что ваше приложение разработано соответствующим образом и может обеспечить работу базы данных в распределенном режиме. Замечательные применения методов разработки на базе горизонтального масштабирования представлены в упоминавшихся книгах Хендерсона и Шлосснейгла.

Если вы будете опираться исключительно на вертикальное масштабирование, возникнет опасность того, что непрестанное обновление компонентов одного компьютера приведет к резкому возрастанию затрат. Также возникнет риск появления единой точки отказа (SPOE Single Point of Failure).

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

Диагональным масштабированием называется процесс вертикального масштабирования горизонтально масштабированных узлов, уже присутствующих в инфраструктуре. Со временем процессоры и оперативная память становятся быстрее и дешевле, а диски — больше и экономичнее. Возможно, в ваш план будет экономически выгодно включить некоторые аспекты вертикального масштабирования, но только применительно к горизонтальным узлам.

Для нас это означает, что все узлы с интенсивным использованием процессоров и памяти можно «обновить», используя меньшее количество серверов с более мощными процессорами и большими объемами памяти.

Для компьютеров, интенсивно работающих с дисками, это может означать возможность перехода на меньшее количество компьютеров с большим количеством дисков. В качестве примера рассмотрим недавнее обновление Flickr.

Изначально было 67 двухпроцессорных веб-серверов с 4 Гбайт памяти и одним диском SATA. Клиентский уровень в основном интенсивно использует процессор, обрабатывая запросы от клиентских браузеров, обращаясь с запросами к базе данных и принимая загружаемые фотографии. На этих 67 компьютерах, оснащенных процессорами Intel Xeon 2,80 ГГц, работали Apache и РНР.

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

С восемью ядрами процессоров Intel Xeon L5320 1,86 ГГц сотрудники смогли заменить 67 серверов всего 18 новыми серверами. На рисунке показано, насколько в результате сократилась средняя нагрузка на сервер (в границах всего кластера)

Рисунок демонстрирует снижение средней нагрузки, которое произошло после исключения 67 компьютеров из рабочего пула и передачи той же производственной нагрузки 18 новым компьютерам. Конечно, график выглядит очень эффектно, но, возможно, средняя нагрузка — не лучший показатель для пояснения диагонального масштабирования.

Обслуживание большего трафика с помощью меньшего количества серверов

Рисунок выше, описывает тот же период времени, что и предыдущий, но на нем отображается количество запросов Apache в секунду при замене старых серверов. Обратите внимание на то, что после замены количество запросов возросло на 400, то есть старые машины были очень близки к своему критическому порогу производительности. Таблица показывает, что это означает с точки зрения ресурсов.

Таблица. Сравнение архитектур серверов

Серверы

Процессор

Опepaтив­ная память

Диск

Мощность (кВт) на 60 % пиковой ­нагрузки

67 2(двухъядерные) 4 Гбайт 1×80 Гбайт SATA 8,763
18 2(восьмиядерные) 4 Гбайт 1х146 Гбайт SATA 2,332

Если на основании анализа трафика предположить, что серверы работают в среднем на 60% от пиковой нагрузки, получится, что используется около 30 % от использовавшейся ранее мощности. Кроме того, эта замена сэкономила 49U единиц стоечного пространства, так как каждому серверу достаточно 1U места. В результате диагональное масштабирование привело к освобождению более чем одной полной стандартной стойки 42U. Неплохо, согласитесь.