-hdd%20%D0%BD%D0%B8%D0%B7%D0%BA%D0%B0%D1%8F%20%D0%BF%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C%20%D0%BF%D0%BE%20%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8E%20%D1%81%20%D0%BE%D0%B4%D0%BD%D0%B8%D0%BC%20SSD-%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%BC.png)
У меня есть конфигурация RAID 5 на сервере HP gen9 свосемьжесткие диски (диски HP-10K-1.2 ТБ). Этот сервер предназначен для работы в качестве сервера Microsoft SQL и содержит базу данных размером 143 ГБ.
Я выполнил на нем длительный запрос, и он был выполнен за 10 минут (максимальная скорость чтения = 200 МБ/с).
Затем я сохранил эту базу данных на одном SSD-диске (Samsung EVO 1 ТБ), и тот же запрос был выполнен за 3 минуты (максимальная скорость чтения = 380 МБ/с).
вопрос в том:почему разница в производительности такая большая? (учитывая количество используемых дисков в 10 тыс.)
решение1
В то время как разница впропускная способностьможет быть, не так уж и велика разница между 8-дисковым RAID5 и одним SSD, разница взадержкабудут на порядки больше.
Это означает, что каждая запись (а их много: Journal, Tablespace, ...) будет занимать гораздо больше времени, и каждое случайное чтение будет занимать столько же времени (но не так много, как запись).
Вы увидите, что разница дляиндекс-только для чтениязапрос выполняется гораздо реже (при условии, что в это время БД не обрабатывает никакую другую нагрузку), но в тот момент, когда вы выполняете запись или безиндексное соединение, вы столкнетесь с гораздо более высокой задержкой.
Весьма вероятно, что во втором тесте сервер был ограничен CPU, или вы могли бы почувствовать даже большую разницу. И не заставляйте меня начинать про RAID5 с небольшими записями...
То, что вы испытываете, и есть причина, по которой базы данных по ржавчине прядильных станков идут по стопам Додо.