From 63645d248c765244488cd34dbc1bb6528ca6b7c7 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 05 九月 2023 09:58:13 +0800 Subject: [PATCH] 修复编译 --- system-service/sys/sysinfo.go | 188 +++++++++++++++++++++++----------------------- 1 files changed, 94 insertions(+), 94 deletions(-) diff --git a/system-service/sys/sysinfo.go b/system-service/sys/sysinfo.go index 28ead78..9a8eb0a 100644 --- a/system-service/sys/sysinfo.go +++ b/system-service/sys/sysinfo.go @@ -1,94 +1,94 @@ -package sys - -import ( - "fmt" - "os" - "os/exec" - "sort" - "time" - "vamicro/extend/util" - - "basic.com/valib/gogpu.git" - - "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/disk" - "github.com/shirou/gopsutil/host" - "github.com/shirou/gopsutil/mem" -) - -type SummaryInfo struct { - Cpu []float64 `json:"cpu" example:"cpu浣跨敤鐜�"` - Gpu []gogpu.GpuUnitInfo `json:"gpu" example:"gpu浣跨敤鐜�"` - Mem mem.VirtualMemoryStat `json:"mem" example:"鍐呭瓨浣跨敤鐜�"` - Disk disk.UsageStat `json:"disk" example:"纾佺洏绌洪棿"` -} - -const Interval time.Duration = time.Second * 60 - -var Stat = &SummaryInfo{} - -func GatherStat() { - for range time.Tick(Interval) { - // Cpu - if cpuUsedPercent, err := cpu.Percent(time.Second, true); err == nil { - Stat.Cpu = Stat.Cpu[0:0] - for _, v := range cpuUsedPercent { - Stat.Cpu = append(Stat.Cpu, v) - } - } - - // Memory - if meminfo, err := mem.VirtualMemory(); err == nil { - Stat.Mem = *meminfo - } - - // Disk - if disk, err := disk.Usage("/"); err == nil { - Stat.Disk = *disk - } - - // Gpu - agxGpuProcIface := "/sys/devices/gpu.0/load" - - if util.Exists(agxGpuProcIface) { - fd, err1 := os.Open(agxGpuProcIface) - if err1 == nil { - var load int64 - fmt.Fscanf(fd, "%d", &load) - // 妯℃嫙nvidia搴撶殑杈撳嚭 - Stat.Gpu = append(Stat.Gpu, gogpu.GpuUnitInfo{ - GpuMemoryTotal: 1000, - GpuMemoryUsed: load, - }) - fd.Close() - } - } else { - if gpuInfo, err := gogpu.Info(); err == nil { - sort.Sort(gogpu.GPURank(gpuInfo.Info)) - Stat.Gpu = Stat.Gpu[0:0] - for _, v := range gpuInfo.Info { - Stat.Gpu = append(Stat.Gpu, v) - } - } - } - } -} - -func GetSysInfo() map[string]interface{} { - return util.Struct2Map(Stat) -} - -func GetDeviceInfo() map[string]interface{} { - cmd := exec.Command("/bin/sh", "-c", "lsblk -d | grep -v part | grep -v SWAP | grep -v M | grep disk | awk '{printf $4\" \"}'") - disks, _ := cmd.Output() - cpu, _ := cpu.Info() - mem, _ := mem.VirtualMemory() - host, _ := host.Info() - - return util.Struct2Map(map[string]interface{}{ - "cpu": cpu, - "mem": mem, - "host": host, - "disk": string(disks), - }) -} +package sys + +import ( + "fmt" + "os" + "os/exec" + "sort" + "time" + "vamicro/extend/util" + + "basic.com/valib/gogpu.git" + + "github.com/shirou/gopsutil/cpu" + "github.com/shirou/gopsutil/disk" + "github.com/shirou/gopsutil/host" + "github.com/shirou/gopsutil/mem" +) + +type SummaryInfo struct { + Cpu []float64 `json:"cpu" example:"cpu浣跨敤鐜�"` + Gpu []gogpu.GpuUnitInfo `json:"gpu" example:"gpu浣跨敤鐜�"` + Mem mem.VirtualMemoryStat `json:"mem" example:"鍐呭瓨浣跨敤鐜�"` + Disk disk.UsageStat `json:"disk" example:"纾佺洏绌洪棿"` +} + +const Interval time.Duration = time.Second * 60 + +var Stat = &SummaryInfo{} + +func GatherStat() { + for range time.Tick(Interval) { + // Cpu + if cpuUsedPercent, err := cpu.Percent(time.Second, true); err == nil { + Stat.Cpu = Stat.Cpu[0:0] + for _, v := range cpuUsedPercent { + Stat.Cpu = append(Stat.Cpu, v) + } + } + + // Memory + if meminfo, err := mem.VirtualMemory(); err == nil { + Stat.Mem = *meminfo + } + + // Disk + if disk, err := disk.Usage("/"); err == nil { + Stat.Disk = *disk + } + + // Gpu + agxGpuProcIface := "/sys/devices/gpu.0/load" + + if util.Exists(agxGpuProcIface) { + fd, err1 := os.Open(agxGpuProcIface) + if err1 == nil { + var load int64 + fmt.Fscanf(fd, "%d", &load) + // 妯℃嫙nvidia搴撶殑杈撳嚭 + Stat.Gpu = append(Stat.Gpu, gogpu.GpuUnitInfo{ + GpuMemoryTotal: 1000, + GpuMemoryUsed: load, + }) + fd.Close() + } + } else { + if gpuInfo, err := gogpu.Info(); err == nil { + sort.Sort(gogpu.GPURank(gpuInfo.Info)) + Stat.Gpu = Stat.Gpu[0:0] + for _, v := range gpuInfo.Info { + Stat.Gpu = append(Stat.Gpu, v) + } + } + } + } +} + +func GetSysInfo() map[string]interface{} { + return util.Struct2Map(Stat) +} + +func GetDeviceInfo() map[string]interface{} { + cmd := exec.Command("/bin/sh", "-c", "lsblk -d | grep -v part | grep -v SWAP | grep -v M | grep disk | awk '{printf $4\" \"}'") + disks, _ := cmd.Output() + cpu, _ := cpu.Info() + mem, _ := mem.VirtualMemory() + host, _ := host.Info() + + return util.Struct2Map(map[string]interface{}{ + "cpu": cpu, + "mem": mem, + "host": host, + "disk": string(disks), + }) +} -- Gitblit v1.8.0