On Wed, Nov 9, 2011 at 8:16 PM, Scott Marlowe <scott.marlowe@xxxxxxxxx> wrote:
On Wed, Nov 9, 2011 at 2:25 AM, Venkat Balaji <venkat.balaji@xxxxxxxx> wrote:So it is using 2.5G of mem of which 1.9G is shared memory (i.e. shared
> Hello Everyone,
> I could see the following in the production server (result of the "top" M
> command) -
> PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
> COMMAND
> 25265 postgres 15 0 3329m 2.5g 1.9g S 0.0 4.0
> 542:47.83 postgres: writer process
> The "writer process" refers to bg_writer ? and we have shared_buffers set to
> 1920 MB (around 1.9 GB).
buffers) so the actual amount of RAM it's using is ~600Megs.
I see no problem.
Is this not the indication that the shared_buffers is undersized ?
I doubt it. Sounds more like you're misreading the output of top.
> In an other similar situation, we have "postgres writer process" using up 7
> - 8 GB memory constantly.
Below is the output directly taken from our production box. As per you, the writer process is taking up 1.9g from
shared_buffers and the remaining (around 5.6 GB) from RAM.
Mem: 65980808k total, 65620700k used, 360108k free, 210792k buffers
Swap: 1052248k total, 321144k used, 731104k free, 51721468k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10306 postgres 15 0 15.7g 7.5g 1.9g S 1.9 12.0 1037:05 postgres: writer process
Is this not a problem ?
> pg_tune is suggesting to increase the shared_buffers to 8 GB.Reasonable.
Not really how things work. The OS uses all spare memory as cache.
> If the shared_buffer is not enough, Postgres uses OS cache ?
PostgreSQL uses shared_buffers as a cache. The OS is much more
efficient about caching in dozens of gigabytes than pgsql is.
What if the shared_buffers is not enough to cache the data being read from the database ?
Thanks for your help !
Regards,
VB