mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
refactor: trim memory.
This commit is contained in:
parent
bc1f15e843
commit
695d59d1d5
|
|
@ -5,14 +5,22 @@ import threading
|
|||
from maxkb.const import CONFIG
|
||||
from common.utils.logger import maxkb_logger
|
||||
import random
|
||||
import psutil
|
||||
|
||||
CURRENT_PID=os.getpid()
|
||||
# 1 hour
|
||||
GC_INTERVAL = 3600
|
||||
|
||||
def enable_force_gc():
|
||||
before = int(psutil.Process(CURRENT_PID).memory_info().rss / 1024 / 1024)
|
||||
collected = gc.collect()
|
||||
maxkb_logger.debug(f"(PID: {CURRENT_PID}) Forced GC ({collected} objects collected)")
|
||||
try:
|
||||
import ctypes
|
||||
ctypes.CDLL("libc.so.6").malloc_trim(0)
|
||||
except Exception:
|
||||
pass
|
||||
after = int(psutil.Process(CURRENT_PID).memory_info().rss / 1024 / 1024)
|
||||
maxkb_logger.debug(f"(PID: {CURRENT_PID}) Forced GC ({collected} objects and {before - after} MB recycled)")
|
||||
t = threading.Timer(GC_INTERVAL - random.randint(0, 900), enable_force_gc)
|
||||
t.daemon = True
|
||||
t.start()
|
||||
|
|
|
|||
Loading…
Reference in New Issue