Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]System Guard flow control | CPU thredshold| 系统自适应流控|以CPU作为阈值场景下的取值范围问题 #539

Open
sunyucheng opened this issue Jun 28, 2023 · 7 comments · May be fixed by #540 or #554

Comments

@sunyucheng
Copy link

sunyucheng commented Jun 28, 2023

背景:
我在测试使用CPU作为阈值的系统自适应流控方案。
问题:
1、在 func IsValidSystemRule(rule *Rule) error中校验的 cpu取值范围为0.0~1.0。但是在实际测试中发现func getProcessCpuStat() (float64, error)函数的实际返回值大小为0.0~100.0。导致在注册规则时因阈值非法invalid CPU usage, valid range is [0.0, 1.0]而失败。
该处是否应该修改一下cpu的合法性校验范围。

@sunyucheng
Copy link
Author

我使用的gosutil是最新的版本v3.21.6,从gosutil的源码看,这里的p.Percent(0)的取值也似乎应该是0.0~100.0,在gosutil中的关键逻辑如下所示

func calculatePercent(t1, t2 *cpu.TimesStat, delta float64, numcpu int) float64 {
	if delta == 0 {
		return 0
	}
	delta_proc := t2.Total() - t1.Total()
	overall_percent := ((delta_proc / delta) * 100) * float64(numcpu)
	return overall_percent
}

https://github.com/shirou/gopsutil/blob/fb83fb22d68f468adf2a01a9ed4963e7d980cfd7/process/process.go#L308

@sunyucheng sunyucheng changed the title System Guard flow control | CPU thredshold| 系统自适应流控|以CPU作为阈值场景下的取值范围问题 [FAQ]System Guard flow control | CPU thredshold| 系统自适应流控|以CPU作为阈值场景下的取值范围问题 Jun 28, 2023
@sunyucheng sunyucheng changed the title [FAQ]System Guard flow control | CPU thredshold| 系统自适应流控|以CPU作为阈值场景下的取值范围问题 [DISCUSSION]System Guard flow control | CPU thredshold| 系统自适应流控|以CPU作为阈值场景下的取值范围问题 Jun 28, 2023
@sunyucheng
Copy link
Author

Hi @sczyh30 ,可以给我一些意见么

@sunyucheng sunyucheng changed the title [DISCUSSION]System Guard flow control | CPU thredshold| 系统自适应流控|以CPU作为阈值场景下的取值范围问题 [BUG]System Guard flow control | CPU thredshold| 系统自适应流控|以CPU作为阈值场景下的取值范围问题 Jun 29, 2023
@binbin0325
Copy link
Collaborator

this could be a bug, are you interested in fixing it

@sunyucheng
Copy link
Author

this could be a bug, are you interested in fixing it

Certainly

@sunyucheng
Copy link
Author

Hi @binbin0325, I have already mentioned PR #540

@erouss
Copy link

erouss commented Jan 18, 2024

May I ask why this fix has not passed? Is it not ready to be repaired?

@erouss erouss linked a pull request Jan 22, 2024 that will close this issue
@chenjiaxinatwps
Copy link

实际看这个值在多核环境会大于100,还要考虑核数吧
this cpu usage may be > 100, when cpu core > 1. so the cpu num should take into account

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants