I have a software developed in Delphi as a Windows
Service, but, i don't know why, it consumns an unexpected large system memory
(1.3g).
The service access PostgresSQL by ODBC driver
(psqlodbc_08_03_0400) and it consist simply of a loop calling a procedure PL/PGSQL. How to discover what is causing or why this high
memory usage ? What objects are being used on this session ?
Software developed in Delphi 7 as a windows service.
PostgresSQL 8.3.6 Database with PostGis extension
Server p52a
S.O.: Red Hat Enterprise Linux AS release 4 (Nahant Update 1)
linux 2.6.9-11.EL #1 SMP ppc64 ppc64 ppc64 GNU/Linux
S.O. information
top - 11:39:15 up 6 days, 19:15, 1 user, load average: 2.15, 2.02, 1.86
Tasks: 127 total, 1 running, 126 sleeping, 0 stopped, 0 zombie
Cpu(s): 9.5% us, 2.6% sy, 0.0% ni, 71.2% id, 16.3% wa, 0.1% hi, 0.2% si
Mem: 4107392k total, 4101520k used, 5872k free, 17708k buffers
Swap: 2031608k total, 244k used, 2031364k free, 3091708k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
32662 postgres 16 0 1317m 1.3g 516m D 52.5 32.1 349:57.48 postgres
8953 postgres 17 0 548m 482m 479m S 33.5 12.0 2:50.09 postgres
1944 postgres 16 0 550m 520m 516m S 7.3 13.0 165:30.47 postgres
32659 postgres 15 0 544m 516m 514m S 1.3 12.9 16:42.60 postgres
1935 postgres 15 0 543m 514m 513m S 1.0 12.8 15:15.56 postgres
postgresql.conf information:
name | setting | unit
---------------------------------+--------------------------------------+------
archive_command | wal_archive_command.sh %p %f |
archive_mode | on |
autovacuum_analyze_scale_factor | 0.4 |
autovacuum_analyze_threshold | 500 |
autovacuum_vacuum_threshold | 1000 |
checkpoint_segments | 15 |
checkpoint_timeout | 1800 | s
DateStyle | ISO, DMY |
default_statistics_target | 50 |
effective_cache_size | 249600 | 8kB
fsync | on |
lc_monetary | en_US.UTF-8 |
lc_numeric | en_US.UTF-8 |
lc_time | en_US.UTF-8 |
listen_addresses | * |
log_autovacuum_min_duration | 0 | ms
log_checkpoints | on |
log_destination | stderr |
log_directory | /p01/log |
log_filename | postgresql-%Y-%m-%d_%H%M%S.log |
log_line_prefix | %t [%p]: [%l-1] |
log_lock_waits | on |
log_min_duration_statement | 250 | ms
log_min_error_statement | error |
log_rotation_age | 1440 | min
log_rotation_size
|
20480
| kB
log_temp_files | 10240 | kB
logging_collector | on |
maintenance_work_mem | 409600 | kB
max_connections | 100 |
max_fsm_pages | 3458000 |
shared_buffers | 64000 | 8kB
tcp_keepalives_idle | 0 | s
wal_buffers | 100 | 8kB
work_mem | 5120 | kB