Linux系统资源监控工具设计与实现
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
研究背景
随着科学技术的发展,特别是近十几年来,各种技术取得了突破性的进展,使得如今的系统越来越复杂,功能也越来越强大。然而正是由于系统功能的强大和复杂程度的提高,随之产生的系统可靠性问题便日益突出。
如今的系统都是硬件和软件的有机整体,而随着软件技术的发展,软件在整个系统中的地位越来越重要。近年来的研究也表明,一个系统发生故障,越来越多地是由于软件缺陷而造成的。软件可靠性已经成为了系统可靠性的瓶颈。
当系统错误因素越来越集中在软件方面时,其中越来越值得关注的问题就是软件衰退(software aging)现象。即由于软件系统资源的损耗(如内存泄漏、存储空间的碎片、数据更新不及时、网络带宽不足以及舍入误差的累积等)而引起的系统性能恶化,甚至最终可能导致系统失效的现象。研究表明,软件衰退是一种很普遍的现象,而且无法避免。在大量使用的通用软件系统,如Windows操作系统、Netscape浏览器、Linux服务器、一般的应用软件都会出现这项现象。而且,由软件衰退所引起的计算系统失效是影响系统可靠性的重要因素。
软件恢复是一种预防性的、主动的抗衰方法,其思想是——在软件衰退这一渐进的过程中,在软件衰退所引起的故障发生以前的某个时间,终止程序的继续运行,重启系统以清理其内部状态(如进行垃圾采集、刷新操作系统内核表、重新初始化内部数据结构等),从而释放操作系统资源,使软件性能得到恢复。
软件恢复技术能够帮助用户在受到影响前预测、识别并修复故障,避免了系统突发故障及由此带来的严重后果,可以很好地提高系统的可靠性和可用性。但软件恢复技术的重启操作也在一定程度上造成了损失。因而,软件恢复中一个很重要的问题就是确定软件恢复的时间——既可以有效的减少软件失效的发生,同时尽可能少的降低软件恢复带来的损失。
由于软件衰退总是通过系统资源的不断损耗来表现,因而通过在软件运行的实际过程中,监视和检测系统的运行状态的各项性能参数,再根据软件本身的一些参数,就可以预测系统可能会发生的失效,从而在软件失效前进行软件恢复操作——这就是基于测量的软件恢复策略。对于基于测量的软件恢复策略来说,定期地获取被监测软件在运行过程中系统资源的使用情况是数据分析和性能预测的前提条件。因而系统资源监测工具是必不可少的。如何在不影响系统正常运行的基础上进行有效的系统资源监测就成为首先要考虑的问题之一。
本文就是以基于测量的软件恢复技术为背景,针对具体的实验系统环境,着重于设计合理的性能监测工具,准确高效地监测系统资源的使用情况,为基于测量的软件恢复提供数据支持。
1.2 ?研究现状
资源监测是系统管理和性能优化过程中的一个基本手段,其目标就是为了提高系统的可用性和高效性。随着科学技术的发展,系统的体系结构在不断演变,这实际上对系统性能监测提出了更高的要求。
为了满足不同的应用需要和适应不同的系统环境,相关研究人员已经在系统资源监测方面作了大量的工作。不同的监测工具运作于不同层次的粒度,并随之产生不同的监测信息质量和对应成本之间的平衡。
在首次提出基于测量思想估测软件衰退情况的方法的文中,S. Garg等设计和实现了一个基于简单网络管理协议(SNMP)的分布式监测工具来定时采集UNIX网络工作站的系统活动和资源使用的数据信息。
Supermon集群监测系统使用一个改进的SunRPC远程状态rstat协议来从远程集群节点采集数据。这个改进的协议是基于符号表示,从而允许它运作于一个异构的环境。但对于Supermon来说,由于所采集的集群节点监测信息采用了集中数据存储方式,可伸缩性成为一个问题。
Dproc是基于Linux内核的系统级监测工具,支持应用程序特定的和可定制的监测,能够对信息进行过滤,计算节点之间是根据订阅和发布实现信息交换的,从而能够有效的减少数据量。
Parmon系统最早采用客户/服务器模式来设计监测工具,包含一个监测服务器和客户端的图形用户界面,从监测服务器可以透明的访问所有监测中的计算节点,能够完成整个系统级、计算节点级和组件级的资源使用和系统活动监测。它采用Java语言开发,保证了可移植性。
ClusterProbe是一个开放、灵活和可扩缩的监测工具,用于监测大型工作站集群。它提供了多协议通信接口(MCI)集成在客户的本地通信环境中,并使用Java-RMI机制采集和传输数据,从而保证其灵活和可扩展性。
bWatch是一个用简单的TcL/Tk语言编写的服务器监测软件,用于监视系统中各个结点的负载和内存使用情况。bWatch程序的执行并不需要根用户的权限,任何只要能在其他机器上执行rsh命令的普通用户都可以使用它。bWatch程序结构简单而小巧,被用于美国宾夕法尼亚州Paralogic公司组建的Beowulf Cluster中。
WBCMon是一个Java编写的易用的单一映象监测工具,它采用数据库技术,方便信息处理、检索,同时使用基于WEB的图形化界面动态显示数据。但其没有对集群控制的功能,交互性较差。
1.3 ?本文工作
对于基于测量的软件恢复技术来说,系统资源数据的采集是一个很重要的环节,为后面的软件衰退过程的确认和可能的软件失效的预测提供准备。为此,一个合适的性能监测工具是很有必要的。该工具应该可以定期监测和采集系统活动和资源使用信息数据,而且它应该尽量降低监测工具对于被监测系统的资源使用情况的影响。同时,它还必须考虑实际的运行环境,有效合理的使用已有资源。
本文设计了一个性能监测工具PERFMON,在为基于测量的软件恢复提供数据支持的同时,可以有效使用已有网络资源,并尽量降低监测工具对所处环境的影响。该工具是一个基于客户/服务器模式的性能监测工具,实现对开放式操作系统Linux平台上的系统资源数据信息的采集和网络传输。
本文主要工作归纳如下:
(1)??? 研究软件恢复技术,理解基于测量的软件恢复技术对于监测数据的要求,在尽量降低监测工具对于被监测系统的资源消耗的同时,定期监测和采集系统运行期间的资源信息数据。
(2)??? 了解Socket通信,并建立客户机与服务器的通信规则。了解开放式操作系统Linux,熟悉/proc虚拟文件系统,掌握Linux环境下的性能数据采集方法。
(3)??? 分析采集的数据,并使用数据库将采集的数据存储起来。