From e38654fe9eff4562da4f18f8f018aed7879d493c Mon Sep 17 00:00:00 2001 From: qixiaoning <jony.kee@outlook.com> Date: 星期四, 21 八月 2025 15:02:17 +0800 Subject: [PATCH] 获取算力接口实现 --- sysinfo-service/service/psutil.go | 39 +++++++++++++++++++ system-service/service/devInfoSync.go | 50 ++++++++++++------------ 2 files changed, 63 insertions(+), 26 deletions(-) diff --git a/sysinfo-service/service/psutil.go b/sysinfo-service/service/psutil.go index 0d6a332..cf9cc72 100644 --- a/sysinfo-service/service/psutil.go +++ b/sysinfo-service/service/psutil.go @@ -33,9 +33,35 @@ Stat.Mem = *meminfo } + + // Gpu + // agxGpuProcIface := "/sys/devices/gpu.0/load" + + // if 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) + // } + // } + // } + // Gpu agxGpuProcIface := "/sys/devices/gpu.0/load" - if _, err := os.Stat(agxGpuProcIface); !os.IsExist(err) { + if Exists(agxGpuProcIface){ fd, err1 := os.Open(agxGpuProcIface) if err1 == nil { var load int64 @@ -136,3 +162,14 @@ return Stat } + +func Exists(path string) bool { + _, err := os.Stat(path) //os.Stat鑾峰彇鏂囦欢淇℃伅 + if err != nil { + if os.IsExist(err) { + return true + } + return false + } + return true +} diff --git a/system-service/service/devInfoSync.go b/system-service/service/devInfoSync.go index 440e7a6..d813714 100644 --- a/system-service/service/devInfoSync.go +++ b/system-service/service/devInfoSync.go @@ -155,30 +155,30 @@ if diff { // 鍚屾璁惧淇℃伅鍒板晢鍩� - if util.GetShopUrl() != "" { - body := util.Struct2Map(i) - url := "http://" + util.GetShopUrl() + "/data/api-d/device/syncDevToCloud" - header := map[string]string{ - "Authorization": token, - } - data, err := util.DoPostRequest(url, util.CONTENT_TYPE_JSON, body, nil, header, 10*time.Second) - if err != nil { - logger.Error("send devInfo to cloud err:", err) - return - } - logger.Debug("syncDevToCloud result:", string(data)) - var result bhomedbapi.Result - err = json.Unmarshal(data, &result) - if err != nil { - logger.Error("unmarshal err:", err) - return - } - if result.Success { - lstSync = &i - } else { - logger.Error("syncDevToCloud result:", result) - } - } + // if util.GetShopUrl() != "" { + // body := util.Struct2Map(i) + // url := "http://" + util.GetShopUrl() + "/data/api-d/device/syncDevToCloud" + // header := map[string]string{ + // "Authorization": token, + // } + // data, err := util.DoPostRequest(url, util.CONTENT_TYPE_JSON, body, nil, header, 10*time.Second) + // if err != nil { + // logger.Error("send devInfo to cloud err:", err) + // return + // } + // logger.Debug("syncDevToCloud result:", string(data)) + // var result bhomedbapi.Result + // err = json.Unmarshal(data, &result) + // if err != nil { + // logger.Error("unmarshal err:", err) + // return + // } + // if result.Success { + // lstSync = &i + // } else { + // logger.Error("syncDevToCloud result:", result) + // } + // } //鏌ョ湅鏄惁鏈夌鐞嗚妭鐐圭鐞嗙潃姝ゅ彴璁惧 syncToDevManager(i) @@ -289,7 +289,7 @@ return nil } -//璁$畻鎸佺画鏃堕暱 +// 璁$畻鎸佺画鏃堕暱 func timeSpan(startTime time.Time) string { sp := time.Since(startTime) day := strconv.Itoa(int(sp.Hours() / 24)) //澶╂暟 -- Gitblit v1.8.0