一种高性能计算集群登录节点资源限制方法
2021-05-29池成悦韦建文周子豪
唐 金,池成悦,韦建文,周子豪
(上海交通大学网络信息中心,上海 200240)
0 引言
近年来,随着高等教育经费投入的增加以及计算资源需求的不断增长,国内外很多高校和科研机构纷纷建设了高性能计算集群[1-3]。上海交通大学于2013年建成并投入使用高性能计算集群。经过多年的发展,目前集群算力已达到2.1PFLOPS,科研用户数逐渐增多,日均服务机时直线上升,科研成果不断创新高[4-7]。
集群和用户规模的不断扩大增加了集群登录节点的负载以及管理上的难度[8]。集群登录节点属于共享资源,允许用户进行一些简单不耗资源的操作。但是,不同用户对集群的使用操作以及相关规章制度的了解存在着一定的差异。有些用户由于刚刚接触高性能计算,对集群认知比较有限,经常会直接在登录节点运行耗费资源的任务,导致登录节点长时间负载过高[9]。随着高性能计算集群的用户数量逐渐增加,对集群自动化需求越来越高。因此上海交通大学高性能计算集群急需一种自动、实时的监测技术来调节登录节点资源使用[10]。
国外几个HPC中心曾尝试使用cgroup 对共享资源进行限制。由印第安纳大学编写的“cgroup_py”脚本,可以起到限制用户资源的作用,但该脚本与CentOS 7 系统或基于Systemd 的系统不兼容;由美国普渡大学Maves和John 编写的“cgroups_py”脚本,可以对给定用户的Systemd user-$ UID.slice 资源进行限制,该方法基于简单的阈值法,只能起到静态的限制作用,可扩展性不强。犹他大学Dylan、Robben 等在基于Cgroups和Systemd理论基础上,提出了一种可以对共享资源进行监测的方法Arbiter2,该方法不仅可以监视用户CPU和内存使用率,还可以强制执行默认资源限制、惩罚消耗共享资源过多的用户。……
