...
Основные параметры postgresql.conf
...
max_connection
- количество одновременных соединений к базе, в зависимости от количества касс этот параметр варьируется 110, 210, 1000
...
- ;
...
shared_
...
buffers
- оперативная память под кеширование данных сервера (вне коннектов пользователей) (=¼ X);
...
effective_cache_size
- размер доступного места на диске под нужды сервера (=¾ X);
...
checkpoint_segments
- количество файлов транзакций (16Mb каждый), после заполнения которых будет сделана точка восстановления БД (checkpoint);
...
checkpoint_completion_target
- процент заполнения текущего чекпоинта до старта следующего
...
- ;
...
default_statistic_target
- количество записей, на основе которых высчитывается статистика для построения запросов (лучше оставить дефолтные 100)
...
work_mem
- размер для сортировки в ОП. Указывается для 1 сортировки 1 пользовательского запроса, тогда
...
- появится 10 одновременных запросов и потребуется 10* work_mem памяти (увеличивать очень осторожно, иначе может не хватить памяти).
...
maintenance_work_mem
- размер для технических операций (типа VACUUM, CREATE INDEX,
...
- ALTER TABLE ADD FOREIGN KEY).
- Такие операции выполняются в 1 поток синхронно.
- Увеличение размера способствует ускорению операций DDL, VACUUM
...
- .
Параметр shared_buffers
- В Windows не имеет смысла делать больше 512 Мб .
...
3 конфигурации сервера СУБД PostrgeSQL по умолчанию
Небольшой магазин. 4GB RAM (JVM - 2 GB, PG -
...
1.5GB, 100 connections)
max_connections = 110
max_prepared_transactions = 110
shared_buffers = 256MB
effective_cache_size = 768MB2000MB
work_mem = 1191kB10MB
maintenance_work_mem = 64MB
checkpoint_segments = 32
max_wal_size = 1GB # for version 10+ only
random_page_cost = 1.4 # for SSD discs only
checkpoint_completion_target = 0.9
wal_buffers = 7864kB
autovacuum_max_workers = 3
autovacuum_naptime = 30s
autovacuum_vacuum_scale_factor = 0.0102
autovacuum_analyze_scale_factor = 0.0501
autovacuum_vacuum_cost_limit = 1000
logging_collector = on
log_directory = 'pg_log'checkpoints = on
log_filename = 'postgresql-%A.log'
log_truncate_on_rotation = on
min_duration_statement = 1s
log_rotationtemp_age files= 1d0
log_rotationlock_size waits = 100MBon
log_min_duration_statement = 60000'ddl'
log_line_prefix = '%t %a %p %u@%d from %h [vxid:%v txid:%x] [%i]'
log_filename = 'postgresql-%Y-%m-%d.log'
log_rotation_age = 1d
log_rotation_size = 0
Большой магазин. 8GB RAM (JVM - 4 GB, PG -
...
3GB, 200 connections)
- max_connections = 210
- max_prepared_transactions = 210
- shared_buffers = 512MB1024MB
- effective_cache_size = 1536MB4000MB
- work_mem = 1248kB10MB
- maintenance_work_mem = 128MB
checkpoint_segments = 32
64MB - max_wal_size = 1GB # for version 10+ only
- random_page_cost = 1.4 # for SSD discs only
- checkpoint_completion_target = 0.9
wal_buffers = 16MB
- autovacuum_max_workers = 3
- autovacuum_naptime = 30s
- autovacuum_vacuum_scale_factor = 0.0102
- autovacuum_analyze_scale_factor = 0.0501
- autovacuum_vacuum_cost_limit = 1000
- logging_collector=on
- log_directory = 'pg_log'checkpoints = on
- log_filename = 'postgresql-%A.log'
log_truncate_on_rotation = on
min_duration_statement = 1s - log_rotationtemp_age files= 1d0
- log_rotationlock_size waits = 100MBon
- log_min_duration_statement = 60000'ddl'
- log_line_prefix = '%t %a %p %u@%d from %h [vxid:%v txid:%x] [%i]'
- log_filename = 'postgresql-%Y-%m-%d.log'
- log_rotation_age = 1d
- log_rotation_size = 0'
Торговая сеть. 16GB RAM (JVM - 6 GB, PG -
...
6GB, 500 connections)
max_connections = 510
max_prepared_transactions = 510
shared_buffers = 512MB4000MB
effective_cache_size = 3840MB8000MB
work_mem = 10MB
maintenance_work_mem = 320MB
checkpoint_segments = 32
= 64MB
max_wal_size = 1GB # for version 10+ only
random_page_cost = 1.4 # for SSD discs only
checkpoint_completion_target = 0.9
wal_buffers = 16MB
autovacuum_max_workers = 3
autovacuum_naptime = 30s
autovacuum_vacuum_scale_factor = 0.0102
autovacuum_analyze_scale_factor = 0.0501
autovacuum_vacuum_cost_limit = 1000
logging_collector=on
log_directory = 'pg_log'checkpoints = on
log_filename = 'postgresql-%A.log'
log_truncate_on_rotation = on
min_duration_statement = 1s
log_rotationtemp_age files= 1d0
log_rotationlock_size waits = 100MBon
log_min_duration_statement = 60000'ddl'
log_line_prefix = '%t %a %p %u@%d from %h [vxid:%v txid:%x] [%i]'
log_filename = 'postgresql-%Y-%m-%d.log'
log_rotation_age = 1d
log_rotation_size = 0
SetRetail10 (JBOSS-сервер)
Про настройки службы описано в статье