View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0000052 | Pgpool-II | Bug | public | 2013-03-07 20:34 | 2013-03-15 07:47 |
| Reporter | umm | Assigned To | t-ishii | ||
| Priority | urgent | Severity | crash | Reproducibility | always |
| Status | assigned | Resolution | open | ||
| Summary | 0000052: Out of memory issue ,,, | ||||
| Description | pgpool-II version : 3.2.3 mode : non -- (ON MEMORY QUERY MEMORY CACHE) postgres version : postgres (PostgreSQL) 9.1.8 physical memory : 4GB swap : 4GB im building a testing environment with pgpool. Due to enabling 'query caching' and 'auto_cache_invalidation', the machine's memory starts to get fill up while executing heavy load ( mostly 'SELECT QUERIES') on the database through pgpool, the kernel starts terminating the processes after the RAM and Swap memory are fully loaded, and this causes the system to hang ... is this some kind of a memory leakage issue ?? PS : everything runs perfectly without the query caching ... | ||||
| Steps To Reproduce | changes to default configuration : num_init_children = 100 max_pool = 4 child_life_time = 300 child_max_connections = 0 connection_life_time = 300 client_idle_limit = 0 connection_cache = on memory_cache_enabled = on memqcache_method = 'shmem' memqcache_memcached_host = 'localhost' memqcache_memcached_port = 11211 memqcache_total_size = 67108864 memqcache_max_num_cache = 1000000 memqcache_expire = 0 (and tried 60 seconds) memqcache_auto_cache_invalidation = on memqcache_maxcache = 409600 memqcache_cache_block_size = 1048576 | ||||
| Additional Information | sample of system's logs for one of pgpool processes: kernel: [175882.263257] Out of memory: Kill process [PID] (pgpool) score 67 or sacrifice child kernel: [175882.263282] Killed process [PID] (pgpool) total-vm:793364kB, anon-rss:324228kB, file-rss:16920kB | ||||
| Tags | No tags attached. | ||||
|
|
|
|
|
I have noted same behavior here. My pgpool server hang after few days running. Follow a memory free graph. |
|
|
|
|
|
I tested using pgbench -S and failed to reproduce your problem. Can you run pgpool using valgrind to see memory leak logs? e.g. valgrind --trace-children=yes --leak-check=full pgpool -n -f > pgpool.log 2>&1 & After shutting down pgpool, you will the memory leak report in pgpool.log. Please note that you will see lots of something like followings, but this is normal. They are once allocated at starting up and are kept until pgpool exits. So they do not hurt... ==12550== 60 bytes in 1 blocks are possibly lost in loss record 74 of 102 ==12550== at 0x4C24D5E: malloc (vg_replace_malloc.c:236) ==12550== by 0x5DE5CC1: strdup (strdup.c:43) ==12550== by 0x40DF34: extract_string (pool_config.l:2777) ==12550== by 0x4108D4: pool_get_config (pool_config.l:763) ==12550== by 0x40739E: main (main.c:331) |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2013-03-07 20:34 | umm | New Issue | |
| 2013-03-07 20:34 | umm | File Added: pgpool.conf | |
| 2013-03-11 10:43 | gustavofn | Note Added: 0000238 | |
| 2013-03-11 10:43 | gustavofn | File Added: 2013-03-10 10.27.42 pm.png | |
| 2013-03-15 07:42 | t-ishii | Assigned To | => t-ishii |
| 2013-03-15 07:42 | t-ishii | Status | new => assigned |
| 2013-03-15 07:47 | t-ishii | Note Added: 0000246 |