Limited cache size

This commit is contained in:
krateng 2022-04-12 16:02:30 +02:00
parent cabfa298b9
commit 189dfb58bc
1 changed files with 11 additions and 5 deletions

View File

@ -11,9 +11,12 @@ from doreah.logging import log
from ..globalconf import malojaconfig from ..globalconf import malojaconfig
HIGH_NUMBER = 1000000 HIGH_NUMBER = 1000000
CACHE_SIZE = 10000
ENTITY_CACHE_SIZE = 1000000
CACHE_ADJUST_STEP = 100
cache = lru.LRU(HIGH_NUMBER) cache = lru.LRU(CACHE_SIZE)
entitycache = lru.LRU(HIGH_NUMBER) entitycache = lru.LRU(ENTITY_CACHE_SIZE)
hits, misses = 0, 0 hits, misses = 0, 0
@ -111,13 +114,16 @@ def invalidate_entity_cache():
def trim_cache(): def trim_cache():
ramprct = psutil.virtual_memory().percent ramprct = psutil.virtual_memory().percent
if ramprct > malojaconfig["DB_MAX_MEMORY"]: if ramprct > malojaconfig["DB_MAX_MEMORY"]:
log(f"{ramprct}% RAM usage, reducing caches!") log(f"{ramprct}% RAM usage, clearing cache and adjusting size!")
ratio = 0.6 #ratio = 0.6
targetsize = max(int(len(cache) * ratio),50) #targetsize = max(int(len(cache) * ratio),50)
#log(f"Reducing to {targetsize} entries") #log(f"Reducing to {targetsize} entries")
#cache.set_size(targetsize) #cache.set_size(targetsize)
#cache.set_size(HIGH_NUMBER) #cache.set_size(HIGH_NUMBER)
cache.clear() cache.clear()
if cache.get_size() > CACHE_ADJUST_STEP:
cache.set_size(cache.get_size() - CACHE_ADJUST_STEP)
#log(f"New RAM usage: {psutil.virtual_memory().percent}%") #log(f"New RAM usage: {psutil.virtual_memory().percent}%")
print_stats() print_stats()