Merge pull request #17807 from taosdata/fix/TD-20097
fix: wrong cpu usage
This commit is contained in:
commit
df2c443a80
|
@ -55,7 +55,7 @@ void *dmSetMgmtHandle(SArray *pArray, tmsg_t msgType, void *nodeMsgFp, bool need
|
||||||
}
|
}
|
||||||
|
|
||||||
void dmGetMonitorSystemInfo(SMonSysInfo *pInfo) {
|
void dmGetMonitorSystemInfo(SMonSysInfo *pInfo) {
|
||||||
taosGetCpuUsage(&pInfo->cpu_engine, &pInfo->cpu_system);
|
taosGetCpuUsage(&pInfo->cpu_system, &pInfo->cpu_engine);
|
||||||
taosGetCpuCores(&pInfo->cpu_cores);
|
taosGetCpuCores(&pInfo->cpu_cores);
|
||||||
taosGetProcMemory(&pInfo->mem_engine);
|
taosGetProcMemory(&pInfo->mem_engine);
|
||||||
taosGetSysMemory(&pInfo->mem_system);
|
taosGetSysMemory(&pInfo->mem_system);
|
||||||
|
|
|
@ -227,9 +227,7 @@ void taosGetSystemInfo() {
|
||||||
#ifdef WINDOWS
|
#ifdef WINDOWS
|
||||||
taosGetCpuCores(&tsNumOfCores);
|
taosGetCpuCores(&tsNumOfCores);
|
||||||
taosGetTotalMemory(&tsTotalMemoryKB);
|
taosGetTotalMemory(&tsTotalMemoryKB);
|
||||||
|
taosGetCpuUsage(NULL, NULL);
|
||||||
double tmp1, tmp2, tmp3, tmp4;
|
|
||||||
taosGetCpuUsage(&tmp1, &tmp2);
|
|
||||||
#elif defined(_TD_DARWIN_64)
|
#elif defined(_TD_DARWIN_64)
|
||||||
long physical_pages = sysconf(_SC_PHYS_PAGES);
|
long physical_pages = sysconf(_SC_PHYS_PAGES);
|
||||||
long page_size = sysconf(_SC_PAGESIZE);
|
long page_size = sysconf(_SC_PAGESIZE);
|
||||||
|
@ -240,9 +238,7 @@ void taosGetSystemInfo() {
|
||||||
taosGetProcIOnfos();
|
taosGetProcIOnfos();
|
||||||
taosGetCpuCores(&tsNumOfCores);
|
taosGetCpuCores(&tsNumOfCores);
|
||||||
taosGetTotalMemory(&tsTotalMemoryKB);
|
taosGetTotalMemory(&tsTotalMemoryKB);
|
||||||
|
taosGetCpuUsage(NULL, NULL);
|
||||||
double tmp1, tmp2, tmp3, tmp4;
|
|
||||||
taosGetCpuUsage(&tmp1, &tmp2);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -447,8 +443,8 @@ void taosGetCpuUsage(double *cpu_system, double *cpu_engine) {
|
||||||
static int64_t curSysTotal = 0;
|
static int64_t curSysTotal = 0;
|
||||||
static int64_t curProcTotal = 0;
|
static int64_t curProcTotal = 0;
|
||||||
|
|
||||||
*cpu_system = 0;
|
if (cpu_system != NULL) *cpu_system = 0;
|
||||||
*cpu_engine = 0;
|
if (cpu_engine != NULL) *cpu_engine = 0;
|
||||||
|
|
||||||
SysCpuInfo sysCpu = {0};
|
SysCpuInfo sysCpu = {0};
|
||||||
ProcCpuInfo procCpu = {0};
|
ProcCpuInfo procCpu = {0};
|
||||||
|
@ -458,8 +454,12 @@ void taosGetCpuUsage(double *cpu_system, double *cpu_engine) {
|
||||||
curProcTotal = procCpu.utime + procCpu.stime + procCpu.cutime + procCpu.cstime;
|
curProcTotal = procCpu.utime + procCpu.stime + procCpu.cutime + procCpu.cstime;
|
||||||
|
|
||||||
if (curSysTotal > lastSysTotal && curSysUsed >= lastSysUsed && curProcTotal >= lastProcTotal) {
|
if (curSysTotal > lastSysTotal && curSysUsed >= lastSysUsed && curProcTotal >= lastProcTotal) {
|
||||||
*cpu_engine = (curSysUsed - lastSysUsed) / (double)(curSysTotal - lastSysTotal) * 100;
|
if (cpu_system != NULL) {
|
||||||
*cpu_system = (curProcTotal - lastProcTotal) / (double)(curSysTotal - lastSysTotal) * 100;
|
*cpu_system = (curSysUsed - lastSysUsed) / (double)(curSysTotal - lastSysTotal) * 100;
|
||||||
|
}
|
||||||
|
if (cpu_engine != NULL) {
|
||||||
|
*cpu_engine = (curProcTotal - lastProcTotal) / (double)(curSysTotal - lastSysTotal) * 100;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lastSysUsed = curSysUsed;
|
lastSysUsed = curSysUsed;
|
||||||
|
|
Loading…
Reference in New Issue