Просто збільшення max_connections- це погана ідея. Вам потрібно збільшити shared_buffersі kernel.shmmaxяк добре.
Міркування
max_connectionsвизначає максимальну кількість одночасних підключень до сервера бази даних. За замовчуванням зазвичай 100 підключень.
Перш ніж збільшувати кількість підключень, можливо, вам знадобиться масштабувати розміщення. Але перед цим слід подумати, чи дійсно вам потрібна збільшена межа з'єднання.
Кожне з'єднання PostgreSQL споживає оперативну пам’ять для управління з'єднанням або клієнтом, що використовує його. Чим більше у вас підключень, тим більше оперативної пам’яті ви будете використовувати, замість цього можна використовувати для запуску бази даних.
Добре написаному додатку зазвичай не потрібна велика кількість з'єднань. Якщо у вас є додаток, який потребує великої кількості підключень, тоді подумайте про використання такого інструменту, як pg_bouncer, який може об'єднати з'єднання для вас. Оскільки кожне з'єднання споживає оперативну пам’ять, ви повинні намагатися мінімізувати їх використання.
Як збільшити максимум з'єднань
1. Збільшення max_connectionіshared_buffers
в /var/lib/pgsql/{version_number}/data/postgresql.conf
змінити
max_connections = 100
shared_buffers = 24MB
до
max_connections = 300
shared_buffers = 80MB
shared_buffersПараметр конфігурації визначає , скільки пам'яті буде присвячений в PostgreSQL використовувати для кешування даних .
- Якщо у вас є система з 1 Гб або більше оперативної пам’яті, розумне початкове значення для shared_buffers становить 1/4 пам'яті у вашій системі.
- навряд чи ви зможете використовувати більше 40% оперативної пам’яті, щоб працювати краще, ніж менший обсяг (наприклад, 25%)
- Пам’ятайте, що якщо ваша система чи збірка PostgreSQL є 32-розрядною, встановити shared_buffers вище від 2 до 2,5 ГБ може бути не практично.
- Зауважте, що в Windows великі значення для shared_buffers не настільки ефективні, і ви можете виявити кращі результати, підтримуючи їх відносно низькими і більше використовуючи кеш ОС. Для Windows корисний діапазон від 64 Мб до 512 Мб .
2. Змініть kernel.shmmax
Вам потрібно збільшити розмір максимального сегмента ядра, щоб бути трохи більшим
за shared_buffers.
У файлі /etc/sysctl.confвстановіть параметр, як показано нижче. Це набере чинності при postgresqlперезавантаженні (Наступний рядок робить максимум ядра 96Mb)
kernel.shmmax=100663296
Список літератури
Постгреси Максимальні з'єднання та спільні буфери
Налаштування сервера PostgreSQL