> Zeev Suraski wrote:
>> I might be missing something, but idle processes of an SQL server should
>> take virtually no memory. The code image is shared, the read-only data is
>> shared, and the only memory that's not shared is the memory taken for
>> process specific stuff, mainly memory needed during the processing of a
>> query. That memory will be freed as soon as the query is done, so it
>> doesn't really matter.
Well, not really. On most versions of Unix, free() will never give
acquired memory back to the OS, so a process's data space never shrinks.
Therefore, each backend process will own an amount of memory
corresponding to the largest/most complex query it has processed to date.
An idle backend won't necessarily have a minimal amount of data space.
Of course, if the process is idle then its data space is likely to get
swapped out. So you're right that the amount of real memory it is
using might be little or none.
regards, tom lane