diff --git a/admin/inertia/pages/settings/system.tsx b/admin/inertia/pages/settings/system.tsx
index 83309d6..f0aaf97 100644
--- a/admin/inertia/pages/settings/system.tsx
+++ b/admin/inertia/pages/settings/system.tsx
@@ -17,8 +17,13 @@ export default function SettingsPage(props: {
initialData: props.system.info,
})
+ // Use (total - available) to reflect actual memory pressure.
+ // mem.used includes reclaimable buff/cache on Linux, which inflates the number.
+ const memoryUsed = info?.mem.total && info?.mem.available != null
+ ? info.mem.total - info.mem.available
+ : info?.mem.used || 0
const memoryUsagePercent = info?.mem.total
- ? ((info.mem.used / info.mem.total) * 100).toFixed(1)
+ ? ((memoryUsed / info.mem.total) * 100).toFixed(1)
: 0
const swapUsagePercent = info?.mem.swaptotal
@@ -118,7 +123,7 @@ export default function SettingsPage(props: {
label="Memory Usage"
size="lg"
variant="memory"
- subtext={`${formatBytes(info?.mem.used || 0)} / ${formatBytes(info?.mem.total || 0)}`}
+ subtext={`${formatBytes(memoryUsed)} / ${formatBytes(info?.mem.total || 0)}`}
icon={