postgresql vps
Базы данных и in-memory нагрузки
Достаточно памяти, чтобы диск перестал иметь значение.
Что бы мы развернули
125,30 €/мес
179 €−30% ежегодно
За определенным размером рабочего набора единственная оптимизация, которая имеет значение, — уместить все в RAM. FORGE дает до шестнадцати гигабайт на ядро зарегистрированной ECC-памяти с предварительно настроенными hugepages и NUMA-аware размещением, что нужно PostgreSQL, Redis, ClickHouse и большим JVM-кучам. Под этим — Gen5 NVMe в RAID10, так что записи, которые все-таки попадают на диск, тоже не являются узким местом.
Почему такая конфигурация
FORGE с привязкой к одному NUMA-узлу держит доступ к памяти локальным для сокета, выполняющего работу. Добавьте ночные бэкапы с тридцатью точками восстановления, потому что реальный сценарий отказа — плохая миграция, а не умерший диск.
Что бы мы развернули
Размер
Рассчитывайте RAM под рабочий набор, а не под базу данных. Рабочий набор — это горячие страницы индексов плюс реально затрагиваемые строки, часто 10-20% от 2 ТБ OLTP-данных. Установите InnoDB buffer pool на 70-75% RAM, или shared_buffers в Postgres на 25%, а остальное пусть держит page cache. FORGE достигает 16 ГБ на ядро, поэтому пул 512 ГБ разместится на ~700 ГБ RAM и как минимум 44 ядрах. Если промахи кэша при чтении превышают 1%, покупайте RAM.
Hugepages и почему THP — это не то же самое
Пулу 256 ГБ, отображенному страницами по 4 КБ, нужно около 64 миллионов записей в таблице страниц. TLB не может удержать значимую их часть, поэтому случайный доступ платит за page walk при большинстве обращений. Статические hugepages по 2 МБ сокращают количество записей в 512 раз, а вместе с ним и обходы — ожидайте измеримое снижение времени CPU на запрос на больших пулах. Выделите их при загрузке через vm.nr_hugepages, размер — под пул плюс примерно 10%, и дайте пользователю БД лимит memlock. Transparent hugepages достигают того же отображения, но делают это оппортунистически, со стопами компакции. Отключите THP и выделяйте явно.
Рабочий набор: измеренный, а не угаданный
Не оценивайте рабочий набор по размеру каталога данных. Измеряйте его. В Postgres pg_buffercache покажет, какие отношения занимают shared_buffers, а отношение heap_blks_hit к heap_blks_read в pg_statio_user_tables дает процент попаданий в кэш на таблицу. В MySQL Innodb_buffer_pool_reads против Innodb_buffer_pool_read_requests дает тот же сигнал. Выше 99% вы в памяти, и добавление RAM мало что дает. Между 95% и 99% вы на краю пропасти, и один неиндексированный запрос может столкнуть вас вниз. Ниже 95% каждый ваш показатель задержки — на самом деле задержка диска в маскировке.
Что идёт не так
- Оставленные включенными transparent hugepages. Дефрагментация THP останавливает процесс на миллисекунды в непредсказуемые моменты, что проявляется как необъяснимый p99 latency. Отключите и выделите статические hugepages.
- Игнорирование NUMA на двухсокетном FORGE. Buffer pool попадает на один узел, половина ядер читает через интерконнект, и MySQL может свопить, несмотря на свободную память. Используйте numactl --interleave=all или привязку явно.
- Расчет IOPS по среднему throughput. Checkpoint'ы, vacuum и бэкапы — это пики, которые имеют значение. Пул, который справляется со стабильным состоянием, застопорит весь инстанс во время флаша checkpoint.
Настройте машину
- Планирование CPU — Single-NUMA-node affinity · 14 €
- Резервные копии — Daily backup, 30 restore points · 11 €
- Всё остальное — Second-resolution metrics + alerting · 5 €
- Хранилище и шифрование — ZFS with hourly snapshots · 7 €
Ещё
Для конкретных задач
Хостинг игровых серверов
Tick rate — это проблема одного потока. Всё остальное — шум.
VPS для трейдинга и низкой задержки
Расстояние до матчинг-движка и ничего между вами и проводом.
Приватные VPN и прокси-энdpoints
Собственный выход в юрисдикции, которую вы выбрали осознанно.
Сидбоксы и оптовое хранилище
Терабайты, которые остаются дешёвыми, и порт, который остаётся открытым.
Рабочие узлы Kubernetes
Дёшево за ядро, плотно и каждый раз одинаково.
Инференс и дообучение ИИ
Целый GPU, прокинутый насквозь, при обязательствах, которые делают расчёты рабочими.