Доброго денёчка.
У меня опять вопрос про нелёгкий выбор, но в этот раз про реляционные базы данных.
-- Коротко:
Что лучше для mysql:
больше RAM (170 GB), но диск SSD
или
меньше RAM (75 GB), но диск NVMe
когда данные (400 GB) не влазят в RAM полностью и там, и там?
-- Подробнее:
Есть сервер c MySQL 5.7, нагрузка - около 400 qps (95% чтение), без пиков растёт потихоньку.
Сейчас под буффер пул выделено 40 GB, данных в бд 400 GB.
На сервере довольно быстрый NVMe, и он загружен этим же mysql, по iotop нагрузка на чтение/запись 200мб/10мб в сек.
Я буду менять сервер, и нужно сделать выбор:
- или 256 GB RAM (под mysql 170 GB) + SSD (250 мб/сек fio rw throughput)
- или 128 GB RAM (под mysql 75 GB) + NVMe (1000 мб/сек fio rw throughput)
Данные нигде в RAM не влезут даже на половину. Мне хочется взять побольше оперативки, но беспокоюсь, что увеличится время ответа - mysql всё равно дёргает диск, и ssd будет работать медленней, чем nvme. А это критичный показатель.
В гугле на этот счёт разные мнения - и есть такое - с реальной нагрузкой разница между ssd\nvme для mysql не ощутима.
Если верить iotop и fio (и если учесть, что там одинаковые попугаи) - то моя текущая нагрузка вполне вписывается в возможности SSD.
Как это точно проверить (кроме как поднять реплику и тестировать запросы, что в условиях отсутствия нагрузки идея так себе кмк) - не знаю.
Статью от percona про nvme читал, но там профиль нагрузки другой - запись.
Какой стул посоветуете?
Заранее от души спасибо, потому что реально разрываюсь)