On starting with the Postgres database, it is normal to find many instances of postgres.exe listed in Windows Task Manager.
PostgreSQL is process-based, so it starts one postgres.exe on Windows instance per connection. The postmaster (which accepts connections and starts new Postgres instances for them) is always running. In addition, PostgreSQL generally has one or more "helper" processes like the stats collector, background writer, auto vacuum daemon, walsender, etc, all of which show up as "Postgres" instances. In attached screenshot, I selected a few additional columns ('command line' in particular) in the task manager and found that although these processes showed up as postgres.exe they were actually backend processes (identified with -for backend under the 'command line' column of task manager) or boot processes (identified with -forkboot) or the log process (identified with -forklog) etc.
Despite the number of processes, they actually use very little in the way of real resources.
Each postgres.exe attaches to a shared memory area. This means that you could be using 2 GB of memory (total) for your postgres database, when it looks like you're using 20 GB of memory. (10 backends all showing 2 GB each). The reality is... you're not using (mem * num of postgres.exe)
Comments
0 comments
Please sign in to leave a comment.