diff --git a/beszel/internal/agent/agent.go b/beszel/internal/agent/agent.go index dde1fab0..3c9af211 100644 --- a/beszel/internal/agent/agent.go +++ b/beszel/internal/agent/agent.go @@ -211,7 +211,12 @@ func (a *Agent) getSystemStats() (system.Info, system.Stats) { systemInfo.Cores = cores } if threads, err := cpu.Counts(true); err == nil { - systemInfo.Threads = threads + if threads > 0 && threads < systemInfo.Cores { + // in lxc logical cores reflects container limits, so use that as cores if lower + systemInfo.Cores = threads + } else { + systemInfo.Threads = threads + } } return systemInfo, systemStats diff --git a/beszel/internal/entities/system/system.go b/beszel/internal/entities/system/system.go index ee5b2393..32d68371 100644 --- a/beszel/internal/entities/system/system.go +++ b/beszel/internal/entities/system/system.go @@ -48,7 +48,7 @@ type Info struct { Hostname string `json:"h"` KernelVersion string `json:"k,omitempty"` Cores int `json:"c"` - Threads int `json:"t"` + Threads int `json:"t,omitempty"` CpuModel string `json:"m"` // Os string `json:"o"` Uptime uint64 `json:"u"` diff --git a/beszel/site/src/components/routes/system.tsx b/beszel/site/src/components/routes/system.tsx index a99b8684..43715507 100644 --- a/beszel/site/src/components/routes/system.tsx +++ b/beszel/site/src/components/routes/system.tsx @@ -220,7 +220,11 @@ export default function SystemDetail({ name }: { name: string }) { }, { value: uptime, Icon: ClockArrowUp, label: 'Uptime' }, { value: system.info.k, Icon: TuxIcon, label: 'Kernel' }, - { value: `${system.info.m} (${system.info.c}c/${system.info.t}t)`, Icon: CpuIcon }, + { + value: `${system.info.m} (${system.info.c}c${system.info.t ? `/${system.info.t}t` : ''})`, + Icon: CpuIcon, + hide: !system.info.m, + }, ] as { value: string | number | undefined label?: string diff --git a/beszel/site/src/types.d.ts b/beszel/site/src/types.d.ts index e6bd035e..1fa1f8ec 100644 --- a/beszel/site/src/types.d.ts +++ b/beszel/site/src/types.d.ts @@ -17,7 +17,7 @@ export interface SystemInfo { /** cpu percent */ cpu: number /** cpu threads */ - t: number + t?: number /** cpu cores */ c: number /** cpu model */