【性能优化】cpu时间抖动问题的解决修复

问题描述:

边缘设备的cpu在低占有率时,进程运行时间抖动较大,在高占有率时,运行时间抖动更稳定
低占有率运行情况图:
在这里插入图片描述
相同处理逻辑循环中,两次处理的时间间隔:
在这里插入图片描述

原因排查:

考虑问题引起的原因,是由于进程在高频核上运行时,时间间隔较短,切换到低频核后,时间间隔会变大,导致进程运行时间抖动较大
CPU频率监控命令:watch -n 1 sudo cpupower monitor

低占有率时cpu频率监测:发现不同核的频率相差较大
在这里插入图片描述
高占有率时cpu频率监测:发现不同核的频率相差较小
在这里插入图片描述

问题解决:

1.设置cpu最低运行频率,使进程在切换核时,时间间隔保持稳定。
先把intel pstate驱动干掉:

vim /etc/default/grub

在quiets plash后添加intel_pstate=disable

在这里插入图片描述

更新grub

sudo update-grub

重启以后,可以看到driver已经从intel_pstate改为acpi_cpufreq了,现在可以愉快地改频率了。喜欢echo进sysfs的也可以,这里用工具cpufrequtils来做:

cpufreq-set -g userspace
cpufreq-set -f 3000000

在这里插入图片描述

此时CPU就被固定在2GHz的频率了,可调频率键入cat available_frequence应该有,不过能选的不多,有特殊需求就要修改这个静态数组然后重新编译内核了。

测试结果:
在这里插入图片描述
相同处理逻辑循环中,两次处理的时间间隔:
可以看到时间间隔明显变平稳,切延迟更低
在这里插入图片描述

2.进程绑核(待验证)
因为大概率是进程切核引起的问题,所以考虑该方案应该也可以解决问题。

arm平台也亲测有效,arm修改cpu频率方法请自行搜索
具体锁频的数值建议咨询供应商,避免烧cpu

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值