Checkpoint process RAM usage Environment:  

 Centos 6.5
 PostgreSQL 9.3
 shared_buffers = 3000 MB
 checkpoint_segments = 128


Top command: top -M (shift F -&gt; N)



The checkpointer process uses 1.3 GB RAM

Question:
Why does checkpointer process use a lot of RAM ?

Referenced:
this article, postgresql doc, interdb.jb 9.7, this post
The "VIRT" size (3.2 GB in this case) is the total amount of memory the process can see. The reason all of the postgres processes have a similar VIRT count is because they all map the 3 GB of shared memory into themselves, and in addition to that allocate whatever more they need to operate.

The "RES" size is the amount of memory touched by the individual processes. So, the checkpointer process has touched (directly read or written) about 1.5 GB of memory, most of which is almost certainly from the shared buffers pool. So, this 1.5 GB of RES is a mostly a subset of the 3 GB allocated for the shared buffers, plus a smaller amount for active per-process work.

To see which is which, use a utility such as pmap.