LSF可以让用户自定义一些资源,其中动态资源可以通过ELIM向LSF汇报,下面以本地磁盘(一个机械盘一个SSD)负载为例:
在$LSF_ENVDIR/lsf.shared的Begin Resource中增加
diskut Numeric 60 Y (Percentage of CPU time during which I/O requests were issued to local disk)
ssdut Numeric 60 Y (Percentage of CPU time during which I/O requests were issued to local SSD disk)
在$LSF_ENVDIR/lsf.cluster.的Begin ResourceMap中增加一行
diskut [default]
ssdut [default]
在$LSF_SERVERDIR/下新建一个文件elim.disk内容如下并且chmod +x elim.disk
#!/bin/sh
declare -a util
while true; do
util=(`sar -d 60 1|grep Average|grep dev8|awk '{print $10}'`)
case "${#util[@]}" in
1)
echo 1 diskut ${util[0]}
;;
2)
echo 2 diskut ${util[0]} ssdut ${util[1]}
;;
esac
done
所有节点需要lsadmin limrestart,然后用lsload -l就可以看到多出来两列了
bsub时可以使用这些参数
-R “order[diskut]” 优先选择disk负载最轻的
-R “select[diskut < 10]” 要求disk负载小于10%
-R “rusage[diskut=10]” 为这个任务预留10%的disk负载。rusage不影响lsload的显示,但是会叠加到lsload显示的实际值上面从而影响order select的结果,除非lsf确定预留的资源被这个job所使用了(比如mem)。