Про ранги і віртуалізацію в RAM

<img src=«habrastorage.org/files/f75/a72/646/f75a72646e1049718c46f8394609ded8.jpg» alt=«image» alt text"/>
У продовження рубрики "конспект адміна" хотілося б розібратися в нюансах технологій ОЗП сучасного заліза: в регістрової пам'яті, ранги, банках пам'яті та інше. Торкнемося докладніше надійності зберігання даних у пам'яті і тих технологій, які незліченну кількість разів на дню позбавляють адміністраторів від печалей BSOD.
Старі пісні про нові типи
Сьогодні на ринку представлені, в основному, модулі з пам'яттю DDR SDRAM: DDR2, DDR3, DDR4. Різні покоління відрізняються між собою за рядом характеристик – в цілому, кожне наступне покоління "швидше, вище, сильніше", а для допитливих ось табличка:
<img src=«habrastorage.org/files/715/2ca/443/7152ca4431c24a16b0de5f6e432a6853.jpg» alt=«image» alt text"/>
Для підбору правильної пам'яті більший інтерес представляють самі модулі:
  • RDIMM — реєстрова (буферизована) пам'ять. Зручна для установки великого об'єму оперативної пам'яті в порівнянні з небуферизованными модулями. З мінусів – більш низька продуктивність;
  • UDIMM (unregistered DRAM) — нерегистровая або небуферизованная пам'ять — це пам'ять, яка не містить ніяких буферів або регістрів;
  • LRDIMM — ці модулі забезпечують більш високі швидкості при більшій місткості порівняно з двухранговыми або четырехранговыми модулями RDIMM, за рахунок використання додаткових мікросхем буфера пам'яті;
  • HDIMM (HyperCloud DIMM, HCDIMM) — модулі з віртуальними рангами, які мають велику щільність і забезпечують більш високу швидкість роботи. Наприклад, 4 фізичних рангу в таких модулях можуть бути представлені для контролера як 2 віртуальних;
  • FBDIMM — повністю буферизована DIMM з високою надійністю, швидкістю і щільністю розміщення.
Спроба одночасно використовувати ці типи може викликати самі різні сумні наслідки, аж до псування материнської плати або самої пам'яті. Але можливе використання одного типу модулів з різними характеристиками, так як вони сумісні по тактовій частоті. Правда, підсумкова частота роботи підсистеми пам'яті буде обмежена можливостями самого повільного модуля або контролера пам'яті.
Для всіх типів пам'яті SDRAM є загальний набір базових характеристик, що впливає на обсяг і продуктивність:
  • частота і режим роботи;
  • ранг;
  • таймінги.
Звичайно, відмінностей насправді більше, але для складання правильно працюючої системи можна обмежитися цими.
Частота і режим роботи
Зрозуміло, що чим вище частота, тим вище загальна продуктивність пам'яті. Але пам'ять все одно не буде працювати швидше, ніж їй дозволяє контролер на материнській платі. Крім того, всі сучасні модулі вміють працювати в багатоканальному режимі, який збільшує загальну продуктивність до чотирьох разів.
Режими роботи можна умовно розділити на чотири групи:
  • Single Mode — одноканальний або асиметричний. Включається, коли в системі встановлений тільки один модуль пам'яті або всі модулі відрізняються один від одного. Фактично, означає відсутність багатоканального доступу;
  • Dual Mode — двоканальний або симетричний. Слоти пам'яті групуються по каналах, в кожному з яких встановлюється однаковий обсяг пам'яті. Це дозволяє збільшити швидкість роботи на 5-10 % в іграх, і до 70 % у важких графічних додатках. Модулі пам'яті необхідно встановлювати парами на різні канали. Виробники материнських плат зазвичай виділяють парні слоти одним кольором;
  • Triple Mode — трьохканальний режим роботи. Модулі встановлюються групами по три штуки на кожен з трьох каналів. Аналогічно працюють і наступні режими: чотириканальні (quad-channel), восьмиканальні (8-channel memory) і т. п.
  • Flex Mode дозволяє збільшити продуктивність оперативної пам'яті при установці двох модулів різного об'єму, але з однаковою частотою.
Для максимальної швидкодії краще встановлювати однакові модулі з максимально можливою для системи частотою. При цьому використовуйте установку парами або групами — залежно від доступного багатоканального режиму роботи.
Ранги для пам'яті
Ранг (rank) — область пам'яті з декількох чіпів пам'яті в 64 біта (72 біта при наявності ECC, про що поговоримо пізніше). В залежності від конструкції модуль може містити один, два або чотири рангу.
Дізнатися цей параметр можна з маркування на модулі пам'яті. Наприклад уKingston число рангів легко обчислити по одній з трьох букв в середині маркування: S (Single — одногоранговая), D (Dual — двухранговая), Q (Quad — четырехранговая).
Приклад повної розшифровки маркування на модулях Kingston:
<img src=«habrastorage.org/files/af8/4db/8e4/af84db8e48ab4dc79723f4af15efd4a8.jpg» alt=«image» alt text"/>
Серверні материнські плати обмежені сумарним числом рангів пам'яті, з якими можуть працювати. Наприклад, якщо максимально може бути встановлено вісім рангів при вже встановлених чотирьох двухранговых модулях, то у вільні слоти пам'ять додати не вийде.
Перед покупкою модулів є сенс уточнити, які типи пам'яті підтримує процесор сервера. Например, Xeon E5/E5 v2 підтримують одне-, двох — і четырехранговые регістрові модулі DIMM (RDIMM), LRDIMM і не буферизовані ECC DIMM (ECC UDIMM) DDR3. А процесори Xeon E5 v3 підтримують одне — і двухранговые регістрові модулі DIMM, а також LRDIMM DDR4.
Трохи про нудні абревіатури таймінгів
Таймінги або латентність пам'яті (CAS Latency, CL) — величина затримки в тактах від надходження команди до її виконання. Числа таймінгів вказують параметри наступних операцій:
  • CL (CAS Latency) – час, який проходить між запитом процесора деяких даних з пам'яті і моментом видачі цих даних пам'яттю;
  • tRCD (затримка від RAS до CAS) – час, який має пройти з моменту звернення до рядка матриці (RAS) до звернення до стовпця матриці (CAS) з потрібними даними;
  • tRP (RAS Precharge) – інтервал від закриття доступу до однієї рядку матриці, і до початку доступу до іншого;
  • tRAS – пауза для повернення пам'яті в стан очікування наступного запиту;
  • CMD (Command Rate) – час від активації чіпа пам'яті до звернення до неї з першою командою.
Зрозуміло, чим менше таймінги – тим краще для швидкості. Але через низьку латентність доведеться заплатити тактовою частотою: чим нижче таймінги, тим менша допустима для пам'яті, тактова частота. Тому правильним вибором буде "золота середина".
Існують і спеціальні дорожчі модулі з позначкою "Low Latency", які можуть працювати на більш високій частоті при низьких таймінгах. При розширенні пам'яті бажано підбирати модулі з таймінгами, аналогічними вже встановленими.
RAID для оперативної пам'яті
Помилки при зберіганні даних в оперативній пам'яті неминучі. Вони класифікуються як апаратні відмови і нерегулярні помилки (збої). Пам'ять з контролем парності здатна виявити помилку, але не здатна її виправити.
Для корекції нерегулярних помилок застосовується ECC-пам'ять, яка містить додаткову мікросхему для виявлення і виправлення помилок в окремих бітах.
Метод корекції помилок працює наступним чином:
  1. При запису 64 біт даних в комірку пам'яті відбувається підрахунок контрольної суми, що становить 8 біт.
  2. Коли процесор зчитує дані, виконується розрахунок контрольної суми отриманих даних і порівняння з початковим значенням. Якщо суми не збігаються – це помилка.
  3. Якщо помилка однобитовая, то неправильний біт виправляється автоматично. Якщо двухбитовая – передається відповідне повідомлення для операційної системи.
Технологія Advanced ECC здатна виправляти многобитовые помилки в одній мікросхемі, і з нею можливе відновлення даних навіть при відмові всього модуля DRAM.
<img src=«habrastorage.org/files/911/80b/2ae/91180b2ae51d45c7a0c6750b584c1b01.jpg» alt=«image» alt text"/>
Виправлення помилок потрібно окремо включити в BIOS
Більшість серверних модулів пам'яті є регістровими (буферизованными) – вони містять регістри контролю передачі даних.
Регістри також дозволяють встановлювати великі обсяги пам'яті, але з-за них утворюються додаткові затримки в роботі. Справа в тому, що кожне читання і запис буферизуються у регістрі на один такт, перш ніж потраплять до шини пам'яті, чіп DRAM, тому реєстрова пам'ять виявляється повільніше не реєстрової на один такт.
<img src=«habrastorage.org/files/fd0/c67/2a1/fd0c672a1ab4402296afa40483f9d649.jpg» alt=«image» alt text"/>
Джерело nix.ru
Всі реєстрові модулі і пам'ять з повною буферизацією також підтримують ECC, а ось зворотне не завжди справедливо. З міркувань надійності для сервера краще використовувати реєстрову пам'ять.
Багатопроцесорні системи і пам'ять
Для правильної та швидкої роботи декількох процесорів, потрібно кожній з них виділити свій банк пам'яті для доступу "безпосередньо". Про організацію цих банків у конкретному сервері краще почитати в документації, але загальне правило таке: пам'ять розподіляємо між банками порівну і кожен ставимо модулі одного типу.
Якщо довелося поставити у сервер модулі з меншою частотою, ніж потрібно материнській платі – потрібно включити в BIOS додаткові цикли очікування при роботі процесора з пам'яттю.
Для автоматичного обліку всіх правил і рекомендацій по встановленню модулів можна використовувати спеціальні утиліти від вендора. Наприклад, у HP є Online DDR4 (DDR3) Memory Configuration Tool.
Разом
Замість просторового висновку наведу загальні рекомендації по вибору пам'яті:
  • Для багатопроцесорних серверів HP рекомендується використовувати тільки реєстрову пам'ять c функцією корекції помилок (ECC RDIMM), а для однопроцесорних — небуферизированную з ECC (UDIMM). Планки UDIMM для серверів HP краще вибирати від цього ж виробника, щоб уникнути мимовільних перезавантажень.
  • У випадку з RDIMM краще вибирати одне — і двухранговые модулі (1rx4, 2rx4). Для оптимальної продуктивності використовуйте двухранговые модулі пам'яті в конфігураціях 1 або 2 DIMM на канал. Створення конфігурації з 3 DIMM з встановленням модулів у третій банк пам'яті значно знижує продуктивність.
  • З тих же міркувань максимальної швидкості бажано уникати використання четырехранговой пам'яті RDIMM, оскільки вона знижує частоту до 1066 МГц у конфігураціях з одним модулем на канал, і до 800 МГц – в конфігураціях з двома модулями на канал. Справедливо для серверів на базі Intel Xeon 5600 та Xeon E5/E5 v2.
Список короткий, але тут все найнеобхідніше і найменш очевидна. Звичайно ж, старий як світ принцип RTFM ніхто не відміняв.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.