如果用户想限制物理机中Ascend DMI工具运行时CPU占用率或内存使用量,可参考本章节进行操作。
cgroups全称control groups,是Linux内核提供的一种可以限制单个或多个进程所使用资源的机制,可以对CPU、内存等资源实现精细化的控制。通过限制Ascend DMI工具运行时占用的CPU占用率和内存使用量,可防止Ascend DMI工具占用资源过多导致其他程序无法正常运行。具体操作参考如下:
cd /sys/fs/cgroup/cpu mkdir ascend-dmi # 目录名可自定义
创建完ascend-dmi目录后,会自动在该目录下生成cpu.cfs_period_us、cpu.cfs_quota_us等文件。
文件名 |
说明 |
---|---|
cpu.cfs_period_us |
配置CPU时间周期长度。单位是微秒(us),取值范围为1000~1000000,默认为100000。 |
cpu.cfs_quota_us |
设置的周期内允许占用的CPU时间(指单核的时间,多核需要在设置时累加)。 默认值为-1,表示不受CPU时间的限制。
|
tasks |
需要限制的程序进程pid列表。对于限制生效后的pid派生的子进程,会自动将其子进程的pid也加入到该文件中。 建议将运行程序的shell的pid(执行命令echo $$)添加到tasks之后,再启动程序。 |
以限制最大CPU使用率为50%为例,具体操作如下:
cpu.cfs_period_us文件值保持默认,修改cpu.cfs_quota_us值为50000,在准备运行Ascend DMI工具的shell窗口执行echo $$查询其pid,并将其写入tasks文件中。
cd /sys/fs/cgroup/memory mkdir ascend-dmi # 目录名可自定义
创建完ascend-dmi目录后,会自动在该目录下生成memory.limit_in_bytes、tasks等文件。
文件名 |
说明 |
---|---|
memory.limit_in_bytes |
限制进程的内存使用量。 例如限制最多使用500M内存,值应为500*1024*1024=524288000。将memory.limit_in_bytes文件中的值修改为计算所得值524288000。 |
tasks |
需要限制的程序进程pid列表。对于限制生效后的pid派生的子进程,会自动将其子进程的pid也加入到该文件中。 建议将运行程序的shell的pid(执行命令echo $$)添加到tasks之后,再启动程序。 |
以限制最多使用500M内存为例,将memory.limit_in_bytes文件中的值修改为计算所得值524288000,在准备运行Ascend DMI工具的shell窗口执行echo $$查询其pid,并将其写入tasks文件中。