Hello, I'm inquiring because of using a lot of memory in each session.
1. A description of what you are trying to achieve and what results you expect :
We set shared_buffer = 70GB, max_connections = 300, work_mem = 300MB.
We thought the session memory could be adjusted with the work_mem variable, but no. noticed that each session consumed more than 500MB.
We're wondering what are the things that are occupied in session memory and if there is a way to organize these in each session and return the memory.
2. PostgreSQL version number you are running:
PostgreSQL 15.3 (Ubuntu 15.3-1.pgdg22.04+~20230706.1614.g25624c5) on aarch64-unknown-linux-gnu, compiled by gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0, 64-bit
3. How you installed PostgreSQL:
We have downloaded debs on https://apt.postgresql.org/pub/repos/apt/pool/main/p/postgresql-15/
and installed them.
4. Changes made to the settings in the postgresql.conf file:
name | current_setting | source |
archive_command | cp /data/PG15/pg_wal/%f /archive_data/%f | configuration file |
archive_mode | on | configuration file |
auto_explain.log_analyze | on | configuration file |
auto_explain.log_buffers | on | configuration file |
autovacuum_analyze_scale_factor | 0 | configuration file |
autovacuum_analyze_threshold | 100000000 | configuration file |
autovacuum_freeze_max_age | 500000000 | configuration file |
autovacuum_max_workers | 3 | configuration file |
autovacuum_naptime | 1min | configuration file |
autovacuum_vacuum_cost_delay | 50ms | configuration file |
autovacuum_vacuum_insert_scale_factor | 0 | configuration file |
autovacuum_vacuum_insert_threshold | 30000 | configuration file |
autovacuum_vacuum_scale_factor | 0 | configuration file |
autovacuum_vacuum_threshold | 5000 | configuration file |
checkpoint_warning | 1h | configuration file |
client_encoding | UTF8 | client |
DateStyle | ISO, MDY | client |
deadlock_timeout | 100ms | configuration file |
default_text_search_config | pg_catalog.english | configuration file |
dynamic_shared_memory_type | posix | configuration file |
effective_cache_size | 48GB | configuration file |
effective_io_concurrency | 600 | configuration file |
enable_mergejoin | off | configuration file |
enable_seqscan | off | configuration file |
extra_float_digits | 3 | session |
jit | off | configuration file |
lc_messages | en_US.UTF-8 | configuration file |
lc_monetary | en_US.UTF-8 | configuration file |
lc_numeric | en_US.UTF-8 | configuration file |
lc_time | en_US.UTF-8 | configuration file |
listen_addresses | * | configuration file |
log_autovacuum_min_duration | 10ms | configuration file |
log_checkpoints | on | configuration file |
log_destination | stderr, csvlog | configuration file |
log_directory | /data/log | configuration file |
log_filename | postgresql-%a.log | configuration file |
log_line_prefix | %m [%p][%u][%h] | configuration file |
log_lock_waits | on | configuration file |
log_min_duration_statement | 1500ms | user |
log_min_messages | warning | configuration file |
log_rotation_age | 1d | configuration file |
log_rotation_size | 0 | configuration file |
log_timezone | Asia/Seoul | configuration file |
log_truncate_on_rotation | on | configuration file |
logging_collector | on | configuration file |
maintenance_work_mem | 200MB | configuration file |
max_connections | 300 | configuration file |
max_locks_per_transaction | 2000 | configuration file |
max_parallel_workers | 0 | configuration file |
max_parallel_workers_per_gather | 0 | configuration file |
max_wal_size | 2GB | configuration file |
max_worker_processes | 50 | configuration file |
min_wal_size | 1GB | configuration file |
password_encryption | md5 | configuration file |
plan_cache_mode | force_custom_plan | configuration file |
port | 45432 | configuration file |
restore_command | mv -f /archive_data/%f /data/PG15/pg_wal/%f | configuration file |
shared_buffers | 70GB | configuration file |
shared_preload_libraries | pg_hint_plan, pg_cron, pg_stat_statements, auto_explain | configuration file |
superuser_reserved_connections | 6 | configuration file |
tcp_keepalives_idle | 30 | configuration file |
tcp_keepalives_interval | 1 | configuration file |
TimeZone | Asia/Seoul | client |
vacuum_cost_limit | 1000 | configuration file |
wal_buffers | 1GB | configuration file |
wal_compression | zstd | configuration file |
wal_sender_timeout | 10min | configuration file |
work_mem | 200MB | configuration file |
5. Operating system and version:
Distributor ID: Ubuntu
Description: Ubuntu 22.04.2 LTS
Release: 22.04
Codename: jammy
6. What program you're using to connect to PostgreSQL:
Just do on Linux kernel