CN101778139B - 一种基于HTTP协议的Linux集群监测系统及实现方法 - Google Patents
一种基于HTTP协议的Linux集群监测系统及实现方法 Download PDFInfo
- Publication number
- CN101778139B CN101778139B CN2010101093679A CN201010109367A CN101778139B CN 101778139 B CN101778139 B CN 101778139B CN 2010101093679 A CN2010101093679 A CN 2010101093679A CN 201010109367 A CN201010109367 A CN 201010109367A CN 101778139 B CN101778139 B CN 101778139B
- Authority
- CN
- China
- Prior art keywords
- cluster
- timer
- http
- parameter
- performance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于HTTP协议的Linux集群监测系统及实现方法,系统包括:一用于实时提取节点性能参数的CGI模块;一用于向所有节点发送HTTP请求的HTTP请求模块;一用于生成可控制定时器,并与HTTP请求模块结合使用的定时器模块;一HTTP异步采集数据模块。本发明采用可任意设定超时时间的定时器来控制发送HTTP异步请求,根据不同规模的集群设定不同的定时器,从而提高对Linux集群的适应性,并提高了集群监测系统的处理性能。本发明作为一种基于HTTP协议的Linux集群监测系统及实现方法可广泛应用于Linux高性能集群及Linux负载均衡集群中。
Description
技术领域
本发明涉及信息技术领域,特别是一种基于HTTP协议的Linux集群监测系统及其实现方法。
背景技术
传统的所谓集群就是通过高性能网络将多台同构或异构的计算机连接起来并协同完成特定任务的计算机机群,集群对外的表现为一个单一入口的高性能系统,其内部结构对用户是透明的。Linux集群技术是基于开源Linux系统的高端技术,是Linux技术与网络技术发展的产物。目前,Linux高性能集群中的节点服务器(简称节点)采用并行计算方法,把一个海量的计算任务分解成若干个子任务,然后分配给各节点实施并行计算,并通过标准化的消息传递接口(PVM或MPI)实现各节点的同步和数据的汇集,从而实现可无限升级的高性能计算。目前,Linux高性能集群逐步取代高性能巨型计算机,成为高性能计算领域的最佳选择。随着因特网的高速增长,单台因特网服务器已无法满足人们的需求,Linux负载均衡集群能够提供与节点个数成正比的负载能力,将系统的整体负载合理地分配到各个节点上,使得每个节点都不会因为超负荷工作而崩溃,并且当对系统整体负载需求增大时,可以通过增加节点,平滑地拓展集群的负荷能力。这类集群(Linux负载均衡集群)非常适合提供大访问量的网络服务,已成为高性能因特网服务器最优解决方案。如Google的搜索引擎就是由约2万台Linux节点构成负载均衡集群来提供24小时不间断的高速搜索服务。
为了发挥Linux集群的作用,必须实时监测集群节点的运行情况,并根据节点的负载情况进行合理调度。但是对于集群监测系统与实现方法还是一片空白。这样导致不能很好的实时监测各节点的负载运行情况并进行合理调度并分配子任务,从而极大影响Linux集群的处理能力。
发明内容
为了解决上述的技术问题,本发明的目的是提供一种能实时高效且可靠的基于HTTP协议的Linux集群监测系统。
本发明的另一个目的是提供一种实现实时高效且可靠的基于HTTP协议的Linux集群监测方法。
本发明解决其技术问题所采用的技术方案是:
一种基于HTTP协议的Linux集群监测系统,其特征在于:包括:
一用于实时提取节点性能参数的CGI模块;
一用于向所有节点发送HTTP请求的HTTP请求模块;
一用于生成可控制定时器,并与HTTP请求模块结合使用的定时器模块;
一用于根据CGI模块的返回,异步采集各节点性能参数数据,对HTTP请求失败进行处理,同时结合专用算法,按照节点顺序集成所有节点各种实时的性能参数,为正确显示集群性能提供基础数据的HTTP异步采集数据模块。
进一步,还包括一展示集群实时性能,并提供用户对各种参数的控制或选择功能的集群性能可视化模块。
进一步,所述集群性能可视化模块以直观的柱状图方式展示集群实时性能,并提供用户对各种参数的控制或选择功能。
一种基于HTTP协议的Linux集群监测系统的实现方法,包括以下步骤:
01、输入集群起始IP及有关参数;
02、绘图参数的初始化;
03、定时器模块启动定时器;
04、定时器是否超时,如果是超时则执行步骤0b,如果不是超时则执行步骤05;
05、HTTP请求模块向所有节点发送HTTP请求;
06、CGI模块远程执行CGI程序;
07、如果HTTP请求返回是出错则执行步骤08,如果HTTP请求返回没出错则执行步骤09;
08、将节点性能参数充0,然后执行步骤0a;
09、HTTP异步采集数据模块异步采集数据并分解出节点性能参数,然后执行步骤0a;
0a、排序并生成节点参数记录;
0b、对性能参数进行归一化处理;
0c、定时器重新计时,执行步骤04。
进一步,所述步骤0b与步骤0c之间还包括:步骤0d、集群性能可视化模块实现集群性能参数的可视化。
进一步,所述步骤06包括以下步骤:
11、计算内存占用率;
12、计算CPU使用率;
13、计算磁盘IO负载率;
14、计算网络输出流量;
15、计算网络输入流量;
16、读取节点IP地址;
17、以字符串形式按顺序输出上述数据。
进一步,所述步骤05包括以下步骤:
21、调用定时器模块启动定时器;
22、按节点生成QHttp对象;
23、通过QHttp对象向所有节点发送HTTP请求;
24、调用HTTP异步采集数据模块接收QHttp对象返回数据;
25、定时器超时则执行步骤26,否则执行步骤24;
26、调用集群性能可视化模块显示图形;
27、定时器重新计时,执行步骤22。
进一步,所述步骤03包括以下步骤:
31、生成定时器对象;
32、设定定时器参数;
33、启动定时器计时。
进一步,所述步骤09包括以下步骤:
51、绘图参数初始化;
52、从内存缓冲区提取性能参数;
53、对性能参数进行归一化处理;
54、生成QPainter绘图对象;
55、绘制性能参数图形。
本发明的有益效果是:本发明系统通过CGI方式提取节点性能参数,CGI程序占用节点资源少、快速、实用;通过专用算法模块实现HTTP无序返回结果的有序化,准确定位节点的性能参数;本发明采用可任意设定超时时间的定时器来控制发送HTTP异步请求,根据不同规模的集群设定不同的定时器,从而提高对Linux集群的适应性,并提高了集群监测系统的处理性能。
本发明的另一个有益效果是:本发明实现方法采用HTTP异步请求与异步数据采集技术,极大地提高了监测系统的实时性,通过CGI方式提取节点性能参数,CGI程序占用节点资源少、快速、实用;本方法充分发挥Linux集群的作用,实时监测集群节点的运行情况,为根据节点的负载情况进行合理调度提供了数据支持。
附图说明
下面结合附图和实施例对本发明作进一步说明。
图1是本发明Linux集群监测系统程序流程图;
图2是本发明CGI模块流程图;
图3是本发明HTTP请求模块流程图;
图4是本发明定时器模块流程图;
图5是本发明HTTP异步采集数据模块流程图;
图6是本发明集群性能可视化模块流程图。
具体实施方式
参照图1 ,一种基于HTTP协议的Linux集群监测系统,其特征在于:包括:
一用于实时提取节点性能参数的CGI模块101;
一用于向所有节点发送HTTP请求的HTTP请求模块102;
一用于生成可控制定时器,并与HTTP请求模块结合使用的定时器模块103;
一用于根据CGI模块的返回,异步采集各节点性能参数数据,对HTTP请求失败进行处理,同时结合专用算法,按照节点顺序集成所有节点各种实时的性能参数,为正确显示集群性能提供基础数据的HTTP异步采集数据模块104。
进一步,还包括一展示集群实时性能,并提供用户对各种参数的控制或选择功能的集群性能可视化模块105。
进一步,所述集群性能可视化模块105以直观的柱状图方式展示集群实时性能,并提供用户对各种参数的控制或选择功能。
一种基于HTTP协议的Linux集群监测系统的实现方法,包括以下步骤:
01、输入集群起始IP及有关参数;
02、绘图参数的初始化;
03、定时器模块103启动定时器;
04、定时器是否超时,如果是超时则执行步骤0b,如果不是超时则执行步骤05;
05、HTTP请求模块102向所有节点发送HTTP请求;
06、CGI模块101远程执行CGI程序;
07、如果HTTP请求返回是出错则执行步骤08,如果HTTP请求返回没出错则执行步骤09;
08、将节点性能参数充0,然后执行步骤0a;
09、HTTP异步采集数据模块104异步采集数据并分解出节点性能参数,然后执行步骤0a;
0a、排序并生成节点参数记录;
0b、对性能参数进行归一化处理;
0c、定时器重新计时,执行步骤04。
进一步,所述步骤0b与步骤0c之间还包括:步骤0d、集群性能可视化模块105实现集群性能参数的可视化。
进一步参照图2,所述步骤06包括以下步骤:
11、计算内存占用率;
12、计算CPU使用率;
13、计算磁盘IO负载率;
14、计算网络输出流量;
15、计算网络输入流量;
16、读取节点IP地址;
17、以字符串形式按顺序输出上述数据。
进一步参照图3,所述步骤05包括以下步骤:
21、调用定时器模块103启动定时器;
22、按节点生成QHttp对象;
23、通过QHttp对象向所有节点发送HTTP请求;
24、调用HTTP异步采集数据模块104接收QHttp对象返回数据;
25、定时器是超时执行步骤26,否则执行步骤24;
26、调用集群性能可视化模块105显示图形;
27、定时器重新计时,执行步骤22。
进一步参照图4,所述步骤03包括以下步骤:
31、生成定时器对象;
32、设定定时器参数;
33、启动定时器计时。
进一步参照图6,所述步骤09包括以下步骤:
51、绘图参数初始化;
52、从内存缓冲区提取性能参数;
53、对性能参数进行归一化处理;
54、生成QPainter绘图对象;
55、绘制性能参数图形。
作为优选的实施方式,本发明采用以下具体的实现方法:
本发明是一种基于HTTP协议的Linux集群监测系统及实现方法,在利用CGI(Common Gateway Interface)技术获取单个Linux集群服务器或计算节点实时性能参数的基础上,通过HTTP协议实现异步采集节点性能参数,最后,在监控节点上利用QT C++语言编程实现Linux集群系统性能的实时监测及其可视化。Linux集群监测系统的全部技术都是基于Linux系统和QT开源开发环境下编程实现的。具体实施方式描述如下:
1、Linux集群监测系统总工作流程
启动监测系统(进程00);根据集群的实际情况,输入集群起始IP及有关参数(进程01);进行绘图参数的初始化(进程02);调用定时器模块,启动定时器(进程03);调用HTTP请求模块向所有节点发送HTTP请求(进程05);远程调用CGI模块执行节点CGI程序(进程06);开辟内存缓冲区,对HTTP请求返回进行处理,当HTTP请求返回出错时,将该节点性能参数充0处理(进程08),当HTTP请求返回正常时,调用异步采集模块,异步采集节点性能参数数据(进程09);使用专用算法集成并按节点顺序整理出对应节点负载的实时参数(进程0a);等待定时器超时,对性能参数进行归一化处理(进程0b);调用可视化模块对集群性能参数进行可视化(进程0d)。重新设定定时器,计时开始(进程0c);进入循环,重新调用HTTP请求模块向所有节点发送HTTP请求,直至用户退出监测系统。
2、节点实时性能参数的提取
2.1 节点性能参数
节点的实时性能参数主要包括CPU使用率、内存占有率、磁盘IO负载及网络负载。在Linux系统中,内存虚拟文件系统实时记录了系统的运行参数,其中:文件/proc/stat记录了CPU实时性能参数,包括用户模式(user)、低优先级的用户模式(nice)、内核模式(system)以及空闲(idle)的CPU时间。CPU利用率通过进程12获得,计算公式为:(user+nice+system)/(user+nice+system+idle) *100%;/proc/meminfo文件记录了当前内存的使用量(usedmem)以及内存总量(totalmem)。
本发明中通过执行命令$free –m来读取参数并通过进程11获得。内存占有率计算公式为:(usedmem/totalmem)*100%;/proc/net/dev文件记录了从节点输出的数据包和流入节点的数据包数,分别通过进程14、15获得。/proc/diskstats文件记录了当前磁盘IO负载的相关数据,通过执行命令$ iostat来读取参数并通过进程13获得。节点IP地址作为节点标识,用于区分不同节点的性能参数,通过执行命令$ /sbin/ifconfig来读取参数并通过进程16获得。最后,通过进程17输出上述性能参数数据。
2.2 CGI程序实现节点性能参数的提取
启动各节点Web服务器的CGI功能后,使用C语言和Linux的Bash Shell编写CGI程序来实时提取节点性能参数。CGI模块程序流程图如图2 所示。
3、集群系统性能的实时监测及其可视化
3.1 HTTP客户端的实现
QT是由挪威的Trolltech公司开发基于C++语法的跨平台应用程序框架,是开源桌面系统KDE的基石,QT还支持Linux嵌入式开发。QT提供了一个全新的网络模块(QtNetwork)和功能强大的绘图功能。如下通过QT网络模块中QHttp类实现异步采集节点服务器实时性能参数及其可视化功能。运行监测系统的节点作为HTTP客户端,使用基于TCP/IP中HTTP协议的QHttp类,并启动定时器定时远程执行各节点的CGI程序,采用异步工作方式通过QHttp类的get()函数采集节点CGI程序返回的实时性能参数。当节点Web服务器运行正常时,我们将获取到节点实时的性能参数;当节点Web服务器出现故障时,QHttp类将返回出错代码,此时,需要通过QHttp的槽函数httpRequestFinished()将节点所有性能参数充“0”。图3、图5分别为HTTP请求模块流程图和HTTP异步采集数据模块流程图。
3.2 各节点性能参数集成方法
由于采用HTTP协议的异步工作方式,每个节点返回信息是无序的,所以用于记录节点性能参数的内存缓冲区file文件中的数据记录也是无序的。如何区分属于哪个节点的性能参数是关键,因此,通过返回节点IP地址作为节点的唯一标识,来区分节点并实现节点性能参数集成。
3.3 集群系统性能的可视化实现
集群系统性能的可视化以图示方式直接展示各节点的实时性能及故障情况,是Linux集群负载实时监测系统的重要组成部分。图6 为集群性能可视化模块流程图。
以上是对本发明的实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。
Claims (9)
1.一种基于HTTP协议的Linux集群监测系统,其特征在于:包括:
一用于实时提取节点性能参数的CGI模块(101);
一用于向所有节点发送HTTP请求的HTTP请求模块(102);
一用于生成可控制定时器,并与HTTP请求模块结合使用的定时器模块(103);
一用于根据CGI模块的返回,异步采集各节点性能参数数据,对HTTP请求失败进行处理,同时结合专用算法,按照节点顺序集成所有节点各种实时的性能参数,为正确显示集群性能提供基础数据的HTTP异步采集数据模块(104)。
2.根据权利要求1所述的一种基于HTTP协议的Linux集群监测系统,其特征在于:还包括一展示集群实时性能,并提供用户对各种参数的控制或选择功能的集群性能可视化模块(105)。
3.根据权利要求2所述的一种基于HTTP协议的Linux集群监测系统,其特征在于:所述集群性能可视化模块(105)以直观的柱状图方式展示集群实时性能,并提供用户对各种参数的控制或选择功能。
4.一种基于HTTP协议的Linux集群监测系统的实现方法,其特征在于:包括以下步骤:
01、输入集群起始IP及有关参数;
02、绘图参数的初始化;
03、定时器模块(103)启动定时器;
04、定时器是否超时,如果是超时则执行步骤0b,如果不是超时则执行步骤05;
05、HTTP请求模块(102)向所有节点发送HTTP请求;
06、CGI模块(101)远程执行CGI程序;
07、如果HTTP请求返回是出错则执行步骤08,如果HTTP请求返回没出错则执行步骤09;
08、将节点性能参数充0,然后执行步骤0a;
09、HTTP异步采集数据模块(104)异步采集数据并分解出节点性能参数,然后执行步骤0a;
0a、排序并生成节点参数记录;
0b、对性能参数进行归一化处理;
0c、定时器重新计时,执行步骤04。
5.根据权利要求4所述的一种基于HTTP协议的Linux集群监测系统的实现方法,其特征在于:所述步骤0b与步骤0c之间还包括:
步骤0d、集群性能可视化模块(105)实现集群性能参数的可视化。
6.根据权利要求4所述的一种基于HTTP协议的Linux集群监测系统的实现方法,其特征在于:所述步骤06包括以下步骤:
11、计算内存占用率;
12、计算CPU使用率;
13、计算磁盘IO负载率;
14、计算网络输出流量;
15、计算网络输入流量;
16、读取节点IP地址;
17、以字符串形式按顺序输出上述数据。
7.根据权利要求4所述的一种基于HTTP协议的Linux集群监测系统的实现方法,其特征在于:所述步骤05包括以下步骤:
21、调用定时器模块(103)启动定时器;
22、按节点生成QHttp对象;
23、通过QHttp对象向所有节点发送HTTP请求;
24、调用HTTP异步采集数据模块(104)接收QHttp对象返回数据;
25、定时器超时则执行步骤26,否则执行步骤24;
26、调用集群性能可视化模块(105)显示图形;
27、定时器重新计时,执行步骤22。
8.根据权利要求4所述的一种基于HTTP协议的Linux集群监测系统的实现方法,其特征在于:所述步骤03包括以下步骤:
31、生成定时器对象;
32、设定定时器参数;
33、启动定时器计时。
9.根据权利要求4所述的一种基于HTTP协议的Linux集群监测系统的实现方法,其特征在于:所述步骤09包括以下步骤:
51、绘图参数初始化;
52、从内存缓冲区提取性能参数;
53、对性能参数进行归一化处理;
54、生成QPainter绘图对象;
55、绘制性能参数图形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101093679A CN101778139B (zh) | 2010-02-05 | 2010-02-05 | 一种基于HTTP协议的Linux集群监测系统及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101093679A CN101778139B (zh) | 2010-02-05 | 2010-02-05 | 一种基于HTTP协议的Linux集群监测系统及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101778139A CN101778139A (zh) | 2010-07-14 |
CN101778139B true CN101778139B (zh) | 2012-07-04 |
Family
ID=42514463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101093679A Expired - Fee Related CN101778139B (zh) | 2010-02-05 | 2010-02-05 | 一种基于HTTP协议的Linux集群监测系统及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101778139B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929667A (zh) * | 2012-10-24 | 2013-02-13 | 曙光信息产业(北京)有限公司 | 一种hadoop集群性能的优化方法 |
CN104239193A (zh) * | 2014-09-04 | 2014-12-24 | 浪潮电子信息产业股份有限公司 | 一种基于Linux的CPU和内存使用率收集的方法 |
CN109408154A (zh) * | 2018-11-02 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种linux系统下自动打开关闭网卡网口功能的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014034A (zh) * | 2006-12-31 | 2007-08-08 | 武汉蓝星科技股份有限公司 | 一种基于u盘服务器的集群解决方法 |
-
2010
- 2010-02-05 CN CN2010101093679A patent/CN101778139B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101014034A (zh) * | 2006-12-31 | 2007-08-08 | 武汉蓝星科技股份有限公司 | 一种基于u盘服务器的集群解决方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101778139A (zh) | 2010-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200358710A1 (en) | Container-based mobile code offloading support system in cloud environment and offloading method thereof | |
JP6961844B2 (ja) | ストレージボリューム作成方法および装置、サーバ、並びに記憶媒体 | |
Bryk et al. | Storage-aware algorithms for scheduling of workflow ensembles in clouds | |
WO2020119649A1 (zh) | 一种任务调度模拟系统 | |
JP2018518744A (ja) | コンピュートクラスタ内のリソースインスタンスグループの自動スケーリング | |
US8898422B2 (en) | Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration | |
CN107526645A (zh) | 一种通信优化方法及系统 | |
CN104102543A (zh) | 一种云计算环境中负载调整的方法和装置 | |
CN103514205A (zh) | 海量数据处理方法和系统 | |
CN104486255A (zh) | 业务资源调度方法和装置 | |
CN110020046B (zh) | 一种数据抓取方法及装置 | |
Zinn et al. | Towards reliable, performant workflows for streaming-applications on cloud platforms | |
US20150032893A1 (en) | Visualization of workload distribution on server resources | |
CN107977167A (zh) | 一种基于纠删码的分布式存储系统的退化读优化方法 | |
Shi et al. | A case study of tuning MapReduce for efficient Bioinformatics in the cloud | |
CN103902355A (zh) | 一种医学影像快速加载方法 | |
Mohamed et al. | Accelerating data-intensive genome analysis in the cloud | |
CN101778139B (zh) | 一种基于HTTP协议的Linux集群监测系统及实现方法 | |
US8977752B2 (en) | Event-based dynamic resource provisioning | |
Costan et al. | TomusBlobs: scalable data‐intensive processing on Azure clouds | |
CN107528871A (zh) | 存储系统中的数据分析 | |
CN102760045A (zh) | 一种智能存储设备及其数据处理方法 | |
CN104299170B (zh) | 间歇性能源海量数据处理方法 | |
CN101382955B (zh) | 一种机群文件系统中文件读取的方法及系统 | |
Tudoran et al. | Tomusblobs: Towards communication-efficient storage for mapreduce applications in azure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120704 Termination date: 20150205 |
|
EXPY | Termination of patent right or utility model |