fix: 暴露内存回收真实结果
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user