作业I/O带宽控制

利用AIP的扩展性,我们可以控制作业运行时对I/O的带宽进行控制。用外插的一个工具/opt/skyformai/sbin/cgroup_blk_net 通过cgroup控制作业网络I/O的带宽,或/和文件读写的带宽。这个工具通过读取CB_JOBID(作业号)和CB_JOBPID(作业主进程号)环境变量建立控制网络带宽和文件访问带宽。

工具用法

把需要控制的网络设备或某个目录路径以及带宽限制值作为命令行的参数,网络设备带宽限制的单位为mbps,文件访问带宽限制的值为MBytes/s。

例子:

/opt/skyformai/sbin/cgroup_blk_net eth0:100 /share:120

这个例子中,限制作业在网络设备eth0上的带宽为100 mbps,访问目录/share的带宽为120MB/s。

AIP配置

配置队列的前处理程序,并把前后处理的运行用户改成root(缺省为作业用户)。在/opt/skyformai/etc/cb.yaml中,修改队列配置:

queues:
- name: medium
  pre_exec: "/opt/skyformai/sbin/cgroup_blk_net eth0:100" # 限制作业使用eth0的带宽为 100 mbps
  pre_post_exec_user: root

pre_exec所定义的命令在作业启动前以root身份运行,达到控制作业带宽的作用。