#lab #home_lab
Выпилил в лабе #minio к херам.
Да, да, вы не ослышались!
Сторадж у меня построен на самых дешевых SMR дисках, и проблема с ними в том, что, начиная с какой-то нагрузки, они деградируют по скорости совершенно нелинейно.
https://en.wikipedia.org/wiki/Shingled_magnetic_recording
Ну я на это и напоролся.
Починить это с minio нереально, потому что minio завязана на хранение в файловой системе, которая создает довольно большой поток iops на сам hdd.
Я пробовал это полечить с помощью bcache и небольшой партиции SSD для кеша, это помогло, но не радикально, потом я заменил xfs на log structured nilfs https://nilfs.sourceforge.io/en/links.html (потому что такой append only паттерн доступа к данным сильно лучше подходит для SMR), это еще помогло, но тоже не радикально.
В итоге, я запилил свою реализацию #S3, https://github.com/pg83/s3, design doc - https://gist.github.com/pg83/ae85dc0bfde5928ea44a1d6380f18d3f, которая смогла выжать из моих SMR теоретически возможный максимум на запись - она преобразует рандомные записи файлов в append only нагрузку на hdd.
В steady state я переживаю 400 мегабайт в секунду произвольных записей в стор (создание, удаление, любые размеры записей, в любом порядке) на группу из 3 дисков, это практически предел. Бурстами можно сильно больше, конечно, сколько - я не знаю, упираюсь в сеть лабы.
Не могу рекомендовать это решение для широкого использования - оно прямо сильно заточено на мое железо.
Например, я отправил #LLM исследовать все способы записи append потока данных на мои конкретные hdd, и от лучшего к худшему они колебались от 130 до 70 мегабайт в секунду на диск. Конечно я захардкодил самый лучший под мою нагрузку способ.
Кстати, в копилочку моих историй про "насколько щас код стал дешевым", и "скоро не останется generic кода, все будут пилить решения исключительно под себя".
В самом деле, зачем иметь generic базу данных, если написав кастомное решение за 1% стоимости generic решения, можно получить x10 перфа? Сходите по моим ссылкам, мой #S3 - всего 100 килобайт исходников, это даже не процент от кодовой базы minio.
Мораль?
Нет ее!
Post #4484
1.23K
Wikipedia Shingled magnetic recording hard disk drive technology using overlapping write regions
- 🔥 34
- ❤ 8
- 🤔 5
- 🥱 4
- 💯 2
- 🆒 1