mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-07-20 12:12:08 +08:00
fix(dashboard): report application memory accurately
This commit is contained in:
@@ -254,24 +254,24 @@ def cpu2(_: Annotated[str, Depends(verify_apitoken)]) -> Any:
|
||||
|
||||
@router.get(
|
||||
"/memory",
|
||||
summary="获取当前系统内存信息",
|
||||
summary="获取当前应用与系统内存信息",
|
||||
response_model=schemas.DashboardMemoryInfo,
|
||||
)
|
||||
def memory(_: Any = Depends(get_current_active_superuser)) -> Any:
|
||||
"""
|
||||
获取当前系统内存信息
|
||||
获取当前应用与系统内存信息
|
||||
"""
|
||||
return SystemUtils.memory_usage()
|
||||
|
||||
|
||||
@router.get(
|
||||
"/memory2",
|
||||
summary="获取当前系统内存信息(API_TOKEN)",
|
||||
summary="获取当前应用与系统内存信息(API_TOKEN)",
|
||||
response_model=schemas.DashboardMemoryInfo,
|
||||
)
|
||||
def memory2(_: Annotated[str, Depends(verify_apitoken)]) -> Any:
|
||||
"""
|
||||
获取当前系统内存信息 API_TOKEN认证(?token=xxx)
|
||||
获取当前应用与系统内存信息 API_TOKEN认证(?token=xxx)
|
||||
"""
|
||||
return SystemUtils.memory_usage()
|
||||
|
||||
|
||||
@@ -66,17 +66,17 @@ class DownloaderInfo(BaseModel):
|
||||
|
||||
|
||||
class DashboardMemoryInfo(BaseModel):
|
||||
"""仪表板系统内存统计。"""
|
||||
"""仪表板应用进程与系统内存统计。"""
|
||||
|
||||
# 总内存字节数
|
||||
total: int = 0
|
||||
# 已使用内存字节数,不包含缓存
|
||||
# 当前 MoviePilot 进程使用内存字节数
|
||||
used: int = 0
|
||||
# 缓存与缓冲区占用字节数
|
||||
cached: int = 0
|
||||
# 可用内存字节数
|
||||
available: int = 0
|
||||
# 已使用内存占总内存百分比,不包含缓存
|
||||
# 当前 MoviePilot 进程使用内存占总内存百分比
|
||||
usage: float = 0.0
|
||||
|
||||
|
||||
|
||||
@@ -689,17 +689,17 @@ class SystemUtils:
|
||||
@staticmethod
|
||||
def memory_usage() -> schemas.DashboardMemoryInfo:
|
||||
"""
|
||||
获取系统已使用、缓存、可用和总内存信息。
|
||||
获取当前 MoviePilot 进程内存与系统缓存、可用和总内存信息。
|
||||
"""
|
||||
memory = psutil.virtual_memory()
|
||||
total = max(0, int(memory.total))
|
||||
used = max(0, int(memory.used))
|
||||
used = max(0, int(psutil.Process().memory_info().rss))
|
||||
cached = max(
|
||||
0,
|
||||
int(getattr(memory, "cached", 0) or 0)
|
||||
+ int(getattr(memory, "buffers", 0) or 0),
|
||||
)
|
||||
available = max(0, total - used - cached)
|
||||
available = max(0, int(memory.available))
|
||||
usage = used / total * 100 if total else 0.0
|
||||
return schemas.DashboardMemoryInfo(
|
||||
total=total,
|
||||
|
||||
Reference in New Issue
Block a user