Хмарний сервер для PostgreSQL в Європі
PostgreSQL - це база даних, яку обирають для застосунків, що потребують надійності, складних запитів та суворої цілісності даних. Якщо ваші користувачі або бізнес знаходяться в Європі, запуск PostgreSQL на хмарному сервері ЄС - це не лише технічна перевага, але й юридична необхідність відповідно до GDPR.
Чому резиденція даних в ЄС важлива для PostgreSQL
GDPR вимагає, щоб персональні дані жителів ЄС оброблялись під юрисдикцією ЄС. Розміщення бази даних PostgreSQL на сервері, фізично розташованому в ЄС та керованому компанією з ЄС, задовольняє вимоги до резиденції даних без складних угод про обробку даних з американськими гіперскейлерами.
Крім дотримання вимог, сервери ЄС забезпечують меншу затримку для європейських користувачів. База даних у Франкфурті або Празі відповідає на 30-80 мс швидше для берлінського застосунку, ніж та, що розміщена у Вірджинії.
Мінімальні характеристики для PostgreSQL
- Малий (dev/staging) - 4 vCPU, 8 ГБ RAM, 100 ГБ NVMe SSD
- Середній (виробничий застосунок) - 8 vCPU, 32 ГБ RAM, 500 ГБ NVMe SSD
- Великий (аналітика або OLTP з великою кількістю записів) - 16+ vCPU, 64-128 ГБ RAM, 1+ ТБ NVMe SSD
PostgreSQL значно виграє від більшого обсягу RAM - чим більші shared_buffers та effective_cache_size, тим менше операцій вводу-виводу диска.
Рекомендована конфігурація DCXV
Хмарні сервери DCXV працюють на сертифікованій інфраструктурі Tier III в ЄС зі сховищем на базі NVMe. Практичне виробниче налаштування PostgreSQL на DCXV:
- 8 vCPU, 32 ГБ RAM, 500 ГБ NVMe - обробляє більшість виробничих баз даних SaaS
- 16 vCPU, 64 ГБ RAM, 1 ТБ NVMe - аналітичні бази даних з паралельними запитами
Зв'яжіться з sales@dcxv.com для обговорення вашого навантаження.
Команди швидкого налаштування
# Встановлення PostgreSQL 16 на Ubuntu 22.04
sudo apt update && sudo apt install -y postgresql-16
# Запуск та активація сервісу
sudo systemctl start postgresql
sudo systemctl enable postgresql
# Перехід до користувача postgres
sudo -u postgres psql
# Створення бази даних та користувача
CREATE DATABASE myapp;
CREATE USER myapp_user WITH ENCRYPTED PASSWORD 'strongpassword';
GRANT ALL PRIVILEGES ON DATABASE myapp TO myapp_user;
# Основні параметри postgresql.conf для сервера з 32 ГБ RAM
shared_buffers = 8GB
effective_cache_size = 24GB
work_mem = 64MB
maintenance_work_mem = 2GB
wal_buffers = 64MB
max_connections = 200
Що насправді робить кожен параметр пам'яті
Чотири значення в тому блоці конфігурації не випадкові, і лише одне з них обмежує сервер загалом. Саме через плутанину тут машина з достатньою пам'яттю починає використовувати swap:
| Параметр | Що охоплює | Значення вище | Як зрозуміти, що воно хибне |
|---|---|---|---|
| shared_buffers | Спільний кеш сторінок, один на сервер | 8 ГБ | Читання йдуть на диск, хоча вільна пам'ять не задіяна |
| work_mem | Одне сортування або хеш, на операцію | 64 МБ | У журналі з'являються тимчасові файли або сервер іде у swap |
| maintenance_work_mem | VACUUM і побудова індексів, на воркер | 2 ГБ | Autovacuum ніколи не завершується на найбільшій таблиці |
| effective_cache_size | Нічого - це підказка планувальнику | 24 ГБ | Планувальник вибирає послідовне сканування замість гарного індексу |
Найбільше шкодить work_mem. Він діє на кожне сортування, а не на з'єднання, тому запит із трьома сортуваннями на п'ятдесяти з'єднаннях може попросити в сто п'ятдесят разів більше, ніж ви вказали. Підвищуйте його для конкретного звітного запиту в його ж сеансі, а не для всього сервера.
Очікувані показники продуктивності
На екземплярі з 8 vCPU / 32 ГБ RAM / NVMe з PostgreSQL 16:
- pgbench TPS (лише читання) - 12 000-18 000 TPS
- pgbench TPS (читання-запис) - 4 000-7 000 TPS
- Затримка пошуку одного рядка (з індексом) - менше 0,5 мс
Це очікування для заліза цього класу, а не заміри в нашій лабораторії. Використовуйте їх як відправну точку для сайзингу і міряйте своє навантаження: реальні числа залежать від ваших даних, запитів і налаштувань значно більше, ніж від провайдера.
Висновок
PostgreSQL на хмарному сервері ЄС забезпечує відповідність GDPR, малу затримку для європейських користувачів та повний контроль над вашими даними. Почніть з правильно розмірного екземпляра DCXV та застосуйте параметри налаштування вище.
