openlava图形化监控工具openlavaMonitor

原创
2018/07/10 16:54
阅读数 1.4W

功能上,更晚开发的lsfMonitor可以完美兼容openlavaMonitor,且功能更强,可以直接移步 https://my.oschina.net/liyanqing/blog/4694818

 

 

OpenLava是100%免费、开源、兼容IBM® Spectrum LSFTM的工作负载调度器,支持各种高性能计算和分析应用,在各大IC公司被广泛引用。

openlava开源免费,兼容LSF,是IC公司(尤其是中小型IC公司)的福音。但是由于种种原因,开源团队不再进行开发工作,且工具缺少配套的job/resource监控类工具,所以并不易用。以往的工作中,根据openlava使用中的实际需求,我开发过一些openlava辅助类工具,以帮助openlava的工具配置,数据采集,前台监控。出于资源共享的目的,我把数据采集和前台监控的功能采用标准python工具的格式进行了重新开发,命名为openlavaMonitor,开源到了github上,以方便大家下载使用 (地址https://github.com/liyanqing1987/openlavaMonitor)。

下面对工具做一下简单介绍,帮助大家了解。

 

1. 工具介绍

工具的使用分为两部分: 后台数据采集,前台数据展示。这一部分主要讲一下工具的前台展示部分。

工具为图形界面,包含4个页面,分别展示不同的内容。

1.1 第一个页面为JOB页,主要展示job相关信息。

在Job输入框输入job id,点击Check按钮,可以显示出job的关键信息,job的详细信息,job的memory使用量变化曲线。

其中job的memory使用量变化曲线十分有用,可以用来判断job的资源使用情况,用来debug job crash的原因(很多job crash都跟memory使用过量有关)。

1.2 第二个页面为JOBS页,列出所有job的简要信息。

可以按照job user/job status/queue/host来选择jobs,点击Check按钮可以获取所有符合条件的jobs。默认显示所有queue上RUN的jobs。

下方显示job的基本信息,包括用户/job状态/所在queue/所在host/所用slot/cpuTime/resource设置/内存使用量等。

所有的列,点击表头可排序。

点击job item可以跳转到JOB页面,显示出相关job的信息。

1.3 第三个页面为HOSTS页,列出所有host的简要信息。

可以显示host的基本信息,状态/所属queue/job数目/cpu和memory的使用量等。

所有的列,点击表头可排序。

点击host item可以跳转到JOBS页面,列出host上所有的jobs。

1.4 第四个页面为QUEUES页,主要展示QUEUE相关信息。

左上侧有queue列表和每个queue上RUN/PEND的job数目,点击queue item,右侧或列出queue上最近一段时间RUN/PEND的job数目(每天平均值),下侧会列出queue的具体信息。

queue的一段时间的RUN/PEND的job数目可以帮我了解queue的负载情况,从而动态地调整queue上的资源分配。

 

2. 安装配置

如果你想使用openlavaMonitor,下面是具体的安装配置过程。

2.1 安装python和openlava

极力建议安装anaconda(3-4.2.0及以上版本),可以解决所有的库依赖。

如果仅安装python,需要安装3.5及以上版本,并且需要手工安装所有依赖库。

openlava的安装请参照我的另一篇博文 openlava-4.0 安装教程(VMware/centos7)

2.2 git clone

将openlavaMonitor的源码从github上clone到本地。如果你的linux不能联网,你也可以Download ZIP包,传到linux端然后解压。

 

2.3 用root账号拷贝到合适目录,安装

用root账号将安装包拷贝到合适的路径。

采用python3 install.py来安装。(极力推荐使用anaconda3版本的python)

如果你没有安装anaconda,你还需要手工安装所有依赖库(命令如下),如果linux没有联网的话,我只能祝你好运了。

2.4 工具配置

minitor/conf/config.py文件用于做基本配置,可以用来指定数据库存储路径“dbPath”和临时文件存放路径“tempPath”,当然你也可以使用默认值而不做任何更改。

别忘了用root账号把这两个目录的写权限都打开,否则其他用户无法往里面写文件。

2.5 启用数据采集程序

monitor/bin/bsample.py用于采集基本数据。

主程序中需要用到job和queue的基本信息,所以我们至少要启动服务采集这两个信息。

你可以启动bsample.py作为服务程序,按照interval周期一直采集,也可以在crontab中定期启动程序采集信息,我采用后者。

2.6 测试

我们丢两个job,然后采集一下数据,看看效果。

注意,不要用root账号执行,用普通账号丢job。

然后我们临时手工采集一下数据,看一下效果。

启动程序。

已经能看到两个job了。

点击第一个job,看看它的详细信息。

只有一个采样点,所以memory曲线比较单调,不过规律采样后曲线就会好看多了。

再看看host和queue的信息。

因为这是测试用新装的系统,所以只有一个queue和一个host,如果是公司实际的应用环境,信息还是很丰富的。

 

后记:

这个工具包含了基本的和通用的功能,能够满足openlava的简单应用场景。

实际应用中,欢迎大家基于自身的应用需求对它做改造。我们在实际的应用中也是添加了更多的专有功能的,但是限制于每个公司的IT环境不同,就没有把special的东西放到这个开源工具里面。

 

 

 

展开阅读全文
加载中
点击加入讨论🔥(19) 发布并加入讨论🔥
19 评论
4 收藏
1
分享
返回顶部
顶部