不知道您有没有遇到过这样的问题,LSF作业长时间等待(bjobs显示作业处于PEND状态),但是机器负载并不高,CPU和内存仍然有很多资源,但是bhosts却显示节点已经closed_Full了?
您可能还有这样的困惑:
想统计不同项目占用集群资源的情况,怎么统计?
想知道不同队列的资源利用率是否均衡,如何知道?
想知道用户提交的作业占用内存的大小分布,怎么查看?
有没有办法按EDA工具来统计资源占用情况?
研发人员想了解某个计算任务占用CPU和内存的实时曲线,怎么查看?
如何对比两台机器的各方面(CPU、内存、磁盘IO、网络)性能指标?
……
上面这些问题,并不能通过传统的监控手段(例如开源Zabbix工具)来解决,而是需要将系统硬件资源监控和LSF调度管理要素(作业、用户、队列、项目等)相结合,才可以实现。
今天介绍的工具HPCinsights就是这样一款对LSF集群进行监控和分析的软件。
这是HPCinsights的架构示意图。
通过将实时硬件监控信息与LSF资源信息进行有机结合,HPCinsights可以实现对LSF集群各个维度(集群、队列、项目、作业、用户、应用)的监控、统计、查询和分析功能:
监控功能
HPCinsights可以对LSF队列、整体服务器、单台或多台服务器等维度监控集群资源使用情况,包括:
-
CPU核数、CPU主频、CPU温度、CPU利用率
-
总内存大小、可用内存大小、内存利用率
-
磁盘空间大小、文件系统空间使用率
-
磁盘I/O实时读写速率
-
网络实时发送和接收速率
-
Slot数、Slot利用率
监控功能部分截图:
查询功能
HPCinsights具有如下查询功能:
-
按作业ID、用户名、项目名、队列名、作业名、应用程序名等查询作业
-
查询正在运行作业实时占用CPU和内存曲线图,查询作业状态和实时输出日志
-
查询已完成作业历史CPU和内存曲线图,统计历史占用CPU最多核数和内存最大值
-
按队列查询服务器实时资源信息
查询功能部分截图:
统计功能
HPCinsights可以按照服务器、队列、用户、项目、 EDA工具等维度,统计指定时间范围内的性能指标,包括:
-
CPU利用率、CPU占用时长
-
内存利用率、内存占用量
-
Slot利用率、Slot占用数量
-
作业平均等待时长
也可以按用户统计作业占用内存大小的分布情况。
统计功能部分截图:
分析功能
分析功能是HPCinsights的一个非常有用的功能,这个功能可以帮助管理员清楚的了解到,集群中存在哪些导致资源严重浪费和可能导致系统OOM的作业,包括:
-
用户指定的CPU数/Slot数严重不合理,导致CPU资源浪费
-
用户指定的内存预留(bsub的-R "rusage[mem=xxx]"参数)严重不合理,导致内存浪费或可能引发OOM甚至宕机问题
-
用户通过LSF的CPU亲和性参数(bsub的-R "affinity[]"参数)指定CPU绑定不合理,导致CPU资源浪费
除了上面这些分析功能以外,HPCinsights还可以帮助管理员找出异常挂起的作业,避免不必要的系统资源浪费(挂起状态的作业并不释放内存,因而会导致内存资源浪费)。
分析功能部分截图:
HPCinsights与其它监控软件比较
本文开始提到了开源监控软件Zabbix,同类型的监控软件有很多,例如Ganglia和IBM的RTM。相对于这些监控软件,HPCinsights有哪些特点呢?下面这个表格对这几款常用监控软件进行了功能对比。可以看到,HPCinsights不仅具备常见的系统监控能力,在作业资源分析、多维度资源统计和用户作业资源实时监控等方面,也提供了很多实用功能。
Demo视频
下面是HPCinsights这款软件的功能演示视频。
LSF集群监控和分析工具HPCinsights功能演示
如果您想进一步了解HPCinsights这款软件,可以联系我们。
欢迎关注下方微信公众号【HPC常青园】,共同交流HPC集群管理经验和最佳实践。如果您有关于HPC集群的具体需求,欢迎邮件沟通交流:hpc@ivyent.cn。