查看问题详情
编号 | 项目 | 分类 | 查看权限 | 报告日期 | 最后更新 |
---|---|---|---|---|---|
0000319 | Anolis OS 8 | - cloud kernel 5.10 | public | 2021-10-13 10:32 | 2021-10-18 15:13 |
报告员 | CruzZhao | 分派给 | Shiloong | ||
优先级 | normal | 严重性 | minor | 出现频率 | always |
状态 | assigned | 处理状况 | open | ||
标题 | 0000319: [sched]混部场景下,压力较高时,运行在同一个core上的在线业务会相互干扰,导致性能下降 | ||||
描述 | 混部场景下,压力较高时,运行在同一个core上的在线业务会相互干扰,导致性能下降 | ||||
问题重现步骤 | 1.部署高优先级业务(见附件1),avg、P50、P95、P99等数据(运行结束后有输出),bvt设置为2 2.部署高优先级业务和低优先级业务stress-ng,其中低优先级业务cpu使用率为67%(相对于整机),启动命令为stress-ng -c $nr_cpus -l 67,获取在线业务的数据 3.对比存在线场景和混部场景下的在线业务rt数据 期望各项数据差距均在5%以内 实际结果:P95、P95差距在7%左右 | ||||
附注 | Aone id: 37265013 | ||||
标签 | 没加标签. | ||||
|
doCpuWork.go (1,349 字节)
package main import ( "fmt" "github.com/rcrowley/go-metrics" // "log" "math" // "os" "sync" "time" ) func doCpuWork(cpuSize int, count int) time.Duration { var wg sync.WaitGroup start := time.Now() tmp := 0.0 for c := 0; c < cpuSize; c++ { wg.Add(1) go func() { for i := 0; i < count; i++ { tmp = math.Sqrt(float64(i)) } wg.Done() }() } wg.Wait() elapsed := time.Since(start) // fmt.Println("execute time: ", elapsed) return elapsed } func main() { s := metrics.NewExpDecaySample(1028, 0.015) h := metrics.NewHistogram(s) metrics.Register("baz", h) for i := 0; i < 200; i++ { rt := doCpuWork(4, 20000000) h.Update(int64(rt)) // time.Sleep(time.Duration(10) * time.Millisecond) } ps := h.Percentiles([]float64{0.5, 0.90, 0.95, 0.99}) fmt.Println("quantile 0.5: ", ps[0], "ns") fmt.Println("quantile 0.90: ", ps[1], "ns") fmt.Println("quantile 0.95: ", ps[2], "ns") fmt.Println("quantile 0.99: ", ps[3], "ns") } |
日期 | 用户名 | 字段 | 更改 |
---|---|---|---|
2021-10-13 10:32 | CruzZhao | 新建问题 | |
2021-10-13 10:32 | CruzZhao | 添加了以下文件:: doCpuWork.go | |
2021-10-18 15:13 | geliwei-ali | 分派给 | => Shiloong |
2021-10-18 15:13 | geliwei-ali | 状态 | 新建 => 已分配 |