Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- postgresqltuner.pl version 1.0.1
- [OK] I can invoke executables
- Connecting to /var/run/postgresql:5432 database database as user 'postgres_admin'...
- [OK] The user account used by me for reporting has superuser rights on this PostgreSQL instance
- ===== OS information =====
- [INFO] OS: linux Version: 4.19.0 Arch: x86_64-linux-gnu-thread-multi
- Use of uninitialized value $os_mem in pattern match (m//) at ./postgresqltuner.pl line 318.
- Use of uninitialized value $os_mem in pattern match (m//) at ./postgresqltuner.pl line 319.
- Use of uninitialized value in numeric eq (==) at ./postgresqltuner.pl line 321.
- [BAD] Memory overcommitment is allowed on the system. This may lead the OOM Killer to kill at least one PostgreSQL process, DANGER!
- [INFO] sysctl vm.overcommit_ratio=50
- [BAD] vm.overcommit_ratio is too low, you will not be able to use more than (50/100)*RAM+SWAP for applications
- [INFO] Running (probably) directly on a physical machine
- [INFO] Currently used I/O scheduler(s): mq-deadline
- ===== General instance informations =====
- ----- PostgreSQL version -----
- [OK] You are using the latest PostreSQL major version (14.0 (Debian 14.0-1.pgdg110+1))
- ----- Uptime -----
- [INFO] Service uptime: 18d 06m 00s
- ----- Databases -----
- [INFO] Database count (except templates): 3
- [INFO] Database list (except templates): postgres postgres_admin database
- ----- Extensions -----
- [INFO] Number of activated extensions: 1
- [INFO] Activated extensions: plpgsql
- [WARN] Extension pg_stat_statements is disabled in database
- ----- Users -----
- [OK] No user account will expire in less than 7 days
- [OK] No user with password=username
- [OK] Password encryption enabled
- ----- Connection information -----
- [INFO] max_connections: 500
- [INFO] Current used connections: 6 (1.20%)
- [INFO] 3 connections are reserved for super user (0.60%)
- [INFO] Average connection age: 15d 05m 00s
- ----- Memory usage -----
- [INFO] Configured work_mem: 4.00 MB
- [INFO] Using an average ratio of work_mem buffers by connection of 150% (use --wmp to change it)
- [INFO] Total work_mem (per connection): 6.00 MB
- [INFO] shared_buffers: 128.00 MB
- [INFO] Track activity reserved size: 0.00 B
- [WARN] maintenance_work_mem is less or equal to its default value. Increase it to reduce maintenance tasks duration
- [INFO] Max memory usage:
- shared_buffers (128.00 MB)
- + max_connections * work_mem * average_work_mem_buffers_per_connection (500 * 4.00 MB * 150 / 100 = 2.93 GB)
- + autovacuum_max_workers * maintenance_work_mem (3 * 64.00 MB = 192.00 MB)
- + track activity size (0.00 B)
- = 3.24 GB
- [INFO] effective_cache_size: 4.00 GB
- [INFO] Cumulated size of all databases: 59.23 MB
- [WARN] shared_buffer is too big for the total databases size, uselessly using memory
- [UNKNOWN] OS total mem unknown: unable to analyse PostgreSQL memory usage
- ----- Huge Pages -----
- [WARN] No Huge Pages available on the system
- ----- Logs -----
- [OK] log_hostname is off: no reverse DNS lookup latency
- [WARN] Log of long queries deactivated. It will be more difficult to optimize query performance
- [OK] log_statement=none
- ----- Two-phase commit -----
- [OK] Currently there is no two-phase commit transaction
- ----- Autovacuum -----
- [OK] autovacuum is activated
- [INFO] autovacuum_max_workers: 3
- ----- Checkpoint -----
- [OK] checkpoint_completion_target (0.9) OK
- [INFO] Given those settings PostgreSQL may (depending on its workload) ask the kernel to write (to the storage) up to 1024.00 MB in a timeframe lasting 270 seconds <=> 3.79 MB bytes/second during this timeframe. You may want to check that your storage is able to cope with this, along with all other I/O (non-writing queries, other software...) operations potentially active during this timeframe. If this seems inadequate check max_wal_size, checkpoint_timeout and checkpoint_completion_target
- ----- Storage -----
- [OK] fsync is on
- [OK] synchronize_seqscans is on
- ----- WAL -----
- ----- Planner -----
- [OK] I/O cost settings are set at their default values
- [WARN] With SSD storage, set random_page_cost=seq_page_cost to help the planner prefer index scans
- [BAD] Some plan features are disabled: enable_partitionwise_aggregate,enable_partitionwise_join
- ===== Database information for database databse =====
- ----- Database size -----
- [INFO] Database database total size: 26.12 MB
- [INFO] Database database tables size: 14.34 MB (54.90%)
- [INFO] Database database indexes size: 11.78 MB (45.10%)
- ----- Tablespace location -----
- [OK] No tablespace in PGDATA
- ----- Shared buffer hit rate -----
- [INFO] shared_buffer_heap_hit_rate: 100.00%
- [INFO] shared_buffer_toast_hit_rate: 99.97%
- [INFO] shared_buffer_tidx_hit_rate: 100.00%
- [INFO] shared_buffer_idx_hit_rate: 100.00%
- [INFO] This is too high. If this PostgreSQL instance was recently used as it usually is and was not stopped since, then you may reduce shared_buffer
- ----- Indexes -----
- [OK] No invalid index
- [WARN] 117 indexes were not used since the last statistics run
- ----- Procedures -----
- [OK] No procedures with default costs
- ===== Configuration advice =====
- ----- extension -----
- [LOW] Enable pg_stat_statements in database database to collect statistics on all queries (not only those longer than log_min_duration_statement)
- ----- index -----
- [MEDIUM] You have unused indexes in the database since the last statistics run. Please remove them if they are rarely or not used
- ----- planner -----
- [MEDIUM] Set random_page_cost=seq_page_cost on SSD storage
- ----- system -----
- [HIGH] set vm.overcommit_memory=2 in /etc/sysctl.conf and invoke sysctl -p /etc/sysctl.conf to enforce it. This will disable memory overcommitment and avoid having a PostgreSQL process killed by the OOM killer
Advertisement
Add Comment
Please, Sign In to add comment