Для обеспечения стабильной работы PostgreSQL нужно оптимально настроить базу данных PostgreSQL в соответствии с нагрузкой на систему.
Оптимальные работа базы данных зависит от объема свободной оперативной памяти, размера таблиц и индексов, количества одновременных активных клиентов.
max_connections - максимальное количество одновременных соединений, которые будет обслуживать сервер.
shared_buffers - общий буфер для всех подключений сервера. Размер кэша чтения и записи PostgreSQL.
Если объём буфера не хватает для хранения часто используемых рабочих данных, то они будут постоянно писаться и читаться из кэша операционной системы или с HHD, SSD диска.
work_mem - память для сортировки, агрегации данных
Для получения хороших результатов при сложной сортировке данных в памяти. нужно установить оптимальные значения.
effective_cache_size - количество доступной памяти для дискового кеширования. Рекомендованные значенич 50%-75% от доступной оперативной памяти
checkpoint_segments - набор операций, которые выполняет postgres для гарантии того, что все изменения были записаны в файлы данных
wal_buffers объем памяти в shared_buffers для ведения транзакционных логов. Рекомендованое значение 1M
synchronous_commit - включает/выключает синхронную запись в лог файлы после каждой транзакции
PostgreSQL после каждого завершения пишущей транзакции сбрасывает данные из файлового кэша операционной системы на диск.
При большом количестве соединений сброс данных на диск может значительно снизить производительность базы данных.
Увеличить производительность базы данных можно, отключив fsync:
fsync = off
full_page_writes = off
Создайте себе сайт бесплатно! |