RSS is smaller than VSZ, but the behavior appeared to be the same. The point is that accumulated resources do not seem to get released.
I have made changes (upgraded psycopg2), so I will report on this with further testing. On Mar 4, 11:15 am, ron_m <[email protected]> wrote: > RSS (Resident Set Size) is a closer approximation of actual physical memory > consumed by a process. VSZ includes shared libraries and anything else > required to be mapped in to make the process complete but shared libraries > are not in physical memory more than once for all processes except the > writeable data area they may contain. > > Presuming Linux or UNIX like system and CPython memory allocation ultimately > comes down to the library function malloc which is layered over the system > call sbreak. The malloc library call manages allocation of memory to > whatever is requesting it such as the CPython interpreter but works from a > pool for performance efficiency. If it runs out of room it calls the system > using sbreak to get another chunk. It is possible to reduce the size by > calling sbreak with a smaller size but malloc must be sure the area given > back is completely free from use by objects. This was typically never done > in the past. If malloc frees a lot of space then it will just reuse it on > the next allocation request. I admit I have not dug into the CPython use of > malloc reading code to see what it does. What I am saying is the numbers > reported by system utilities can be misleading specifically if sbreak size > reduction is not exercised.

