• nav


Влияние настроек памяти на производительность сервера на примере модулей Transcend DDR4-2400 ECC (TS1GHR72V4H)

Бытует мнение, что в сервере все настройки BIOS-а, которые касаются оперативной памяти, нужно оставить в значении «Авто», ставить модули парами, одного производителя и одинакового объема, покупать только одного производителя и даже одной серии.

Нам на тест поступили два модуля памяти Transcend DDR4-2400 ECC RDIMM, и сегодня мы проверим древние мифы и посмотрим, на что вообще влияет память, когда дело касается двух типов виртуальных машин: VDI (виртуальный рабочий стол) и SQL. Наш тестовый стенд имеет следующую конфигурацию:

  • Intel Xeon E5-2603 V4
  • Материнская плата на чипе Intel C-612
  • Гипервизор VMware ESXi 6.7
  • FreeNAS 11.2 NFS DataStorage
  • Debian 9 Stretch (Sysbench OLTP)
    • MariaDB 10.1.26
  • Windows 7 x64 (AIDA64)

Чтобы в тесте OLTP, эмулирующем нагрузку базы данных, максимально выйти на работу с ОЗУ, мы использовали следующие настройки сервера БД. В процессе тестирования, виртуальная машина потребляла в среднем 1.5 Гб ОЗУ, так что от объёма памяти мы не зависим.

query_cache_type = on
query_cache_limit = 2M
query_cache_size = 32M
query_cache_min_res_unit =8

join_buffer_size = 1M
read_rnd_buffer_size = 1M
max_heap_table_size = 32M
tmp_table_size = 32M

thread_cache_size = 32
innodb_sort_buffer_size = 2M
max_allowed_packet = 16M
innodb_log_file_size = 128M
expire_logs_days = 10
max_binlog_size = 100M

innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
transaction-isolation = READ-COMMITTED
default-storage-engine = innodb
innodb_buffer_pool_size = 4G
innodb_file_per_table = 1

Виртуалка с тестом хранилась на томе, созданном FreeNAS, установленным на том же тестовом стенде и подключенном через NFS. Таким образом, мы максимально дистанцировались от дисковой системы, рассчитывая на то, что кэш LARC этой операционной системы для СХД сгладит любые обращения базы данных к хранилищу, и опять же создаст нагрузку на память. Запуск каждого OLTP теста производился трижды со следующими параметрами:

sysbench --test=oltp --oltp-table-size=100000 --mysql-db=test --mysql-user=root --mysql-password=12345 --max-time=300 --oltp-read-only=off --max-requests=0 --num-threads=16 --percentile=99 run

Результаты третьего теста записывались как итоговые.

Модули памяти Transcend TS1GHR72V4H

В регистровых модулях памяти RDIMM, связь между контроллером ОЗУ, установленным в процессор и чипами DRAM на планке памяти осуществляется напрямую, и лишь адресные и командные сигналы буферизуются в дополнительном чипе, установленном на плашке памяти, называемом регистром. Такая компоновка позволяет производить 4-ранговые модули памяти для использования в серверах с 12 и большим количеством слотов DIMM. Говоря проще, регистр позволяет установить больший объём памяти в один сервер.

Модуль памяти TS1GHR72V4H - это 2-ранговый DDR4 2400 DIMM. Объём набран 16 микросхемами SEC 725 серии K4A4G08 5WE BCRC производства Samsung. Эти чипы относятся к поколению E-die, которое само по себе рассчитано на частоты выше 3000 МГц, то есть на плашках памяти DDR4-2400 эти чипы, можно сказать, "отдыхают".

Основная задержка CAS составляет 17 тактов, рабочий диапазон температур - от 0 до 85 градусов Цельсия, хотя по нашим тестам, как будет показано далее, память не нагревается и наполовину максимально допустимых значений.

Интересно, что в нашем тестовом комплекте использовались разные регистровые драйверы. На одной плашке - Inphi iDDR4RCD2-GS01, а на другой - IDT 4RCD0124KCO. Для первого производитель заявляет допустимую температуру аж до 125 градусов Цельсия, для второго такой информации нет, но в целом изучив документацию к чипам, можно сказать, что они идентичные. В обоих случаях на плашках памяти устанавливались температурные сенсоры Microchip AT30TSE004A.

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

Тестирование

Итак, первое, с чего мы начнём - это посмотрим, что даёт отключение ECC в BIOS-е. Технически, коррекции ошибок выполняет регистровый чип, поэтому не думаю, что мы получим какую-то разницу в скорости.

Синтетика и реальная задача показали диаметрально противоположные результаты. В AIDA64 задержка чуть выросла, а в базе данных - наоборот, снизилась.

Следующим этапом включим ADR, аппаратное асинхронное обновление DRAM, - функция, предназначенная для энергонезависимой памяти NvDIMM. При её включении, контроллер памяти запускает аппаратное прерывание и автоматически обновляет страницы памяти, содержащиеся в модулях DRAM. Это позволяет поддерживать актуальность информации, хранящейся в памяти на случай отключения питания. Для обычной памяти RDRAM оно не должно иметь никакого значения.

Я бы даже сказал, что эта функция тормозит работу подсистемы памяти, так что включать её не следует.

Зеркалирование RAS Mirror - функция, предназначенная для создания избыточности на уровне банков памяти. Здесь можно провести аналогию с RAID 1 для жёстких дисков: контроллер разделяет общий объём ОЗУ на 2 канала, один из которых дублирует второй. В случае если в одном из каналов произошло повреждение данных, контроллер восстанавливает данные из второго канала. В отличии от полного зеркалирования, RAS Mirroring требует поддержки со стороны операционной системы, которой на этапе загрузки надо сообщить, какой именно объём памяти будет работать в отказоустойчивом режиме. Допустим, у вас 128 Гб памяти - вы можете включить зеркалирование адресного пространства до 4 Гб и 20 Гб адресного пространства выше 4 Гб. Таким образом, общий доступный объём памяти для операционной системы составит 113 Гб, но память, занятая ядром ОС будет защищена от невосстанавливаемых ошибок, что повысит надёжность работы сервера.

Если же не трогать настройки операционной системы, то включение RAS Mirror в BIOS ничего не даст, кроме небольшого снижения производительности.

Ещё одной разновидностью защиты от сбоя является Rank Sparing. В отличии от RAS Mirror, это полностью аппаратная функция, суть которой в том, что половина объёма памяти держатся в резерве на случай сбоя в основном канале памяти. В случае возникновения восстанавливаемой ошибки в модуле DIMM, его содержимое копируется в запасную память, а сбойный ранг или целиком DIMM модуль отключается. Для операционной системы в случае включения Rank Sparing, доступно ровно половина общего объёма ОЗУ. 

То есть, если RAS Mirror способен защитить от ошибки в памяти и не допустить зависания операционной системы, то Rank Sparing действует уже после того, как ошибка обнаружена и предотвращает использование сбойного модуля DIMM. Как видно по результатам тестов, включение этой функции негативно влияет и на синтетический тест, и на реальное приложение.

Ручное выставление чередования каналов и рангов. У меня нет никаких сомнений, что BIOS автоматически определяет оптимальный режим чередования рангов и каналов памяти для максимальной производительности. У нас в сервере установлены дв двухранговых модуля, так давайте для них зададим вручную значение 2 Channel Interleaving + 4 Rank Interleaving.

Небольшое влияние на производительность есть, но оно находится в пределах погрешности.

Первый вывод: всё уже настроено до нас

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

Что же делать?

Если нам нужно выжать максимум из подсистемы памяти, то надо заниматься не настройками BIOS-а, а настройками гипервизора, в частности - распределением ресурсов vCPU между виртуальными машинами. Рекомендованные значения не всегда окажутся лучшими с точки зрения производительности, и если физических процессорных ядер меньше, чем выделено гостевым операционным системам, то правило "больше = лучше" уже не работает, и оптимальное соотношение ресурсов устанавливается опытным путём.

Очень интересно выглядит тест AIDA64, достаточно лёгкий для сервера, - он не использует дисковую подсистему от слова "совсем". Но при конфигурации 6 vCPU для Windows 7, у нас ещё 2 vCPU выделены под FreeNAS, который находится в состоянии простоя. Тем не менее, мы видим ощутимый удар по подсистеме памяти, и это - как раз и есть плата за Overprovisioning виртуальных процессорных ядер. 99-процентная задержка в OLTP показывает, что в реальных приложениях снижение производительности так же имеет место быть.

Энергосбережение памяти

Каждый модуль памяти Transcend TS1GHR72V4H имеет встроенный датчик температуры, по которому можно отследить нагрев компонента. Основным источником тепла является, как несложно догадаться, является регистровый чип, и хотя его электрическая мощность невелика, площадь микросхемы очень маленькая, и отводить температуру следует интенсивным воздушным потоком. В BIOS-е серверных материнских плат вы можете включить энергосбережение для модулей RDIMM, но некоторые администраторы опасаются, что это приведёт к снижению производительности машины. Проверим?

Однозначно - энергосбережение памяти стоит включать, разница в нагреве модулей RDIMM в реальной задаче составляет почти 10%, а влияния на скорость меньше, чем допустимая погрешность измерений.

Несимметричный третий канал

В начале статьи было сказано, что есть дескать рекомендация ставить в сервер все модули памяти одинакового объёма, одного производителя и так далее и тому подобное. Давайте добавим к нашим двум модулям Transcend TS1GHR72V4H объёмом по 8 Гб каждый, ещё один 2-ранговый 16-гигабайтный модуль Kingston KVR21R15D4/16. Теоретически, у нас должны задействоваться 3 канала памяти, что даст значительный прирост в быстродействии системы.

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

Гарантия

Модули памяти TS1GHR72V4H поставляются с пожизненной гарантией, что неудивительно, учитывая, что здесь используются чипы DRAM поколения E-Die. Сегодня виртуализация позволяет продлить срок жизни сервера, на который со временем можно перенести менее ресурсоёмкие приложения или использовать в качестве СХД, поэтому большой срок гарантии - это наиболее существенная характеристика, на которую стоит обращать внимание при выборе компонентов.

Выводы

Любой IT-администратор знает, что с выходом DDR4, влияние скорости памяти на производительность компьютера стало очень высоким. В игровых ПК и десктопах правильным подбором модулей ОЗУ можно выжать 10-15% в играх или ресурсоёмких приложениях типа Photoshop. Но в серверах, которые не дают разгонять частоту ОЗУ, нет никакого смысла заморачиваться и пытаться повысить скорость подсистемы памяти. Даже дополнительный канал памяти даёт меньший прирост скорости, чем правильная конфигурация виртуальной машины.

Поэтому выбирая RDIMM модули для вычислительного узла, можно просто брать плашки памяти Transcend TS1GHR72V4H с пожизненной гарантией. Эти модули прекрасно себя чувствуют на частотах ниже 2400 МГц, так что можно брать в расчете на модернизацию сервера. Встроенный термосенсор определяется BIOS-ом и аппаратным мониторингом операционной системы, режим энергосбережения не сказывается на производительности машины, но стопроцентно позитивно влияет на срок службы памяти.

Мы благодарим компанию Transcend за предоставленную память.

Михаил Дегтярёв (aka LIKE OFF)
08/10.2018




ПОХОЖИЕ СТАТЬИ:

5 основных отличий рабочей станции от настольного ПК

И маленький компьютер для бухгалтера, и рендер-станцию на 6 видеокарт в понимании производителей ПК можно обозвать словом «Workstation», так что если уж руководство поставило перед вами задачу выбора «Рабочей станции», то чтобы не ...

Каковы шансы у AMD на серверном рынке? Часть 2.

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

...

Обзор системы хранения данных QSAN XN8012R: виртуализация + ZFS на борту!

Многие специалисты небольших организаций, достаточно чётко понимают плюсы ZFS и могут обосновать руководству экономию от программного сжатия LZ4 и дедупликации при покупке новой СХД, вот только недорогих решений под эту файловую си...

Решение от Tenda для бюджетного Wi-Fi в небольшом офисе

В современном мире достаточно технологий, чтобы пробросить Wi-Fi на всю территорию вашего офиса, не заморачиваясь проводами. Для таких случаев применяется сверхбюджетное оборудование от компании Tenda: не забивайте голову ненужными...

Отчёт IDC по серверному рынку за 1 квартал 2019 г: Dell, HPE падают, Inspur растёт

Весь первый квартал продажи серверов Dell и HPE в числовом выражении неуклонно падали двузначными темпами, оставляя место для роста мало известной китайской компании Inspur.

...

НА ФОРУМЕ ГОВОРЯТ



НОВЫЕ СТАТЬИ
Обзор видеокарты Palit GTX 1660 Super: тестируем новинку в задачах вычислений и машинного обучения

Новая серия видеокарт GTX 1660 Super интересна, прежде всего, памятью GDDR6, имеющей высокую пропускную способность. Это именно то, что надо для задач машинного обучения и работы в Tensorflow. Как минимум, вы можете создать...

Neffos C9 Max – недорогой смартфон с большим IPS-экраном

Мы регулярно тестируем смартфоны бренда Neffos, недавно у нас была модель X20 стоимостью 8500 рублей, а сегодня мы познакомимся с моделью чуть дешевле, за 7000 рублей – C9 Max. Это шестидюймовый смартфон с мощным...