www.team.ru
Поиск
sales@team.ru

Выбор конфигурации сервера для 1С

по результатам тестирования двухпроцессорной серверной платформы на базе Intel Xeon E5-2600 при помощи пакета "Стандартный нагрузочный тест"

Введение
Что мы будем тестировать?
Как работает "Стандартный нагрузочный тест"?
Тестирование двухпроцессорной серверной платформы
     Тестирование сервера в конфигурации с одним процессором
         Влияние модели процессора на результаты теста
         Оперативная память
         Дисковая подсистема
         Сетевые интерфейсы
     Тестирование сервера в конфигурации с двумя процессорами
Как использовать результаты тестирования для выбора сервера
Рекомендуемые модели серверов для 1С

Введение

К нашей компании как к поставщику серверного оборудования часто обращаются клиенты с просьбой подобрать конфигурацию сервера для 1С под определенное количество пользователей.

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

В этой статье мы поделимся результатами тестирования двухпроцессорной серверной платформы Intel в среде "1С:Предприятие 8" при помощи инструмента "Стандартный нагрузочный тест". Результаты тестирования можно использовать в качестве отправной точки при выборе конфигурации сервера для 1С в части процессорной подсистемы и подсистемы памяти.

Тестирование было выполнено компанией "Алькор Сервис", имеющей статус "1С:Франчайзи" и предоставившей программное обеспечение фирмы "1С", и компанией "Тим Компьютерс", "платиновым" поставщиком серверных решений Intel и "золотым" OEM-партнером Microsoft.

Что мы будем тестировать?

Мы будем измерять производительность серверной системы при работе с тестовой информационной базой "1С:Предприятие 8.2" в конфигурации "Управление Производственным Предприятием" в клиент-серверном режиме с использованием СУБД Microsoft SQL Server.

В качестве серверной системы будем использовать двухпроцессорную платформу Intel для процессоров семейства Intel Xeon E5-2600, на которой в среде операционной системы Microsoft Windows Server 2012 установлены сервер приложений "1С:Предприятие 8.2" и СУБД Microsoft SQL Server 2012.

Производительность будем оценивать в "Стандартных пользователях 1С" при помощи инструмента "Стандартный нагрузочный тест".

В нашем случае производительность системы будет зависеть от следующих факторов:

  1. аппаратной конфигурации оборудования и его настроек
  2. версий операционной системы, "1С:Предприятия" и СУБД и их настроек

В ходе тестирования мы попытаемся выяснить, какое влияние на производительность оказывает аппаратная конфигурация сервера. Поэтому во всех тестах мы будем использовать одни и те же версии операционной системы Microsoft Windows Server 2012, СУБД Microsoft SQL Server 2012 и сервера приложений "1С:Предприятия 8.2". Кроме того, во всех случаях мы будем применять одинаковые и оптимальные, с нашей точки зрения, настройки программного обеспечения.

Для оборудования мы будем использовать настройки, которые обеспечивают максимальную производительность.

Как работает "Стандартный нагрузочный тест"?

"Стандартный нагрузочный тест" позволяет определить максимальное количество "стандартных пользователей 1С", которые может обслуживать с достаточным уровнем производительности тестируемая серверная система.

"Стандартный нагрузочный тест" создает многопользовательскую нагрузку на серверную систему путем параллельного запуска большого количества виртуальных "стандартных пользователей" в режиме тонкого клиента 1С. Эти пользователи запускаются на "внешних" серверах, чтобы не загружать ресурсы тестируемой системы выполнением клиентских приложений.

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

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

Для цикла продажи, выполняемого "стандартным пользователем", задается целевое время Ts — 15 секунд. В процессе тестирования замеряется фактическое время выполнения каждого цикла продажи и вычисляется индекс APDEX по формуле:

APDEX = (Ns + Nf/2)/N, где

Ns — количество циклов продажи, которые "уложились" в целевое время Ts (15 секунд)

Nf — количество циклов продажи, выполненных за время от Ts до 4 x Ts (от 15 до 60 секунд)

N — общее количество циклов продажи

Если получившаяся величина индекса APDEX больше или равна значению 0,85, то производительность системы считается достаточной, а тест для данного количества пользователей — пройденным. Количество пользователей увеличивается до тех пор, пока производительность по индексу APDEX не упадет ниже 0,85. Результатом теста является максимальное количество "стандартных пользователей", для которого тест завершился успешно.

Тестирование двухпроцессорной серверной платформы

Как уже говорилось, в качестве серверной системы для "1С:Предприятия" мы будем использовать двухпроцессорную серверную платформу на базе процессоров семейства Intel Xeon E5-2600, на которой в среде операционной системы Microsoft Windows Server 2012 установлены сервер приложений "1С:Предприятие 8.2" и СУБД Microsoft SQL Server 2012.

В ходе тестирования мы надеемся получить ответы на следующие вопросы:

Какое максимальное количество "стандартных пользователей 1С" может "обслужить" двухпроцессорный сервер на базе Intel Xeon E5-2600?

Как влияет на производительность системы модель и количество процессоров, число ядер и их частота?

Как влияет на результаты теста включение режимов Turbo Boost (TB) и Hyper Threading (HT)?

Как влияет на производительность объем оперативной памяти, ее частота и число каналов?

Как влияет конфигурация дисковой подсистемы сервера на результаты теста?

Какой уровень нагрузки сетевых интерфейсов сервера наблюдается в ходе тестирования?

Тестирование сервера в конфигурации с одним процессором

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

Влияние модели процессора на результаты теста

Протестируем систему с различными процессорами семейства Intel Xeon E5-2600. Остальные параметры конфигурации постоянны: 64ГБ оперативной памяти DDR3-1600 в четырехканальном режиме, 4 гигабитных серверных сетевых интерфейса, RAID 1 из двух серверных SSD-накопителей, аппаратный RAID-контроллер Intel RMS25PB080. Результаты тестов приведены на графике.

Производительность системы с одним процессором

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

Исключением является "младший" процессор Intel Xeon E5-2609 v2, который явно не добирает производительности (всего 14 "стандартных пользователей" на гигагерц суммарной частоты). Такое отставание объясняется просто — этот процессор начального уровня не поддерживает режимы Intel Turbo Boost и Intel Hyper Threading.

Рассмотрим влияние этих режимов подробнее. Технология Turbo Boost увеличивает частоту одного или нескольких ядер процессора, если энергопотребление и тепловыделение ядер остается в допустимых пределах, при этом частота ядра может повышаться с шагом 100 MHz на один или сразу на несколько шагов. Технология Hyper Threading позволяет ядру обрабатывать одновременно два потока инструкций, благодаря чему операционная система "видит" одно физическое ядро как два логических CPU.

Мы протестировали процессор Intel Xeon E5-2650 с включенными и отключенными режимами Turbo Boost и Hyper Threading в различных комбинациях:

Модель CPU Intel
Turbo
Boost
Intel
Hyper
Threading
Станд.
пользова-
телей 1С
Прирост
за счет
TB (%)
Прирост
за счет
HT (%)
Прирост
за счет
TB и HT (%)
Xeon E5-2650
8 Cores x 2 GHz
выключенвыключен230
включен30030%
включенвыключен27017%
включен340 13% 26% 48%

Оказалось, что включение Turbo Boost увеличивает производительность в среднем на 15%, а Hyper Threading — на 28%. Суммарный рост быстродействия за счет обоих режимов составляет 48%.

Оперативная память

Независимо от нагрузки объем используемой оперативной памяти в ходе тестирования не превышал отметки в 32 GB. При этом около 2 GB использовалось операционной системой, не более 16 GB — рабочими процессами сервера для 1С и примерно 12 GB — сервером SQL с учетом 100% кэширования тестовой базы в памяти сервера.

Определяя необходимый объем памяти для конкретного внедрения, необходимо отвести 2 GB для операционной системы и 4 GB под каждый рабочий процесс сервера для 1С. Объем памяти для сервера SQL должен быть не менее 30 % от размера базы данных, а еще лучше, если база целиком сможет поместиться в оперативной памяти сервера.

Перейдем к вопросу о рабочей частоте оперативной памяти. Влияет ли она на результаты теста? Влияет, но только для самого старшего из протестированных процессоров — Intel Xeon E5-2697 v2. При частоте памяти 1600 MHz этот процессор выдает 630 пользователей — ожидаемую производительность из расчета примерно 20 пользователей на гигагерц суммарной частоты процессора (32,4 GHz). При этом полоса пропускания памяти составляет 51,2 GB/s (4 канала x 8 байт на канал x 1,6 GHz). А вот с памятью 1333 MHz (пропускная способность памяти 42,7 GB/s) результат теста ниже — всего 600 пользователей. Можно предположить, что память, чтобы не быть узким местом при нагрузке данного типа, должна обеспечивать пропускную способность не менее 1,6 GB/s на один гигагерц суммарной частоты процессора. Если это верно, то, например, для процессора Intel Xeon E5-2650 с рабочей частотой 2 GHz и суммарной частотой восьми ядер 16 GHz необходима пропускная способность памяти 16 GHz x 1,6 GB/s/GHz = 25,6 GB/s. Такую пропускную способность может обеспечить даже память с частотой 800 MHz (4 x 8 x 0,8 GHz = 25,6 GB/s). Действительно, мы протестировали этот процессор с памятью 800 MHz и получили такой же результат, как и с памятью 1600 MHz — 340 пользователей. Более того, с памятью 1600 MHz в двухканальном режиме (те же 2 x 8 x 1,6 GHz = 25,6 GB/s) тест выдал также 340 пользователей.

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

Дисковая подсистема

Характер нагрузки на дисковую подсистему во время выполнения теста при 100% кэшировании базы в оперативной памяти сервера и отсутствии блокировок не позволяет делать выводы по поводу ее оптимизации на основании результатов теста. Даже при значительном количестве пользователей средняя скорость записи на диски не превышала 40 MB/s, а глубина очереди составляла незначительную величину порядка 0,05 – 0,1. Фактически во время данного теста происходит запись журнала транзакций в последовательном режиме, что не предъявляет серьезных требований к производительности контроллера и дисков.

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

Сетевые интерфейсы

В нашей конфигурации серверного стенда мы объединили 4 интегрированных гигабитных сетевых адаптера в один агрегированный канал для внешних клиентских подключений. Сетевой трафик не превышал в пиках величины 30 MB/s даже при максимальном количестве пользователей. Такая нагрузка по силам и одному гигабитному сетевому адаптеру. Чтобы убедиться в этом на практике, мы провели тестирование "максимальной" конфигурации сервера с процессорами Intel Xeon E5-2697 v2 в варианте с одним сетевым подключением и получили все тот же результат в 880 "стандартных пользователей 1С".

Тестирование сервера в конфигурации с двумя процессорами

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

Производительность системы с двумя процессорами

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

Сравнение производительности сервера с одним и двумя процессорами
Модель CPU E5-2609v2 E5-2630v2 E5-2650 E5-2650v2 E5-2660v2 E5-2697v2
Пользователей, 1 CPU 140 310 340 410 460 630
Пользователей, 2 CPU 250 540 600 680 740 880
Прирост 2 CPU / 1 CPU 79% 74% 76% 66% 61% 40%

Прирост производительности при добавлении второго процессора составляет от 79 % до 40 %, причем чем мощнее процессор, тем меньше эта прибавка.

Данный эффект можно объяснить следующим образом. Рассматриваемое поколение серверов Intel построено на базе архитектуры NUMA (Non-Uniform Memory Architecture). В рамках этой архитектуры каждый процессор через встроенный в него контроллер памяти управляет своей областью оперативной памяти. Взаимодействие процессора со "своей" памятью происходит быстрее, чем с памятью, подключенной к другому процессору, потому что обращение к "чужой" памяти осуществляется через межпроцессорный интерфейс QPI с пропускной способностью 16 GB/s в одном направлении. Процессоры Intel Xeon E5-2600 имеют два таких интерфейса с суммарной пропускной способностью 32 GB/s, в то время как контроллер памяти пересылает данные со скоростью 51,2 GB/s.

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

Максимальный результат, который нам удалось получить для двухпроцессорной системы, составляет 880 "стандартных пользователей 1С" против 630 для однопроцессорной.

Как использовать результаты тестирования для выбора сервера

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

Это можно сделать следующим образом.

Необходимо выбрать период времени, в течение которого пользователи создают максимальную нагрузку на информационную базу. Этих пользователей нужно классифицировать по ролям, которые они выполняют, например, кладовщик, менеджер по продажам и так далее. Для каждой роли необходимо создать обработку, которая в автоматическом режиме выполняет типовой бизнес-процесс, характерный для данной роли, и замеряет время его выполнения. Затем нужно вычислить коэффициент, который показывает, какому количеству стандартных пользователей соответствует данная роль. Коэффициент вычисляется по формуле:

К = (Т / Тп) * (V / 60), где

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

Тп — длительность выполнения бизнес-процесса "продажа" "стандартного пользователя" в однопользовательском режиме на имеющемся оборудовании

V — количество бизнес-процессов, выполняемых пользователем данной роли, за 1 час

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

Модель CPU E5-2609v2 E5-2630v2 E5-2650 E5-2650v2 E5-2660v2 E5-2697v2
Мах частота TB (GHz) 2,5 3,1 2,8 3,4 3,0 3,5
Время Тп (сек) 1,32 1,10 1,24 1,06 1,16 1,08

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

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

Рекомендуемые модели серверов для 1С:

Серверы Supermicro: R1-E31*, R1-E51, R1-E52, R1-Ultra, R2-E51, R2-E52, R2-Ultra, S1-E52, S2-E52, S4-E52, R1-A7, R2-A7
Серверы Intel: R1000CY, R1000WF, R2000CY, R2000WF
Серверы GIGABYTE: R1-G3*, R1-GS, R1-GE, R2-GS, R2-GE
Серверы ASUS: RS100*, RS300*, RS500A, RS700, RS700A, RS520A, RS720, RS720A
Серверы AIC: R1-AIC, R2-AIC
* – для небольших компаний