大机群或者高通量负载集群操作系统调参#

调度器主机#

当集群中主机数量超过500,或者活动作业(等待和运行作业总和)数超过十万(100,000),或者有频繁的命令交互,如多个脚本 频繁通过调用bsub命令从 jservice 获取作业状态,调度器主机(master)的Linux操作系统需要调整网络通讯参数。

安装完成AIP后,运行以下命令设置参数,并使这些参数立即生效:

cat <<EOF >> /etc/sysctl.d/20-aip.conf
net.core.somaxconn=65535
net.ipv4.tcp_max_syn_backlog=8192
net.core.netdev_max_backlog=10000

net.core.wmem_max=16777216
net.core.rmem_max=16777216

net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_fin_timeout=5
net.ipv4.ip_local_port_range=16500 65535

net.ipv4.tcp_keepalive_time=600
EOF

sysctl -q  -p /etc/sysctl.d/20-aip.conf

备注

所有调度器的备用主机,一般为集群配置 cb.yaml 中hosts部分的前面3台主机,都需要运行以上命令调整参数

如果过集群中有持续海量作业提交,为了提供及时的作业提交响应,可以在把调度器的调度周期略微拉长 一些。推荐为10-15秒(缺省为4秒)。在/opt/skyformai/etc/cb.yaml中修改参数如下:

general:
  sched_interval: 10

然后重启调度器:

csadmin reconfig

当集群主机数超过1000台时,调整 cb.yaml 中主机负载采集时间:

cluster:
  load_interval: 15

登录主机#

如果用户在这些主机上运行脚本,里面有大量AIP的命令,如bjobs查询作业状态,需要修改缺省的Linux最大打开文件数。可以用以下 命令修改最大打开文件数:

cat <<EOF >> /etc/security/limits.conf
* soft nofile 600000
* hard nofile 600000
EOF

用户登录后可以检查参数 ulimit -n。很多Linux发行版缺省值为1024,对于生产系统,这个值太小。

小技巧

通过AIP启动的作业中的最大打开文件数由AIP服务/lib/systemd/system/aip.service文件控制,这个最大值为40000。可以运行命令检查:csub -I ulimit -n