From: Gert B. <ger...@gm...> - 2012-08-27 08:33:06
|
Hi We have a RPC server which CPU usage increases over time, after a week it will max out one core. >From my testing(Using pyrasite's dump stack) it seems that all the time is spend in: file "/usr/lib/pymodules/python2.6/turbogears/database.py", line 275, in commit self.threadingLocal.connection.commit() File "/usr/local/lib/python2.6/dist-packages/SQLObject-1.3.1-py2.6.egg/sqlobject/dbconnection.py", line 802, in commit subCaches = [(sub[0], sub[1].allIDs()) for sub in self.cache.allSubCachesByClassNames().items()] File "/usr/local/lib/python2.6/dist-packages/SQLObject-1.3.1-py2.6.egg/sqlobject/cache.py", line 263, in allIDs for id, value in self.expiredCache.items(): Currently the overhead for each commit and rollback is around 2-3 seconds. Almost all of our tables have caching disabled via 'sqlmeta: cacheValues = False'. No state is kept in memory between requests and we typically write significantly more rows to the DB than what is read, ie. A lot of writes which are not read often and a few hundred rows which are read often and that can be changed by other processes. Does anyone have a suggestion on how to mitigate or further debug the problem? Regards Gert Burger |