尹亚娇
摘 要 本文设计了一个轻量级的性能监控工具程序tiquinfo, 可应用于Linux系统。本课题用实验评估了程序运行时占用系统资源情况, 实验结果表明它是一个轻量级、高效的监控程序。同时,本课题中设计了另外一个监控程序,将服务器运行参数数据实时地、自动地写入Mysql数据库中,方便远程用户读取参数信息为之后的集群系统维护做准备。
【关键词】软件老化 软件抗衰 Linux系统 监控数据获取 集群监控 Mysql数据库
1 Linux系统性能监控实现
1.1 实验平台的搭建
为了采集系统参数,我们模拟了一个计算机系统的运行环境。本实验使用的是联想G450笔记本,处理器为Intel(R)Core(TM)2 DuoCPU T6600,安装内存2GB,32位操作系统,该笔记本安装Windows7旗舰版操作系统,并安装虚拟机vmware_Workstation_8.0.2,在虚拟机下安装Fedora-16-i686-Live-KDE操作系统,同时为实现监控系统运行状况,采集性能参数,Fedora系统需先安装sysstat软件包,为达到集群服务器监控的目的,需将性能参数数据写入Mysql数据库,为此Fedora系统需先安装Mysql软件包,并且,需要先手动启动Mysql数据库相关服务功能。
1.2 各程序模块运行结果示例
在本课题中共设计了两部分程序工具,一部分用来提取本地服务器性能参数,一部分用于集群服务器监控性能参数获取。
1.2.1 提取性能参数模块tiquinfo
系统运行时的性能度量是实现软件抗衰、系统性能优化的数据来源。Linux运行时,系统的负载、性能度量需要特定参数衡量,同时,这些参数值表示性能的好坏,也有一个相对标准,即用户对系统的期望值。
tiquinfo程序一直在后台运行,对此设计了一个子进程,实现循环执行程序功能。在获取各模块性能参数的同时,获取本地时间,写入每行数据开头的第一个字段。同时,通过判断本地时间,在每天23:59:50的时候,清楚一次历史数据。
这部分程序实现每隔5分钟,循环收集数据,并在23:59:50清除一次数据。
1.2.2 按用户需求截取时间段模块getInfo
实验中设计的提取性能参数工具tiquinfo,能够在后台运行,每隔5分钟运行一次,实现性能参数中粒度的实时采集。另一个截取时间段参数的工具getInfo能够根据用户需求,用户输入时间段,该程序读取历史参数信息,并写入result文件夹中,用户可据此查看特定时间段的参数。
getInfo模块运行结果如图3-4所示。客户输入命令行如“./getInfo 1:05 1:39”,可以获得时间段1:05分到1:39分的历史性能参数信息。
1.2.3 监控服务器运行状况并写入Mysql数据库
在本实验中,为了便于呈现写入Mysql数据库的性能参数,设置监控粒度为3秒。Mysql数据库写入数据,需先建立一个库。本实验中,建立名为lunwen的数据库存放CPU模块、Memory模块、Net模块的数据信息。论文数据库分为CPU、Memory、Net三个表,用来分别存放对应的数据。Mysql数据库建立表时,每个表中有相应的结构,分列分行存放数据,每个数据都有相应的格式要求。
在实时地、自动地将服务器运行参数写入Mysql数据库过程中,有大量数据写入三个表中。远程用户可以根据数据库中信息分析服务器运行健康状况。Memory模块采集到的参数信息在Mysql数据库memory表单中。由Mysql数据库中的信息可知,我们不仅能在本地实时监控服务器运行状况,同时远程客户可以通过一些方式很方便地获取该数据库里的信息。如可以使用JSP程序连接Mysql端口,也可以通过指定IP、指定用户读取。
2 实验结果评估
2.1 采集的性能参数结果评估
系统性能监测是一个整体的过程,涉及计算机系统的多个子系统,本实验从CPU,内存,IO,网络四个方面考量。在实时监测的过程中,可以从性能参数分析得出相应的结论。
2.2 监控程序占用系统资源评估
本实验中设计的监控程序需一直在后台运行,实时监控系统运行时性能参数的变化,因此,监控程序需是一个轻量级的进程,即该监控程序应尽可能少的占用系統资源,如表1所示。
3 结语
本文设计了一个轻量级的性能监控工具程序tiquinfo, 可应用于Linux系统。本课题用实验评估了程序运行时占用系统资源情况, 实验结果表明它是一个轻量级、高效的监控程序。同时,本课题中设计了另外一个监控程序,将服务器运行参数数据实时地、自动地写入Mysql数据库中,方便远程用户读取参数信息为之后的集群系统维护做准备。
本文做的只是Linux负载度量的一小部分工作,对于性能监控还有更全面的工作需要做,要实现软件抗衰过程,需要对数据进行模型分析,从而预测系统资源耗尽的趋势,解决何时进行抗衰以及采取何种粒度的抗衰的问题。对于集群监控,则更需要进一步研究。
参考文献
[1]Lei Li KalyanaramanVaidyanathan,Kishor S.Trivedi.An Approach for Estimation of Software Aging in a Web Server[C],ISESE,2002.
[2]徐建,张琨等.基于Linux的计算系统性能监控[J].南京理工大学学报,2007,31(05):622-627.
[3]万诗丽,杨群等.一种基于Agent适用于Web应用的软件抗衰方法[J].计算机应用研究,2004(08):18-26.