Android 限制 CPU 使用率
文章目录
一、应用场景
在实际生产环境中,因部分计算密集型的功能,造成 CPU 尖刺,影响系统稳定性。所以,某些场景下需要一些限制 CPU 的手段,如 nice、cpulimit、cgroups 等,本文主要介绍 cgroups 在 Android 平台上的简单应用。
二、cgroups 限制
(一) 基础介绍
1. 限制 CPU 关键节点文件
cpu.cfs_period_us:CPU 资源分配周期
cpu.cfs_quota_us:一次 CPU 分配周期内可以执行的时间
2. 限制值计算(多核)
设置两个值之后,多核 CPU 值理论上不超过:
|
|
3.修改内核配置
一般来说,两个节点文件都是不直接开放的,需要修改以下两个内核配置才会出现:
|
|
4.设备默认分组路径
可以将具体的 PID/TID 分配到不同的分组里
默认分组:/dev/cpuctl
后台分组:/dev/cpuctl/bg_non_interactive
(二) 具体操作方法
1.新建分组
默认分组下新建分组,如cpu_test
,对应文件路径即为/dev/cpuctl/cpu_test
2.修改限制值
cpu_test
目录下修改cpu.cfs_period_us
和cpu.cfs_quota_us
3.限制进程/线程
将想要限制的 PID/TID 写入cpu_test
组下的 tasks
文件
三、效果展示
正常运行
限制 CPU 运行
文章作者 SeanHHX
上次更新 2022-09-04