我在Linux机器上将postgres shared_buffers增加到7GB。这大约是这台机器上可用内存的25%,我相信它遵循postgres建议。
机器上的内存耗尽。我看到的是man postgres进程,每个使用7GB驻留内存。当我运行顶部时,我看到机器上的内存被充分利用,所以我认为7GB是postmaster进程的私有内存。
我认为应该共享shared_buffers内存。
这是postgres 8
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
15872 postgres 15 0 7481m 7.2g 7.1g S 17.6 15.2 43:19.92 postgres: st stk 127.0.0.1(60729) SELECT
3467 postgres 15 0 7489m 7.2g 7.1g S 15.9 15.2 56:33.33 postgres: st stk 127.0.0.1(44351) SELECT
9484 postgres 15 0 7495m 7.2g 7.1g S 15.0 15.2 206:31.23 postgres: st stk 127.0.0.1(42126) SELECT
19090 postgres 15 0 7495m 7.2g 7.1g S 14.2 15.2 155:23.52 postgres: st stk 127.0.0.1(43897) SELECT
14857 postgres 16 0 7485m 7.2g 7.1g D 10.9 15.2 36:12.30 postgres: st stk 127.0.0.1(52229) SELECT
15862 postgres 15 0 7495m 7.2g 7.1g S 10.0 15.2 146:18.47 postgres: st stk 127.0.0.1(60728) SELECT
9485 postgres 16 0 7488m 7.2g 7.1g S 3.3 15.2 191:53.33 postgres: st stk 127.0.0.1(42127) SELECT
答案 0 :(得分:1)
shared_buffers
似乎映射到Linux上的RSS。
RAM实际上是共享的,它只是Linux占用RAM的方式以及top如何显示它是一个问题。
http://wiki.postgresql.org/wiki/FAQ#Why_does_PostgreSQL_use_so_much_memory.3F