Назад | Перейти на главную страницу

Ускорение ввода-вывода базы данных с помощью твердотельных накопителей

Каков опыт повышения производительности базы данных с использованием твердотельных накопителей (особенно для баз данных PostgreSQL), таких как HP? IO Accelerator? Вы заметили заметные улучшения?

Вот отличный пост в блоге с множеством исследований и ссылок на данные от Джеймса Гамильтона, архитектора Microsoft, с которым я работал.

SSD по сравнению с корпоративными дисками SATA и SAS

Я кратко обсудил это с Ричардом и Карлом во вторник в записи .NET Rocks. Если у вас есть узкое место ввода-вывода с рабочей нагрузкой случайного чтения, то использование твердотельных накопителей должно дать вам большой импульс, поскольку это сглаживает задержку и время поиска.

Надеюсь это поможет

[Изменить: PS, конечно, мои данные / точка зрения связаны с SQL Server, но подсистема ввода-вывода - это подсистема ввода-вывода, и результаты должны довольно хорошо транслироваться во всех основных СУБД)]

Чтобы прояснить некоторые из уже упомянутых моментов:

Диски MLC хранят больше данных на ячейку, что немного увеличивает задержку записи. Они также имеют значительно меньшее (обычно 1/10) ожидаемое количество циклов записи для дисков SLC. Что касается бизнеса, я бы держался подальше от приводов MLC.

Что касается общего срока службы диска, все твердотельные накопители используют алгоритмы выравнивания износа, чтобы сбалансировать области горячей записи. Некоторые диски сохраняют запасную область флэш-памяти для внутреннего использования (Intel X25-E делает это, а диск FusionIO позволяет вам определять зарезервированную область при разбиении диска), что увеличивает емкость записи - если у вас есть 80 ГБ флэш-памяти если размер раздела превышает 60 ГБ, накопитель прослужит дольше.

Для всех твердотельных накопителей также требуется цикл стирания перед перезаписью блока. (Блоки не стираются при удалении файла, поскольку удаление файла - это операция FS, и блочное устройство этого не видит). Это может привести к значительному снижению производительности в периоды интенсивной записи для дисков с плохими контроллерами, так как эта операция может занять некоторое время и в некоторых случаях блокировать доступ. Я полагаю, что диски Intel используют свою запасную флеш-память, чтобы ускорить это - они используют запасную флеш-память, чтобы обеспечить чистый блок для записи, затем стирают грязный блок и перемещают его в резервный пул в фоновом режиме. Существует новая команда ATA TRIM, которая реализуется на новых дисках с поддержкой Linux и Windows 7, которая позволит ОС запускать фоновое стирание всех грязных блоков, что повысит производительность.

Долгосрочное «снижение производительности» SSD обычно связано с упомянутым выше циклом стирания / записи, поэтому достойные диски и команда TRIM должны устранить это как проблему.

Если вы собираетесь приобрести твердотельные накопители для корпоративной системы, проведите исследование и приобретайте только высококачественные диски SLC корпоративного уровня. Intel X25-E (не -M, это диски для настольных ПК) и диски Fusion-IO - единственные, которые я бы рекомендовал на данном этапе.

Мы провели несколько тестов Oracle с картой Fusion IO. Это было довольно быстро.

Один из наших 35-минутных процессов сократился до 11 минут.

Это был не SSD-накопитель как таковой, а PCI-карта с памятью NAND на ней.

Тип SLC предположительно лучше, чем тип MLC.

К сожалению, поддерживается только 64-разрядная ОС, поэтому 32-разрядная версия должна быть перенесена или дождаться 32-разрядного драйвера (от Fusion IO).