I have a Python client-server application and its server has been running for about 4 days... Its memory usage (as reported by /proc/PID/status -> VmSize) has grown to about 660Mb, and I was wondering if there could be a memory leak, so I used objgraph to print out its memory usage (first 20 object types):
58524 tuple
33270 dict
15483 function
9976 list
5396 set
2644 weakref
2489 builtin_function_or_method
2482 instancemethod
1898 OrderedSet
1751 _BindParamClause
1680 _generated_label
1485 Comparator
1398 type
1315 InstrumentedAttribute
1267 CustomColumn
1165 cell
1146 ScalarAttributeImpl
1146 ColumnProperty
1146 ColumnLoader
1075 wrapper_descriptor
I don't see anything particularly "smelly" there, am I missing something? Maybe this is just because Python doesn't release unused memory to the OS immediately?
(This is a CherryPy+SQLAlchemy application)