硅谷杂志:跨平台服务器性能监控系统模型设计 |
2012-11-19 10:30 作者:叶家青 陈建国 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
【硅谷网11月19日文】据《硅谷》杂志2012年第17期刊文称,随着企业信息化的普及,越来越多的企业都架设自己的服务器,他们迫切需要一种能够监控服务器性能状况的系统。在分析服务器性能指标技术和远程监控技术的基础上,提出跨平台服务器性能监控系统原型,能够实时远程监控机房服务器的性能,显示各服务器实时性能参数,具有优化、预警、报警等功能。实验结果表明,该模型工作很好,它可以自动、有效地监控远程服务器,保障企事业单位业务的正常运行。
0引言
信息化革命以来,为了提升企业的竞争力、提高企业的管理水平,企业信息化变得越来越普及。可以说,当前企业单位都或多或少的架设了自己的服务器,这些服务器都是部署在机房里,经常无人值守。而这些服务器运行的平台可能是Windows服务器,也可能是SunSolaris或者HP的UNIX,情况不一而足。由于企业对这些服务器的可持续运行能力要求很高,而传统的人工监测方式无法做到对性能故障防范于未然,一般都是发现系统运行缓慢或无法运行了,才去定位故障的原因,这样即浪费了企业的人力物力,又影响了企业的正常工作。所以,如果能有一个可以实现远程集中监控服务器性能,并且能够迅速定位性能故障的系统,就变得非常必要。
本文从整体需求问题出发,将整体需求问题分解成远程集中监控、跨平台监控两个大问题,然后针对每个大问题做进一步分解、分析和研究,然后提出相应问题的解决方案。最后,在分解研究的基础上提出系统的整体解决方案,以供参考。
1如何实现远程集中监控
对于这个问题的解决,我们先探讨实现远程集中监控的必要性,然后提出问题可能的解决方式,最后选取一种合适的方式来解决我们的问题。
1.1为什么需要远程集中监控
我们知道,企业的服务器一般都集中安装在机房中,如果没有采用远程监控方式,那么只能走到每台服务器上去检查系统的性能状况。而如果不采用集中监控方式,那么,每次只能检查一台服务器的性能状况,并且需要手工执行命令、人工判断,从而获得性能数据。而获得的性能数据应该如何采集出来,也是一个头疼的问题。由此看来,如果能够实现远程集中监控,那么这些问题就能得到很好的解决。
1.2比较CS与BS两种软件系统架构的优缺点
从目前流行的软件系统架构来看,有CS和BS两种方式。前者需要开发一个客户端程序,用于执行客户端的功能;后者采用浏览器作为客户端,客户端功能主要使用客户端脚本程序来执行。这两种方式各有优缺点。CS方式由于客户端程序是编译后的代码,可以独立在被安装的机器上运行,所以效率较高、可控性较好;而后者由于客户端程序运行在浏览器中,其优势在于客户端不用安装,页面呈现效果丰富等。但是,客户端程序是解释运行的,效率较低。此外,由于浏览器安全控制的需要,浏览器端的功能权限受到了限制。
1.3系统可采用CS加BS的结构来实现
由上文分析可见,CS相比BS结构具有运行效率高、可控程度高的特点,所以远程集中监控系统的实时监控模块更适合采用CS结构。再者,考虑到数据传送的时候,要求实时性高,信息封装安全,采用CS结构也具有更大的优势。另外,客户端程序在采集性能数据的时候,需要在后台静默运行,CS结构的客户端端可以较好实现隐蔽运行的效果,而网页形不易处理,所以CS结构的也更适合些。
而对于历史性能报表部分,由于数据从数据库中提取,对性能的要求不是很高,但是对于报表的呈现样式、对于报表的访问便利性要求较高,所以可考虑采用BS结构呈现。
1.4服务端多线程的处理
服务端要实现集中监控多个终端的服务器,还需要处理好多线程的问题。对于这个问题,我们可以在服务端构建一个处于轮询状态的多线程服务程序,当有客户端连接上来的时候,启动一个新的线程。当客户端有新的性能数据上来的时候,服务端能够通过消息触发机制,更新对应监控窗口上的监视数据和图形。
2如何实现跨平台监控
我们知道,不同企事业单位服务器的系统平台具有多样性的情况,那么,如何实现跨平台监控,如何让系统在不同的平台下运行就成为一个很关键的问题。对于这种现象,应该从兼容性、可扩充性的角度进行考虑。在提出有效解决方案之前,让我们先明确以下问题。
2.1为什么要实现跨平台
试想,一个仅能监控运行Windows或者Unix服务器性能的系统,如何能满足现代企业服务器多元化的需求,如何能够在将来需求扩展的情况下,延长系统的生命周期?所以,答案很明确,一个真正的性能监控系统,必然是一个在实现了远程集中监控之后,又能满足跨平台监控的系统。
2.2跨平台监控首先要解决客户端跨平台
对于一个程序,要实现跨平台,一种很好的解决方案就是,采用跨平台的语言来实现,比如Java就是一种很好的跨平台语言。我们可以使用Java来开发客户端,而服务端应该用什么来开发?下文我们会继续探讨。那么,服务端与客户端之间应该如何通信呢?我们且看下文分析。
2.3对于实时监控部分,Socket通信是一种较好的方式
解决了客户端可运行在不同操作系统上的问题之后,通信问题成为一个很关键问题。为了实现系统的跨平台监控,那么,很有必要对各个平台的网络通信协议进行研究比较,从而,能够从中选取一种各种平台都能接受的方式来实现通信。
首先,我们来看http方式,基于这种通信协议的通信方式主要是Web方式,也就上文提到的BS结构方式。目前主流的服务器平台都能支持。但是,由于BS结构存在运行效率较低,运行功能受限的问题,此种方式不太适合实时监控部分,但可考虑用于呈现历史性能报表。
其次,我们来看UDP通信方式,这种协议的最大优点是异步通信,可用于无连接方式。但是,性能监控系统对于实时性的要求较高,不太适用。
最后,我们看Socket通信方式,这种通信方式具有效率高,数据封装灵活的特点,他基于TCP/IP方式进行通信,能够被各种平台所支持,所以,这种通信方式比较适用于远程集中监控系统的实时监控模块。
2.4对于通信数据的封装
实时监控模块需要封装的数据主要是关于服务器的IP、机器名以及各种与性能相关的数据。这些数据应该封装成何种格式,也是一个需要考虑的问题。考虑到处理的简易性,也许封装成二进制对象比较合适,但是,由于二进制对象数据依赖某种编程语言,兼容性较差。而且我们准备建设的这个模型为了实现跨平台,客户端和服务端采用的开发语言极有可能不一样,所以采用XML格式比较合适。由于XML格式是网络应用层数据封装的一个标准,能够被多种平台及开发语言所接受。此外,这种格式的数据,描述能力很强,可以满足封装各种类型性能数据的需求。性能报表部分不存在数据封装的问题,因为其已经被转换为关系数据库中的数据,在此不再赘述。
2.5关于图形显示的问题
目前主流的开发语言都提供了图形应用开发接口(即GDI接口),在实现图形化显示的时候,可以调用这些接口,实时在屏幕上刷新图形。
3整体解决方案的提出
整体解决方案应从系统的角度进行考虑,基于以上的研究结论提出。
3.1软件架构
采用CS结构架设监控系统实时模块,历史性能报表呈现可采用BS结构。为了便于管理维护,监控系统Server端主要运行在Windows平台下,Client端可安装在各种类型的服务器上,用于采集服务器的性能数据。Client程序可以采用java语言编写,以实现跨平台安装和运行,Server端程序可采用某种高级语言来开发,为了考虑开发和运行效率,建议使用C++/C#程序语言实现。
3.2监控软件系统内部通信
鉴于Socket通信的优势,实时监控模块可采用Socket通信方式实现。Client端的功能主要是采集服务器的性能数据,通过Socket通信方式发送到服务端进行处理。信息封装的格式,采用XML格式,以便于满足系统的兼容性和可扩充性要求。历史性能报表模块可采用BS结构实现,采用http通信协议传输数据,以便于管理者通过IE或其他浏览器进行查看。
3.3系统功能需求
可考虑包含以下功能:客户端包含采集性能信息、显示性能信息、手动设置服务端、显示连接状态、传送状态;服务端包含监视客户端性能数据、远程控制、历史性能数据查询、设置阀值、报警提示等功能。
4结论
经测试验证,本模型可以远程集中监控跨平台服务器的性能数据,并具有优化、预警、报警等功能。可监控的服务器系统平台主要为Windows和Unix系列,最大同时监控服务器数量可达到20台,数据更新频率可达到3秒每次,可持续运行时间能达到3个月以上(估计值)。总之,整体功能效率良好,在完善优化之后能够满足企事业单位服务器性能监控的一般需求。
|
|
|
|
【对“硅谷杂志:跨平台服务器性能监控系统模型设计”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|