1. 功能概述¶
本sample实现限制进程cpu占用率和运行的cpu核功能,此处主要介绍该sample的实现与使用方法。
1.1. 软件架构说明¶
本sample基于Linux通用的cgroup API,通过操作cgroup的cpu子系统和cpuset子系统配置文件,来限制sample进程的cpu占用率和运行的cpu核。

1.2. 代码位置与目录结构¶
本sample代码位置和目录结构如下:
代码位置如下:
目录结构如下:
1.3. API流程说明¶
以下为sample内API调用流程图:

2. 编译¶
2.1. 编译环境¶
本sample的编译环境使用SDK中的build工具,请参考: Build 环境建立。
2.2. 编译说明¶
本sample的编译依赖封装Linux cgroup API链接库libhbcgroup提供的头文件:
编译依赖的库为:
编译命令:
3. 运行¶
3.1. 支持平台¶
J6X Matrix
3.2. 板端部署及配置¶
本sample的可执行文件位于板端如下路径:
3.3. 运行指南¶
3.3.1. 运行参数说明¶
下面的表格是cgroup_sample具体参数的说明:
参数名 | 用法 | 范围 | 是否必需 |
|---|---|---|---|
-c | 指定限制的cpu占用率 | 整数,[1,100] | 否 |
-C | 指定限制运行的cpu核 | 整数,视芯片的cpu核数量而定 | 否 |
-t | 指定运行进程的演示时间 | 整数,[0,∞),单位为s,默认1s | 否 |
-h | 帮助菜单 |
| 否 |
如果-c和-C都不选择,则不会限制cgroup_sample进程的cpu占用率和运行的cpu核。
3.3.2. 帮助菜单¶
3.3.3. 运行方法¶
执行命令示例:
限制cgroup_sample 进程的cpu占用率为20%:
限制cgroup_sample进程只运行在cpu核2:
限制cgroup_sample进程运行在cpu核1,4:
3.3.4. 运行结果说明¶
运行本sample后,可通过top命令验证本sample进程的cpu占用率和运行的cpu核。
运行结果1

运行结果2

特别说明
查看cpu核,在执行top命令后,需进行如下操作:
按f键,弹出管理窗口;
按上下键选择下图指示的属性P;
按空格键选中该属性(选中后会高亮);
按q键退出;
即可显示进程运行的cpu核。
