# ADPG Sizing recommendations ## Hardware requirements ### Рекомендации **Общие** - конфигурация хоста по реплику мастера всегда должна быть 1 в 1 с хостом мастера **Disk** - Лучшая производительность работы СУБД достигается, когда в все горячие данные умещаются в оперативной памяти. Данная характеристика может быть расчитана только индивидуально для каждого случая. - Предпочтительно использование дисковых массивов RAID0 или RAID1, выше RAID4 сильно влияет на производительность СУБД под высокой OLTP нагрузкой - Если стоит задача по миграции данных из Oracle, обычно аналогичные данные будут занимать больше места в PostgreSQL (из-за [page layout](https://www.postgresql.org/docs/current/storage-page-layout.html)), но в некоторых случаях это может зависеть от конфигурации Oracle. В частности, если в Oracle включен [FRA](https://oracle-dba.ru/database/backup-and-restore/fra/), то в таком случае данные в PostgreSQL займут меньше места, чем в Oracle. - Объемы дисков под WAL могут быть оценены только опытным путем, т.к. это сильно зависит от характера нагрузки на СУБД **CPU** - Более высокая производительность СУБД достигается на процессорах от Intel, на ARM ахитектуре возникают просадки из-за софтверной эмуляции **RAM** - В общем объеме RAM надо учитывать выделение минимум 25% под [shared_buffers](https://www.postgresql.org/docs/current/runtime-config-resource.html) - рекомендуется выставлять [huge_pages](https://www.postgresql.org/docs/current/runtime-config-resource.html#GUC-HUGE-PAGES) в on Network - Под высоконагруженную OLTP нагрузку стоит сразу закладывать выделенную сеть с пропускной скоростьб в 10 ГБит/с, она очень важна для репликации, бэкапа и восстановления - Если есть планы соержания второго датацентра, то зависит от его целей использования. Если как резерв, то можно использовать общую сеть между ДЦ, иначе лучше иметь выделенный канал для репликации. ### Host configuration #### Minimal **CPU**: 16 cores **RAM**: 64GB **Storage**: 2 x 512GB SSD RAID0 for Data + 2 x 512GB SSD RAID0 for WALs **Network**: 4 x 10 Gbps (2 adapters) + 2 x 1 Gbps (management) #### Рекомендуемая ##### Конфигурация хостов CPU: 48 cores RAM: 386GB Storage: 2 x 480GB NVMe SSD RAID0 for Data + 2 x 512GB SSD RAID0 for WALs Network: 2 x 10 Gbps (2 adapters) ##### Возможный сценарий: Высоконагруженное приложение с OLTP нагрузкой порядка ~20K/s insert, ~5K/s update, ~5K/s delete, ~10K/s select ### Requirements review Для оценки требуемых ресурсов под ADPG необходимо отталкиваться от имеющихся данных и задач, которые должны решаться с их использованием. В ряде случаев это может приводить к реораганизации способа хранения данных и работы с ними, что в свою очередь повлияется на требуемые ресурсы. > Как пример, клиент может прийти с условием, что у него есть 5TB данных, все данные должны быть постоянно доступны для выполнения сложных аналитических запросов. При этом должна поддерживаться загрузка новых данных в режиме реального времени. В подобной ситуации имеет смысл пересмотреть подход к организации имеющихся данных как темпоральное разделение данных, предварительный расчет аггрегатов на старых данных и тд.