Кто-нибудь знает какие-либо сравнения, которые показывают, как твердотельные накопители сравниваются с жесткими дисками по производительности в среде SQL?
Я пытаюсь понять, какое повышение производительности можно получить, перейдя на SSD.
Если вы выполняете большое количество небольших операций чтения, SSD много Быстрее. Вот одно из немногих сравнений производительности базы данных. Посмотрите на нижний график для краткого ответа.
Что касается чистой производительности, твердотельные накопители предлагают множество преимуществ, главное из которых заключается в том, что время поиска фактически равно 0, что означает, что все небольшие попадания в HD, которые делает база данных, обрабатываются намного быстрее.
Однако есть некоторые проблемы с текущим поколением в отношении времени жизни записи, поскольку после стольких записей блок больше не может использоваться. Они могут записать довольно много, я полагаю, по данным разведки, около петабайта байтов для их 32-гигабайтных накопителей, прежде чем они начнут достигать опасного уровня программного обеспечения ... со временем ситуация только улучшится.
Для лучшего понимания Зачем они работают намного лучше, прочтите эту статью от Anandtech о твердотельных накопителях. Он подробно описывает приводы, что хорошо, а что нет, а также тонкости их работы. Вверху также есть ссылка на следующие статьи, посвященные последней серии приводов.
Вы можете установить операционную систему и программное обеспечение SQL на стандартный жесткий диск, а затем добавить SSD, чтобы просто хранить файлы базы данных. Это должно ограничить количество операций записи, выполняемых SSD-диском, а также максимально увеличить объем доступного для ваших данных места на диске.
Я рекомендую вам прочитать следующую статью Миграция серверного хранилища на твердотельные накопители: анализ компромиссов, это довольно приятное чтение.
На мой взгляд, преимуществ от SDD в серверной области пока недостаточно. Возможно, через несколько лет их стоит покупать, но сейчас HDD - лучший выбор.
Ответ Ника Крейвера хорош; Я просто хочу добавить к твердотельным накопителям два предостережения, о которых, я думаю, люди должны знать:
а) Проблемы SSD с износом записи никуда не исчезнут, они фундаментальны для использовались флэш-ячейки. Ячейки SLC имеют гораздо более высокую стойкость к записи, чем MLC, поэтому OP должен рассмотреть возможность получения диска SLC через MLC. Конечно, SLC также значительно дороже.
б) Текущие диски кэшируют данные на диске перед их записью. Таким образом, есть риск потери данных при отключении электроэнергии во время операции записи. Это то, что вы можете обойти, но кеш нужен как для повышения производительности, так и для уменьшения усиления записи.
ИМХО ни одно из вышеперечисленных не является нарушителем сделки. Я был бы готов развернуть твердотельные накопители в производственной среде сегодня, но сначала нужно немного спланировать.
Кое-что нужно иметь в виду.
Если вы попадаете в базу данных достаточно, чтобы ваши чтения замедлялись и вам нужны твердотельные накопители, вам необходимо исправить свои индексы или посмотреть, как добавить дополнительную оперативную память на сервер.
Большинство серверов баз данных после полной настройки не нуждаются в SSD для нормальной работы.
Прочтите это статья (довольно старый - 2009 г.):
Итог: замените 24 диска SAS по 15 тыс. Об / мин на 6 (да шесть) твердотельных накопителей и все равно получите на 35% больше производительности. Так было с Intel X25M, которые больше не являются лидером среди SSD.
Для людей, работающих с базами данных, это просто фантастика, поскольку вы можете иметь меньшие, более быстрые серверы, потребляющие меньше энергии.
Одна вещь, которую следует учитывать, - это иметь журнал передачи на жестком диске, а ваш MDF - на SSD. Также срок службы будет сильно зависеть от типа приложения. OLTP может быстро сгореть, хотя со статическими данными проблем быть не должно.
Мой собственный опыт здесь смешался ...
Тестирование на windows 7 с sql server 2008 express r2. Запуск на рабочем столе i7 с Sandy Bridge и установленной оперативной памятью 12G (DDR3, я думаю?). Извините, что установка была настольной, я сразу после того, как посмотрел, сколько записей я могу управлять на платформе i7, прежде чем построить сервер.
Сначала я провел эти тесты на установленном приводе емкостью 1,5 ТБ, 7200 об / мин, чтобы получить базовые значения времени.
10k записей с обновлением процессов, оптимизированы таблицы для хранения ранее связанных данных в плоской таблице, добавлены индексы, пока я не уменьшу тайминги до нескольких секунд в качестве отправной точки, затем я продублировал записи до 1,2 миллиона и получил время из 0: 3: 37 для тех же обновлений. 3 с половиной минуты неплохо для этой настройки без рейда.
Дублирование рекордов до 2,56 миллиона дало мне время 0:15:57 - почти в 5 раз больше. Вероятно, в основном из-за подкачки установленной памяти 12 ГБ.
Установил SSD-накопитель и переместил базы данных, время на самом деле увеличилось до чуть более 20 минут. Я предполагаю, что это связано с тем, что файлы подкачки находятся на жестком диске, и по умолчанию на SSD-диске их не было, поскольку он не был установлен в качестве диска ОС (синие экраны в изобилии, когда я это пробовал).
Добавил файл подкачки на SSD-накопитель и перезапустил тест, 0: 5: 52 -m, так что файл подкачки, похоже, сработал, но я не уверен, что файл подкачки хорошо подходит для SSD-накопителя по всем вышеуказанным причинам, они сильно изношены и могут привести к чрезмерному износу привода.
Одно предостережение, я также включил Smartboost на этом диске, и это, возможно, также повлияло на тайминги, будет перезапускаться без него.
Насколько я понимаю, в наши дни добавить память проще, и по цене, возможно, рейд 0 + 1 гибридных дисков будет делать почти такую же хорошую работу без проблем.
edit: отключил файл подкачки на SSD и позволил интеллектуальному ускорению сделать свое дело, время улучшилось с 5:52 минут до 4:55 минут для 2,56 миллиона записей с серией из 3 обновлений каждая. Далее я попробую использовать кэш ssd 8G на гибридном диске Seagate 750G. то если неплохо, попробую в рейде 0 + 1.
последнее обновление по этому поводу, так как это старый поток, но я хотел опубликовать результаты, которые я получил, чтобы кто-нибудь мог их найти.
Перемещая базу данных на Seagate 750G Hybrid с SSD-кешем 8G, я провел тест несколько раз, чтобы SSD-кеш мог учиться. Это дает мне время 5:15 м: с для того же теста, обновляя 2,56 миллиона записей - это достаточно близко к производительности SSD (4:55 м: с с Intel Smartboost), чтобы я мог учитывать стоимость.
Приблизительно на 50 долларов больше (239 долларов против 189 долларов на данный момент) гибрид обеспечивает в 6 раз больше хранилища и почти такую же производительность без использования какого-либо дополнительного программного обеспечения для оптимизации. В рейде 0 + 1 я ожидаю, что тайминги будут значительно улучшены, и на этот привод 5 лет гарантии, вот и надеюсь, что он мне не понадобится.
Лично я бы не стал использовать SSD по уже упомянутым причинам; они будут постепенно замедляться, прежде чем в конечном итоге выйдут из строя. Мы еще не знаем, когда это будет - текущие оценки - это всего лишь оценки. Помните, когда мы все покупали эти «неразрушимые» компакт-диски в начале / середине 80-х? Несколько лет спустя мы считали хранение данных на компакт-диске таким же безумием, как и использование дискет.
Если у вас правильно настроено оборудование, ОС и БД, вам не нужно будет играть на SSD.
Через несколько лет, когда продукты немного повзрослеют, будет другой сценарий. Но до тех пор ...
Статья Microsoft Research посвящена стоимости гигабайта, а не увеличению производительности. На самом деле он не подходит и не тестирует диски, но использует алгоритм ретроспективного литья, основанный на файлах журнала с реальных серверов.
Некоторые вещи, которые приходят на ум при использовании SSD и SQL:
1 / Если вы не добавите правильные индексы, SSD будет гораздо более снисходительным, поскольку время случайного поиска настолько низкое.
2 / Затраты намного ниже, чем когда это исследование было проведено, и для небольших веб-приложений, скажем, для запуска серверной части телефонного приложения, а не корпоративных серверов Exchange, производительность могла бы сэкономить расходы на наем консультанта для настройки SQL Server.
3 / Один SSD-накопитель с теневой копией, безусловно, должен быть дешевле, чем связка шпинделей в RAID-шкафу, а также контроллер и соединения. Не говоря уже о мощности, обогреве и пространстве в стойке.
4 / Шпиндели известны тем, что они чаще всего умирают на компьютере. В SSD нет движущихся частей, и час простоя может стоить стоимости SSD за один раз.
5 / Износ - это проблема, но у них есть способы справиться с этим (включая блоки рассеивания), которые возможны, потому что случайно фрагментированные данные не замедляют работу SSD. Кроме того, небольшая база данных на большом диске, скорее всего, не изнашивается со временем, чтобы в будущем купить более дешевую новую.
6 / Существует тенденция к нереляционным базам данных и объединениям на промежуточном уровне. Это действительно может изменить ситуацию: ввод-вывод в простые неиндексированные таблицы на SSD-дисках на шардах без потери производительности и с гораздо более простым предложением масштабирования. Также экономия лицензий SQL Server на сегмент.
7 / Это все теоретически. Если у кого-то есть реальные тесты производительности шпинделей, я был бы рад увидеть.
Люк