fix: 暴露内存回收真实结果

This commit is contained in:
pikastech
2026-07-21 09:20:02 +02:00
parent 5e62ff4657
commit 01ca1d3dad
4 changed files with 46 additions and 8 deletions
+11 -1
View File
@@ -455,6 +455,9 @@ def collect_cgroup_reclaim_candidates():
"memoryCurrentBytes": current,
"memorySwapCurrentBytes": read_cgroup_integer(path, "memory.swap.current"),
"memoryStat": memory_stat,
"requestedMemoryReclaimBytes": reclaim_bytes,
"requestedMemoryReclaim": fmt_bytes(reclaim_bytes),
"estimateKind": "kernel-request-upper-bound",
"expectedMemoryRssBytes": reclaim_bytes,
"expectedMemoryRss": fmt_bytes(reclaim_bytes),
"estimatedDiskBytes": 0,
@@ -728,9 +731,16 @@ def execute_cgroup_reclaim_candidate(candidate):
cgroup_delta = max(0, cgroup_before - cgroup_after) if cgroup_before is not None and cgroup_after is not None else 0
host_delta = max(0, after_available - before_available) if after_available is not None else 0
succeeded = write_error is None or cgroup_delta > 0 or host_delta > 0
partial = max(cgroup_delta, host_delta) < safe_int(configured.get("reclaimBytes"))
if write_error and succeeded:
outcome = "partial-reclaim-after-kernel-error"
elif succeeded and partial:
outcome = "partial-reclaim"
else:
outcome = "reclaim-requested" if succeeded else "reclaim-request-failed"
return {
"status": "succeeded" if succeeded else "failed",
"outcome": "partial-reclaim-after-kernel-error" if write_error and succeeded else ("reclaim-requested" if succeeded else "reclaim-request-failed"),
"outcome": outcome,
"reclaimedMemoryBytes": max(cgroup_delta, host_delta),
"hostMemAvailableDeltaBytes": (after_available - before_available) if after_available is not None else None,
"cgroupMemoryDeltaBytes": cgroup_delta,