IT and something more than
Россия, Энгельс
Демократическая 1
E-mail:
[email protected]
Рабочие часы
Технологии не стоят на месте. То, что сегодня является авангардом современной электроники, лет через двадцать будет считаться унылым ископаемым, вызывающим жалость и ностальгические воспоминания о молодости. Мы с вами уже давно с нетерпением ждём, когда же наконец твердотельные накопители вытеснят с рынка эти шумные, медленные и такие хрупкие HDD. Но радостный момент всё не наступает. И причина этому – всё ещё высокая цена. Но не за горами уже тот момент, когда 450ГБ SAS 10K будет стоить столько же, сколько и 480ГБ RI SSD, что приведёт к ключевым изменениям в расстановке сил по крайней мере в серверном сегменте.
А пока этот момент не настал, предлагаю подытожить, что же нового в SSD-технологиях для серверов в прошлом году внедряла Hewlett Packard Enterprise.
Новые названия – старая система координат
Все мы были удивлены прошлой весной, когда вместо привычного Value Endurance в описании диска увидели непонятный Read Intensive. И это касается не только Hewlett Packard Enterprise, но и остальных вендоров. Оказалось, новые описания точно так же связаны с пресловутой Endurance (износостойкость), только теперь четыре разновидности превратились в три. Ниже приведена таблица соответствия.
Уровень износостойкости при этом обозначает, сколько раз в день вы можете полностью перезаписывать все данные на диске, если хотите, чтобы ваш SSD проработал пять лет. Ниже приведена наглядная таблица, где видна разница между разными типами диска.
| Write Intensive | Mixed Use | Read Intensive | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Количество циклов перезаписи в день | >=10 | 1-10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Артикул | Наименование |
| 785233-B21 | HP 64GB Value Endurance Solid State M.2 Enablement Kit (for BL460c Gen9) |
| 775588-B21 | HP 64GB Dual Value Endurance Solid State M.2 Enablement Kit (for BL460c Gen9) |
| 846495-B21 | HPE 120GB Read Intensive-1 Solid State Drive M.2 Kit for ProLiant Blades |
| 846497-B21 | HPE Dual 120GB Read Intensive-1 Solid State Drive M.2 Kit for ProLiant Blades |
| 788028-B21 | HP 120GB Read Intensive Solid State M.2 Enablement Kit (for ProLiant ML/DL Gen9 Servers) |
| 777894-B21 | HP 120GB Dual Read Intensive Solid State M.2 Enablement Kit (for ProLiant ML/DL Gen9 Servers) |
| 835563-B21 | HPE 340GB Read Intensive-2 Solid State M.2 Enablement Kit for ProLiant ML/DL Servers |
| 835565-B21 | HPE Dual 340GB Read Intensive-2 Solid State M.2 Enablement Kit for ProLiant ML/DL Servers |
NVMe (Non-Volatile Memory)
«NVM» обозначает энергонезависимую память, в качестве которой в SSD повсеместно используется флеш-память типа NAND. Логический интерфейс NVM Express был разработан с нуля, основные цели — получение низких задержек и эффективное использование высокого параллелизма твердотельных накопителей за счёт применения нового набора команд и механизма обработки очередей, оптимизированного для работы с современными многоядерными процессорами.
В серверах Hewlett Packard Enterprise для подключения накопителей NVMe необходима специальная дисковая корзина, бэкплейн которой подключается напрямую к PCI Express, а не к RAID-контроллеру. Например, для сервера DL380 Gen9 существует специальная корзина 774741-B21 на шесть NVMe дисков, при этом корзина монтируется только во второй отсек (который посередине), требует дополнительного охлаждения в виде набора 719079-B21, а PCIe карта подключается только в слот 2 или слот 5. При этом максимальная производительность возможна только со слота 5, а для его наличия необходим дополнительный райзер 719073-B21, а для его работы необходим второй процессор. Достаточно запутанная схема, не правда ли? Подобные тонкости вас ждут и на других совместимых моделях серверов: DL360 Gen9, DL560 Gen9 и DL580 Gen9.
С другой стороны, данное решение предлагает беспрецедентную производительность. Представьте себе: если установить на NVMe диски базу данных, то получите практически мгновенный доступ для тысяч сотрудников к ней.
| Артикул | Наименование |
| Корзины | |
| 764628-B21 | HP DL360 Gen9 NVMe 2 Solid State Drive Express Bay Enablement Kit |
| 774741-B21 | HP DL380 Gen9 NVMe 6 Solid State Drive Express Bay Enablement Kit |
| 774743-B21 | HP DL560 Gen9 NVMe 6 Solid State Drive Express Bay Enablement Kit |
| 788359-B21 | HP DL580 Gen9 NVMe 5 Solid State Drive Express Bay Enablement Kit |
| NVMe диски | |
| 764904-B21 | HP 400GB NVMe PCIe Read Intensive SFF 2.5-in SC2 3yr Wty Solid State Drive |
| 764906-B21 | HP 1.2TB NVMe PCIe Read Intensive SFF 2.5-in SC2 3yr Wty Solid State Drive |
| 764908-B21 | HP 2TB NVMe PCIe Read Intensive SFF 2.5-in SC2 3yr Wty Solid State Drive (только для DL380 Gen9) |
| 765034-B21 | HP 400GB NVMe PCIe Mixed Use SFF 2.5-in SC2 3yr Wty Solid State Drive |
| 765036-B21 | HP 800GB NVMe PCIe Mixed Use SFF 2.5-in SC2 3yr Wty Solid State Drive |
| 765038-B21 | HP 1.6TB NVMe PCIe Mixed Use SFF 2.5-in SC2 3yr Wty Solid State Drive |
| 765044-B21 | HP 2TB NVMe PCIe Mixed Use SFF 2.5-in SC2 3yr Wty Solid State Drive (только для DL380 Gen9) |
| 736936-B21 | HP 400GB NVMe PCIe Write Intensive SFF 2.5-in SC2 3yr Wty Solid State Drive |
| 736939-B21 | HP 800GB NVMe PCIe Write Intensive SFF 2.5-in SC2 3yr Wty Solid State Drive |
| 764892-B21 | HP 1.6TB NVMe PCIe Write Intensive SFF 2.5-in SC2 3yr Wty Solid State Drive |
| 764894-B21 | HP 2TB NVMe PCIe Write Intensive SFF 2.5-in SC2 3yr Wty Solid State Drive (только для DL380 Gen9) |
Техническая поддержка по данному направлению:
Поднимаем производительность SSD c колен, куда нажимать и зачем
Семь бед – один Deallocate
Многие слышали про команду TRIM. Те самые заветные четыре буквы, которые вызывают множество вопросов у рядового пользователя. TRIM – одна из команд ATA, отправляемая операционной системой с целью уведомления твердотельного накопителя о том, что данные с диска были удалены пользователем и занятые физические ячейки можно освободить. Стоит отдельно сказать про SSD с интерфейсом NVMe — эти диски обладают другим набором команд для работы, но аналог ATA команды TRIM там тоже существует — называется она Deallocate и, соответственно, является идентичной. Поэтому, далее при упоминании TRIM мы будем подразумевать и Deallocate тоже. К чему речь обо всём этом? Как раз именно проблемы с выполнением данных команд в подавляющем большинстве случаев и являются причиной низкой производительности накопителей. Конечно, другие проблемы мы тоже не оставим в стороне, но всему своё время.
В тот момент, когда вы удаляете данные с вашего накопителя, по факту удаляется запись в главной таблице файловой системы. То есть, сами данные остаются на месте, но область помечена на удаление. Сама «зачистка ячеек» происходит в определенное время, например, в момент простоя накопителя, пока вы отошли за чаем. Таким образом производители добиваются снижения износа памяти и увеличивают производительность своих накопителей в определённых сценариях. Именно очисткой этих ячеек и занимается контроллер, выполняя команду TRIM. К слову, после её выполнения, восстановление данных практически невозможно.
Совсем недавно мы рассказывали про технологию Secure Erase, которая схожа с TRIM, но затрагивает не только основные ячейки, но и служебные области, возвращая накопитель в полностью исходное состояние. Напомним, что Secure Erase можно выполнить на накопителе только без файловой системы и при определённых условиях. А технология TRIM как раз и требует наличие операционной системы со всеми вытекающими требованиями.
Объясним на пальцах, как раз их 20…
Когда вы создаёте файл, операционная система отправляет команду записи по адресу определенного логического блока. Когда вы удаляете данные с диска, эти блоки помечаются свободными.
При этом, данные останутся на диске пока контроллер не захочет их перезаписать.
Перед нами часть памяти, в которой находятся файлы А и В разных размеров, занимающих, соответственно, разное количество блоков. Сначала мы удаляем файл В, а затем записываем файл С на наш диск. Для наглядного представления ситуации, когда TRIM не работает, добавим простую иллюстрацию, в которой обозначены следующие состояния:
А теперь что происходит, если TRIM работает. Снова по этапам:
То есть, логика работы совсем другая. Повторим пройденное — в момент удаления нами файла B отправляется команда TRIM, и, поскольку в SSD достаточно часто простаивает, он с радостью удаляет ненужные блоки практически сразу. И в момент того, как мы хотим записать файл С, то он сразу же записывается на диск, а не ждёт пока для него очистят блоки с мусором.
TRIM, а есть ли ты вообще? И, если есть, то работаешь ли?
Узнать, поддерживает ли SSD команду TRIM можно при помощи достаточно большого количества свободно распространяемого программного обеспечения. Возьмём, к примеру, CrystalDiskInfo:
Но демонстрация поддержки – не есть работа. Для начала пройдёмся по ситуациям, когда TRIM надо запускать хитрым способом или данная команда не работает вовсе. Конечно, со временем ситуация может поменяться, но пока дела обстоят следующим образом:
Для начала – попробуем это узнать прямо у операционной системы. В запущенной от имени Администратора командной строке или PowerShell вводим команду «fsutil behavior query disabledeletenotify» без кавычек и смотрим на результат. Если в выводе значатся «0», то это хорошо – TRIM работает. Если «1», то функционал TRIM недоступен. Всё верно: ноль – включённая команда, 1 – выключенная команда.
К примеру, можно использовать простую в использовании программу trimcheck от Владимира Пантелеева. Программа работает в два этапа, между которыми может пройти как несколько секунд, так и десятки минут – всё зависит от специфики работы конкретной модели SSD. Утилита записывает данные на диск и отмечает адреса виртуальных блоков, в которых они размещены. Эти адреса она сохраняет в JSON-файл в своей папке, после чего удаляет данные, что порождает отправку команды TRIM. Утилита смотрит, находятся ли записанные ранее данные по сохраненным адресам. Их отсутствие означает, что контроллер принял команды TRIM к сведению и удалил данные. Если TRIM работает, то сообщение будет соответствующим:
В противном случае надпись будет гласить TRIM appears to be NOT WORKING. Собственно, если вы получили сообщение о неработоспособности, то выполните в запущенной от имени Администратора командной строке или PowerShell команду «fsutil behavior set disabledeletenotify 0» без кавычек. Функция TRIM, если соблюдены все условия (поддерживаемая ОС, реализация в SSD и т.д.), должна включиться и работать. Если этого не произошло, а все требования выполнены, то придётся подумать о замене накопителя.
Проблемы, проблемы вместо обеда
Самая распространённая проблема – наследование. Само собой, речь идёт про Windows до версии 8. Например, когда пользователь ставит в старые системы SSD или переходят с HDD на SSD без изменения настроек BIOS (если это необходимо) или вообще путём клонирования разделов или диска целиком. Напоминаем, что TRIM доступен только в режиме AHCI. К примеру, у многих материнские платы могут работать в двух режимах AHCI и IDE. Соответственно, если SSD подключён к такой плате именно в режиме IDE, то TRIM работать не будет. Просто наличие режима AHCI не решает проблему – Windows установит драйверы согласно выбранному IDE. Казалось бы, ситуация может встречаться редко, но на самом деле – нет. Если с настройками BIOS вы не дружите, то хотя бы проверить режим работы надо. Сделать это можно в диспетчере устройств в разделе «Контроллеры IDE ATA/ATAPI»:
Помните, что просто так после установки Windows переключить режим работы с IDE на AHCI (и обратно) без дополнительных манипуляций не выйдет – операционная система попросту не загрузится. Решения этой проблемы существуют (даже от самой Microsoft), но рекомендовать их не стоит. Требуется изменение параметров реестра, добавление нужного драйвера и готовность к переустановке ОС в случае неудачи.
Вспомним ещё про Secure Erase. Восстановить производительность этой функцией можно. Только вот вряд ли надолго. Особенно, если вы быстро забиваете свой накопитель новыми данными. Так что как временное решение – пойдёт, но оно всегда будет оставаться временным.
Ещё добавим про SLC-кеширование, которое достаточно часто используется у многих SSD-накопителей без привязки к интерфейсу. Невысокая скорость записи большого количества файлов (или больших файлов) после определённого порога не проблема, а особенность работы. Суть кеширования состоит в том, что сначала записываемые данные попадают в специальную область памяти, а уже затем записываются в основную память в фоновом режиме. Когда выделенная высокоскоростная память заканчивается, то данные начинают записываться непосредственно в память на заметно сниженной скорости – от 50 до 150 МБ/с. Это совершенно нормальный режим работы накопителей с SLC-кешем, поэтому здесь ничего сделать невозможно от слова совсем.
Что хорошо, а что плохо?
Если функция TRIM работала с самого начала, то сама по себе никуда она деться не может. Но совсем другое дело, если вы увлекаетесь разного рода твикерами, сторонними драйверами или прошивками, а также сборками операционных систем, якобы улучшенных. Все эти программы и сборки могут только навредить, если речь идёт о Windows 8 и, тем более Windows 10 – в этих ОС всё продумано как надо. В «семёрке» они могут чем-то помочь, но это скорее исключение из множества проблем, которые они могут принести.
Отдельно надо сказать несколько слов про NVMe накопители и драйверы для них. Приобретая высокоскоростной SSD, в ваших глазах должны отражаться полученные в бенчмарках заявленные скоростные показатели. Часто это так и есть, например – с накопителями Kingston. Установил и забыл, как говорится, наслаждаясь его высокими скоростями. Но с SSD других производителей это может быть не всегда так, что, очевидно, расстроит любого. Тут уже не отсутствие Deallocate является причиной недостаточного быстродействия, а стандартный NVMe драйвер. Да-да, при покупке NVMe SSD некоторых производителей обязательно приходится отправляться на сайт его сайт и скачивать соответствующий драйвер – разница со стандартным может превышать двукратную!
Вот теперь, вроде, всё.
Как оказалось – не всё так страшно, как выглядело не первый взгляд. От пользователя требуется выполнение всего нескольких рекомендаций, чтобы система работала корректно и радовала производительностью твердотельного накопителя долгое время. Повторим их напоследок – чистый дистрибутив операционной системы, актуальные драйверы и прошивки от производителя, а также отсутствие сторонних «настройщиков» системы, которые, по заверению их разработчиков, увеличивают производительность на 146%. Если проблема не аппаратная, то никаких нареканий к диску у вас не будет в течение всего срока жизни вашей системы. Так что никакого длинного заключения-словоблудства не будет – всё, что надо было сказать, уже сказано. Ёмких вам SSD, их высоких скоростей и стабильной работы!
Для получения дополнительной информации о продуктах HyperX и Kingston обращайтесь на сайты компаний.
Ресурс серверных SSD
Детская загадка: «Три, три, три, что в результате? — Дырка!» — это про SSD. Жизненный цикл флэш-памяти определяется количеством циклов перезаписи P/E (program/erase), на которые она рассчитана.
Владельцам ПК нет особых причин беспокоиться за раннюю выработку ресурса SSD — в персональных приложениях не те режимы работы накопителей. В серверах все иначе. Их пользователи и приложения порождают интенсивные потоки запросов к дискам. Имеют значение шаблон нагрузки (load pattern) и программное окружение. Например, для баз данных на физическом сервере типичным считается соотношение 70/30 (%) операций чтения/записи со случайным доступом к дискам. В виртуальном сервере пропорция может перевернуться с ног на голову, например, в 20/80. Вообще говоря, блендер виртуализации перемалывает любые дисковые запросы в рандомную крупу — потому SSD и вытеснили HDD в критичных к производительности задачах. К сожалению, выносливость флэш-памяти ограничена. Ожидаемая продолжительность жизни SSD, с его типом ячеек, контроллером, прошивками, процедурами и внутренними счетчиками, зависит от числа циклов P/E (program/erase — последовательностей записи, стирания и повторной записи), которые диск способен перенести.
Ячейки памяти NAND SSD объединены в страницы, те — в блоки. Работать с каждой ячейкой отдельно нельзя, данные стираются целыми блоками. По мере заполнения диска пустых страниц и блоков под запись становится все меньше. В результате, команда записи, полученная контроллером SSD, приводит к нескольким циклам P/E: данные блока надо записать в новые ячейки, а оставшийся «мусор» удалить, вернув таким образом блок в свободное адресное поле. Объем данных, записанных на носитель, всегда больше, чем их фактическое обновление, которое ОС передает контроллеру SSD. Этот эффект усиления записи (write amplification) ускоряет износ ячеек. А чем полнее диск — тем меньше остается пространства для маневра, больше переносов данных и медленнее запись.
Необратимость износа ячеек флэш-памяти NAND — еще не приговор для SSD. Сколько протянет диск, зависит от модели нагрузок. Это обстоятельство вносит некоторую неопределенность в проектирование подсистем хранения и удерживает от слепого выбора. Количественная оценка ресурса накопителей (endurance) в определенном шаблоне работы — такой же важный параметр для серверных SSD, как емкость, производительность и цена за гигабайт.
В серверные SSD встроены технологии, отодвигающие их смертный час: оптимизация сбора мусора (garbage collection), выравнивание износа (wear leveling), резервирование ячеек (overprovisioning). Цена вопроса разная, в разных классах SSD. На то у них паспортный параметр endurance, чтобы пользователь заранее сверял нагрузки своих приложений с предельными возможностями SSD. В спецификациях всегда приводится полный ресурс записи в терабайтах (TBW, terabyte written, при пятилетнем сроке службы) или допустимый объем суточной записи относительно емкости самого диска (DWPD, Drive Writes Per Day).
В описаниях накопителей встречаются фразы «Read intensive» или «Write intensive». Это незамысловатый способ их позиционирования, ролевая подача доходчивым языком. У дисков, предназначенных под интенсивную запись, показатели TBW/DWPD должны быть намного выше. Насколько именно — зависит от шаблона нагрузок. А вот понятия «Write unlimited» для SSD не существует — ввиду ограничений перезаписи любых ячеек NAND. Допустимо говорить о малой вероятности выработки ресурса в заданном наборе приложений, но «вечных игл для примуса» нет.
С развитием гиперконвергентных систем (вычисления + хранение) область применения серверных SSD расширяется. Строя инфраструктуру на типовых серверах, пользователь стоит перед соблазном перейти на недорогие носители (мол, все данные все равно многократно дублированы). Теперь уже разработчики ПО, а не поставщики серверов, объясняют, как должна быть устроена дисковая подсистема производительного сервера, предостерегают не использовать бытовые SSD, и прямо указывают в аппаратных требованиях, например, такое: «Ensure SSDs used for cache have high write endurance. We recommend 5+ drive-writes-per-day (DWPD)».
Особенно тщательно к аппаратным рекомендациям подходит VMware, пресекающая самодеятельность за пределами списков совместимости (HCL). Валидируемые компоненты сортируются по целевому назначению, типу подключения и уровню нагрузок. В частности, SSD делятся на классы: от Endurance Class A >=365 TBW до Endurance Class D >=7300 TBW. Застройщик будущей серверной инфраструктуры анализирует списки компонентов и получает представление о коридоре возможностей. Можно сделать по-своему — но оно и работать будет непредсказуемо, если вообще будет.
Оценки дисковой нагрузки типичных серверных приложений известны:
Для предсказания срока службы SSD под разными профилями нагрузки есть интеловский калькулятор. Разумеется, прогнозы там рассчитываются для интеловских серверных продуктовых линеек, но их можно перенести на диски других производителей, при сходных паспортных значениях DWPD.
Напоследок, примеры производителей и серий их SSD, с сортировкой по интерфейсу подключения и заявленному ресурсу перезаписи ячеек.
Влияние ресурса перезаписи на выбор SSD
Выбор SSD для клиент-серверного варианта 1С для коллективной работы отличается от покупки SSD для своего ноутбука.
Значимым требованием к диску является в том числе такой фактор, как ресурс перезаписи.
Быстрее всего на класс устройства можно сориентироваться по показателям DWPD (или “полных перезаписей устройства в день в течение гарантийного срока”) и/или TBW/PBW (или “общий объём данных, который за время гарантийного срока можно записать на устройство»), измеряется в терабайтах для TBW и петабайтах для PBW. Чем выше/больше “полных перезаписей устройства в день” DWPD — тем обычно выше класс устройства.
Разные производители по-разному трактуют классы промышленных SSD, но в целом можно привести такой пример разделения:
Косвенно класс устройства можно понять, сопоставляя паспортные IOPS на чтение и запись. Чем ниже показатель записи по отношению к чтению — тем вероятно ниже и класс устройства. Например, у крайне производительных intel Optane первого поколения (P4800X) с DWPD 30-60 соотношение примерно 550K/550K, у “средних” P4610 с DWPD 3 соотношение 638K/222K, а у совсем “слабых” P4101 с DWPD на уровне 0.1-0.3 — соотношение 275K/16K у старшей модели в линейке и 60K/2.2K у младшей.
Очень важно понимать, что показатель износостойкости говорит не только о том, сколько всего данных за гарантийный срок можно будет записать на носитель, но и косвенно говорит о том, какой объём данных в среднем в сутки можно на этот носитель записать без существенного ухудшения производительности (то есть деградации производительности, о чём мы подробнее расскажем в одной из следующих статей). Закончиться ресурс накопителя может ещё только через годы, а деградация производительности может себя проявить прямо с первого дня активной эксплуатации.
Оценка текущей интенсивности записи на диск
Для понимания, какой вам нужен диск, наиболее достоверным действием будет замер ваших текущих нагрузок на диск: какова реальная интенсивность записи на диск.
Нюанс тут заключается в том, что СУБД оценивает только “свою” запись (то есть не видит любые другие объёмы, записанные другими службами), и полученные цифры говорят об объемах чтения и записи только с момента старта службы MS SQL.
Обратите внимание, что если у вас будут и другие источники значимой интенсивности записи, то ниже показанный способ будет недостаточным. Если вы пишете например в виртуалке на виртуальный диск, расположенный на общем внешнем хранилище дисков, то реальную нагрузку на диски мы можем и не измерить правильно в таком подходе.
Данные с СУБД можно получать сразу в сгруппированном по дискам виде, и сразу с пересчётом в гигабайты, например таким запросом:
▶ Нажмите чтобы посмотреть текст запроса
SELECT SUBSTRING(saf.physical_name, 1, 1) AS [Диск]
, SUM(vfs.num_of_bytes_read/1024/1024/1024) AS [Прочитано (Гб)]
, SUM(vfs.num_of_bytes_written/1024/1024/1024) AS [Записано (Гб)]
FROM sys.master_files AS saf
JOIN sys.dm_io_virtual_file_stats(NULL,NULL) AS vfs
ON vfs.database_id = saf.database_id
AND vfs.file_id = saf.file_id
GROUP BY SUBSTRING(saf.physical_name, 1, 1)
например, получится вот такой результат:
При этом, поскольку это данные с момента старта службы — будет полезно сразу оценить и время, за которое эти данные накоплены, например таким запросом.
▶ Нажмите чтобы посмотреть текст запроса
DECLARE @Days int
DECLARE @Hours int
DECLARE @Mins int
DECLARE @Secs int
SET @Secs = (
SELECT datediff(ss, login_time, getdate())
FROM master..sysprocesses
WHERE spid = 1
)
SET @Days = ((@Secs/60)/60)/24
SET @Hours = ((@Secs/60)/60)%24
SET @Mins = (@Secs/60)%60
SET @Secs = @Secs%60
PRINT ‘SQL server on »’ + @@SERVERNAME + »’ has been up for: ‘ +
convert(varchar(20), @Days) + ‘ day(s), ‘ +
convert(varchar(2), @Hours) + ‘ hour(s), ‘ +
convert(varchar(2), @Mins) + ‘ minute(s), ‘ +
convert(varchar(2), @Secs) + ‘ second(s).’
ВАЖНО. Если с момента рестарта пройдет меньше суток, то надо как минимум подождать пока набегут сутки и повторно посчитать.
ВАЖНО. Интенсивность записи в разные дни может быть сильно разная. Достаточно репрезентативным показательным интервалом времени аптайма сервера для оценки можно считать квартал. Либо генерируете в исследуемом небольшом период пик нагрузки.
ВАЖНО. Любая запись на диски, сделанная НЕ средствами СУБД, например полных бэкапов внешними средствами (например Акронис Бэкап) в замер субд не попадет.
Как видно на снимке, служба сервера запущена 14 дней 19 часов (или 355 часов) назад, и статистика накоплена именно за это время.
Дальше можно просто вычислить средний объём записи в сутки.
Например, в примере на диск P за это время записано 5142 гигабайта, то есть за неполных 15 дней выходит в среднем примерно по 350 гигабайт в сутки. Как получена эта величина: 5142 записанных гигабайта дел им на 355 часов сбора статистики и умножаем на 24 часа в сутках.
Таким образом в текущем примере интенсивность записи — 350 гигабайт в сутки.
Теперь чтобы подобрать SSD, надо посмотреть на подходящий размер и соответствующих “полных перезаписей устройства в день” DWPD.
Если Вы берете диск с 0,1 DWPD intel P4101 емкостью 512 Gb, то 512 * 0,1 = 51,2 Гб/сутки
Кроме того, в реальной жизни не только SQL Server генерирует нагрузку, так что надо еще делать поправочный коэф.-т на другую активность.
Требуемый нам диск должен перезаписывать более 400 Гигабайт. Понятно, что кроме этого надо смотреть на требуемый реальный размер диска. Вдруг у нас база размером в терабайт. Рассмотрим на примере диска intel p4610 размером 1,6 Тб
Рейтинг износоустойчивости (операции записи за все время эксплуатации): 12.25PBW — это означает гарантированную возможность записать 12.25 петабайта за гарантийный срок, который составляет: Гарантийный период: 5 yrs, то есть 5 лет.
Пересчитываем условно рейтинг износоустойчивости в расчёте “на 1 день”: 12.25 петабайт = 12250 терабайт, делим на (5 лет Х на 365 дней), получаем 6.7 терабайта в день, теперь делим эту величину на объём диска и получаем примерно 4 объёма полной перезаписи в день (то есть DWPD).
Сравниваем 6.7 Тб и 350 Гб реальной нагрузки (лучше с некоторым поправочным коэф.-том) — получаем приемлемый запас по ресурсу перезаписи, который гарантированно справится с текущей нагрузкой.
При этом надо понимать, что статистика представляет собой “среднее по больнице”, в периоды высокой активности пользователей запись может быть в несколько раз больше, или во время ночных регламентов на СУБД, а в другие периоды бывает поспокойней.
Наиболее представительной данная информация будет например, если скриптом получать в некую табличку результат запросов по объёму записи каждый час в течение скажем нескольких дней высокой загрузки, а затем определить интенсивность записи именно в пиковые периоды, когда это могло мешать производительности бизнеса. Например, ночью нагрузка на диски будет большая, но в это время никто в базе не работает, и диски к началу рабочего дня уже могли успеть “прийти в себя”. Но может оказаться и так, что в течение нескольких часов нагрузка на диски по записи существенно превышает паспортную, и производительность записи заметно ухудшается.
Бонус: если используется платный сервис http://gilev.ru/sqlsize
Если на сервере СУБД используется платный сервис http://gilev.ru/sqlsize, то можно сразу воспользоваться уже собранными там данными.
Поскольку данные статистики использования дисков накапливаются с момента старта службы — будет полезно сразу оценить время, за которое эти данные накоплены, в сервисе SQLSize это пункт “Параметры СУБД — Параметры SQL сервер”, пункты “Аптайм (часов)” и “Аптайм (дней)”, например мы там увидим 297 часов или 13 дней.
Далее смотрим статистику использования дисковой подсистемы в пункте “Нагрузка на сервер СУБД — Диски — Интенсивность использования”.
Надпись справа от названия отчёта информирует о том, когда именно была получена эта информация. На данном снимке нас интересует колонка “Записано, МБ”. Если просуммировать все показанные на снимке значения из этой колонки — получается примерно 4540 гигабайт записи на диск C.
Дальше можно просто вычислить средний объём записи в сутки.
В данном примере получается в среднем примерно по 350 гигабайт в сутки. При этом надо понимать, что статистика представляет собой “среднее по больнице”, ведь наверняка в периоды высокой активности пользователей запись существенно больше, или во время ночных регламентов на СУБД, а в другие периоды бывает поспокойней. Наиболее представительной данная информация будет например, если скриптом получать в некую табличку результат запросов по объёму записи каждый час в течение скажем нескольких дней высокой загрузки, а затем определить интенсивность запись именно в пиковые периоды, когда это могло мешать производительности бизнеса. Например, ночью нагрузка на диски будет большая, но в это время никто в базе не работает, и диски к началу рабочего дня уже могли успеть “прийти в себя”. Но может оказаться и так, что в течение нескольких часов нагрузка на диски по записи существенно превышает паспортную, и производительность записи заметно ухудшается (о чём нам как бы намекает из вышеприведённого снимка колонка “Отклик на запись”, где среднее сглаженное время отклика одной операции записи на разных файлах плавает от 13 до 27 миллисекунд, что было когда-то приемлемо для механических дисков, но это много для SSD, особенно с учётом того, что это той же “среднее по больнице” за 13 дней).
Дальше будет полезно выяснить, какая же модель накопителей используется в данном сервере, после этого сравнить «расчётные по DWPD» объёмы записи с фактическими.
Заметим, что производитель решил умолчать в данной спецификации о таких важных параметрах, как DWPD (гарантийный показатель количества перезаписей в день) и гарантийный ресурс устройства на запись. Практически единственным намёком на класс устройства в данной спецификации может служить соотношение IOPS на чтение и запись, а именно 275К против 16К.
Однако заметим, что если поискать данное устройство на сайте intel https://www.intel.ru/content/www/ru/ru/products/memory-storage/solid-state-drives/data-center-ssds.html — мы его найдём в разделе “Твердотельные накопители Intel® серии D1:
Оптимальная надежность и производительность бюджетного уровня для рабочих нагрузок с большим количеством операций чтения“. На странице описания собственно модели P4101 https://www.intel.ru/content/www/ru/ru/products/memory-storage/solid-state-drives/data-center-ssds/d1-series/dc-p4101-series.html написано: “Этот твердотельный накопитель с 64-слойной технологией Intel® TLC PCIe* NAND в форм-факторе M.2 разработан для моделей использования в качестве загрузочного диска и рабочих нагрузок с небольшим количеством операций чтения, таких как индексирование поисковых запросов и кэширование на периферии.”. Это такой намёк от intel, что не надо подобный диск использовать под активно записываемые базы данных 🙂
Естественно любой продавец будет продавать диски подешевле, так как при этом он будет делать Вам более выгодное предложение нежели конкурент. В его задачу будет входить убедить Вас всеми правдами и неправдами — у нас есть «аналог», но только подешевле… При этом смотреть Вашу реальную интенсивность он вряд ли будет. Реальная судьба систем продавцов не интересует, даже если они Вам говорят обратное — они не могут быть объективны и не несут финансовой ответственности за ситуации, когда диск не решает возложенные на него задачи.
Понятно, что это всего лишь один из факторов, который надо учитывать при покупке SSD. Но его недооценка частенько приводит к очень неприятным последствиям.









