메모리 상태 또 변경

This commit is contained in:
2025-12-28 23:06:44 +09:00
parent 474e20eb5c
commit 248eb6e6e0
5 changed files with 47 additions and 84 deletions

View File

@@ -297,20 +297,16 @@ function isContainerChanged(serverId: number, containerName: string, metric: str
return changedKeys.value.has(`container-${serverId}-${containerName}-${metric}`)
}
// 서버 메모리 퍼센트 계산: (total - free) / total * 100
// 서버 메모리 퍼센트: memory_percent 직접 사용
function calcMemPercent(server: ServerStatus): number {
const total = Number(server.memory_total) || 0
const free = Number(server.memory_free) || 0
if (total === 0) return 0
return ((total - free) / total) * 100
return server.memory_percent || 0
}
// 서버 메모리 용량 포맷: used/total GB
// 서버 메모리 용량 포맷: used/total GB (memory_used는 DB에서 계산된 값)
function formatServerMem(server: ServerStatus): string {
const used = Number(server.memory_used) || 0
const total = Number(server.memory_total) || 0
const free = Number(server.memory_free) || 0
if (total === 0) return '-'
const used = total - free
const usedGB = (used / (1024 * 1024 * 1024)).toFixed(1)
const totalGB = (total / (1024 * 1024 * 1024)).toFixed(1)
return `${usedGB}/${totalGB}G`

View File

@@ -405,13 +405,8 @@ async function fetchSnapshots() {
load: validLoad.length ? (validLoad.reduce((a: number, b: number) => a + b, 0) / validLoad.length).toFixed(1) : '-'
}
// Memory/Swap 라인 차트 - 퍼센트 계산: (total - free) / total * 100
const memData = data.map((d: any) => {
const total = Number(d.memory_total) || 0
const free = Number(d.memory_free) || 0
if (total === 0) return 0
return ((total - free) / total) * 100
})
// Memory/Swap 라인 차트 - memory_percent 직접 사용
const memData = data.map((d: any) => d.memory_percent || 0)
const swapData = data.map((d: any) => {
const total = Number(d.swap_total) || 0
const used = Number(d.swap_used) || 0
@@ -424,16 +419,10 @@ async function fetchSnapshots() {
])
// 평균 계산 (Memory, Swap) + 사용량/전체용량 (BigInt는 문자열로 반환되므로 Number로 변환)
// 메모리 사용량 = total - free (free가 있으면 사용, 없으면 used 사용)
// 메모리 퍼센트도 (total - free) / total * 100 으로 계산
// 메모리 사용량 = memory_used (DB에서 계산된 값)
const validMem = memData.filter((v: number) => v > 0)
const validSwap = swapData.filter((v: number) => v >= 0)
const memUsedData = data.map((d: any) => {
const total = Number(d.memory_total) || 0
const free = Number(d.memory_free) || 0
const used = Number(d.memory_used) || 0
return free > 0 ? (total - free) : used
}).filter((v: number) => v > 0)
const memUsedData = data.map((d: any) => Number(d.memory_used) || 0).filter((v: number) => v > 0)
const avgMemUsedGB = memUsedData.length ? (memUsedData.reduce((a: number, b: number) => a + b, 0) / memUsedData.length / (1024 * 1024 * 1024)).toFixed(1) : '-'
const memTotalGB = data[0]?.memory_total ? (Number(data[0].memory_total) / (1024 * 1024 * 1024)).toFixed(1) : '-'
const swapUsedData = data.map((d: any) => Number(d.swap_used) || 0).filter((v: number) => v >= 0)