




已阅读5页,还剩57页未读, 继续免费阅读
(计算机软件与理论专业论文)软件回复技术的研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
、 软们川u 技禾叽埘,。j i v 用:a b s t r a c t r e s e a r c ha n da p p l i c a t i o no ns o f t w a r er e j u v e n a t i o n y a og u o h u i ( a p p l i e dc o m p u t e rs c i e n c e t e c h n o l o g y ) d i r e c t e db yg u ol i t h i st h e s i sd e s i g n sa n di m p l e m e n t san e t w o r k - b a s e dm o n i t o r i n gs y s t e m ,w h i c hi su s e d t om o n i t o rt h en o d e so fi n f o r m a t i o na n a l y s i ss y s t e mo fl a r g e - s c a l en e t w o r k t h em o n i t o r i n g s y s t e mm o n i t o r st h ea p p l i c a t i o ns t a t e ,t h en e t w o r kc o n n e c t i o ns t a t e ,t h ea p p l i c a t i o nd a t aa n d t h es y s t e mi n f o r m a t i o no fa l lo ft h en o d e s i ta l s oh a st h ea b i l i t yt oj u d g et h ea g i n gd e g r e eo f t h es o f t w a r es y s t e mr u n n i n go nt h en o d e s ,a n df o r e c a s tt h ed e g r e s s i v et r e n do ft h es o f t w a r e p e r f o r m a n c e t h en o t i o no fs o f t w a r ea g i n gw a sp r o p o s e di n1 9 9 5b yt h er e s e a r c h e r so fa t & tb e l l l a b o r a t o r y i tr e f e r st ot h ep h e n o m e n o nt h a tt h es l a t eo ft h es o f t w a r es y s t e md e g r a d e sw i t h t i m e t h i sp h e n o m e n o nd o e sg r e a th a r mt ot h es o f t w a r es y s t e m i te v e n t u a l l yl e a d st o s e r i o u s l yp e r f o r m a n c ed e g r a d a t i o no ft h es o f t w a r ea n de v e nc r a s hf a i l u r ea tl a s t s o m ep e o p l e p r o p o s e ds o f t w a r er e j u v e n a t i o nt e c h n o l o g yt od e a lw i t hs o f t w a r ea g i n g i t sac o n c e p to f g r a c e f u l l yt e r m i n a t i n ga na p p l i c a t i o na n di m m e d i a t e l yr e s t a r t i n gi ta ta c l e a ni n t e r n a ls t a t e t h i st h e s i sp r o p o s e sam e a s u r e m e n t b a s e da p p r o a c ht oj u d g et h ed e g r e eo fs o f t w a r e a g i n ga n df o r e c a s tt h ed e g r e s s i v et r e n do ft h es o f t w a r ep e r f o r m a n c e t h i sa p p r o a c hs t u d i e s t h er e l a t i o n s h i pb e t w e e no sr e s o u r c ea n dp e r f o r m a n c e ,t h e na n a l y s et h el a wo ft h eo s e e s o l l r c e ,a n df o r e c a s tt h es i t u a t i o no fi tb yt i m e s e r i e sm o d e l i n g ,a n df o r e c a s tt h es i t u a t i o no f t h es y s t e mp e r f o r m a n c ea tl a s t a f t e rd i s c u s s i n gt h ea p p r o a c ht h a tp r o p o s e di nt h i st h e s i sp a r t i c u l a r l y , t h ea u t h o rb r i n g s f o r w a r dt h ef u r t h e ri m p r o v i n gp l a nf o rt h es t u d yo f s o f t w a r er e j u v e n a t i o n ,a n dt h i sl a y sas o l i d f o u n d a t i o nf o rf u t u r ew o r k k e yw o r d :s o f t w a r ea g i n g ,s o f t w a r er e j u v e n a t i o n , m o n i t o r i n gs y s t e m 声明 本人声明所呈交的论文足我个人证吁师指导下进行的研究工作及取得的研究成果。 就我所知,除了文中特别加以杯 i :和致谢的地方外,论文中不包含其他人已经发表或撰 写过的研究成果。与我一同工作的刷,点对本研究所做的任何贡献均已在论文中作了明确 的说明并表示了谢意。 作者签名钯,蓟 关于论文使用授权的说明 中国科学院计算技术研究所有权处理、 借阅:并可以公却论文的全部或部分内容, 论文。 日期:冽s 缈;口 保留送交论文的复印件,允许论文被查阅和 可以采用影印、缩印或其它复制手段保存该 作者签名农周竹导师签名:书彳吼埘一勿 ;i ;一辛0 l 二 1 1 应用背景 第一章引言 计算机的出现,给社会带来了巨大的影响。原束缤纷复杂、需要众多人力物力长时 间处理的事情,有了计算机之后都变得轻而易举。计算机以其高效准确的特点,在各个 领域发挥了重要的作用。然而随着社会的发展,计算机应用的逐渐深入,人们交给计算 机的任务变的越来越繁重复杂,虽然计算机技术也发展迅速,运算的速度不断加快,功 能逐渐加强,但是仅靠单机,已经不能满足人们需求了。 网络的出现和迅速发展改变了以往计算机单兵作战的处境,它使多台计算机可以联 合起来协同作战,极大地扩展了计算机的应用空间。对于繁重复杂,需要大量计算的工 作,可以将其分割,由不同的单机节点来做工作中的一部分,所有的节点共同束完成整 个工作。 研究这样一个系统的管理是一个有意义的课题。在单机时代,所有的工作都由一台 计算机完成,管理员很容易就能了解任务的完成情况、监控计算程序的状是否正常等。 对于多台计算机协同作战的网络系统,情况就不那么简单了。这样的系统往往包含了大 量的计算机,并且这些计算机往往分白在地理位置不同的地方。这使得系统的管理不能 单纯的依靠管理员,必须借助管理系统,才能快速准确的了解各个节点的运行状态,进 行集中控制,及时发现系统中的问题。这是保证整个任务能够顺利完成的前提条件。 传统的网络管理方案都是通过收集网络节点的运行信息来判断系统的运行状态,对 系统的控制往往注意的不多就现在的情况来看,仅傲到对系统运行状态的了解是远远 不够的,一方面,一个企业所使用的服务器越来越多,如果管理系统只能提供网络节点 的运行信息而缺乏管理控制功能,所有的故障节点都需要管理员做一番贮理,管理员将 会变的越来越忙,另一方面,随着计算机应用的深入,人们需要计算机处理的事情越来 越复杂,在一个系统里使用的节点机越来越多,管理起来将更加困难,因此,需要功能 更加完善的管理系统,它不仅要能实时了解系统运行状态,还要提供对故障节点的控制 功能。 这种集监测与控制于一身的管理系统在现在的网络世界咀有广阔的应用前景,越来 越多的用户在考虑部署自己的信息系统时,不再像过去那样只考虑硬件的采购费用。他 们开始理性地考虑在服务器的维护工作大量增加的情况下如何更好地管理自己的系统, 如何随时随地监控服务器的静态和动态状态,如何获取故障或潜在故障仁息的通知,并 帮助管理员尽快判断和排除故障,如何利用软件搜集和管理自己的服务器资源,以提高 系统的可用性等等。 5 i nm 塑扎术的研究j 一丌1 1 2 软件老化现象与软件回复技术 信息技术的快速发展使计算机和网络渗入到了社会的每一个角落,给人们的生活带 来了很多便利但是同时,由于计算机技术上的某些问题或是设计时的人为失误也给社 会带来一些意外的不良影响。比如早些时期的千年虫问题,曾使许多小公司因为无力承 担解决千年虫问题的费用而破产。还有现在广泛存在的网络安全问题,每年全球因为计 算机网络安全系统被破坏而造成的经济损失达数百亿美元。9 5 年时,人们根掘网络管 理方面的一些经验以及在一些计算机上出现软件系统故障的教训,提出了“软件老化” ( s o i h v a r e a g i n g ) 这样一个概念 h u a n g1 9 9 5 ,并在此后的这段时间内得到了广泛的重 视和深入的研究。 对于一台服务器,人们的理想是它能永远健康正常的提供服务。然而这在现实中 是不可能实现的。所有的服务器系统其性能都会随着运行时h j 的增长而下降。软件老化 就是针对于此而提出的一个概念,指软件系统在运行一段时间后,其性能会随时间的增 长而下降这样一种现象。软件老化对系统的性能影响很大,如不及时采取措施,最终可 能造成软件系统的崩溃或失效。造成软件老化原因可能是软件运行过程中存在内存泄 露,文件锁定未释放,内存碎片等现象造成内存被过度占用,对外部请求响应时间过长, 服务质量下降。软件老化的危害极大,有时候服务器上运行的是关键应用或鼋要数据, 突然的中断将会造成巨大的经济损失。在某些情况下,还会有更大的危险。s c i e n c e ) ) 曾经报道,美国的爱国者导弹系统由于软件老化造成士兵伤亡的事例 m a r s h a l l1 9 9 2 。 即使对于日常的企业,对软件老化的防治也十分重要,频繁的意外宕机会使客户满意度 降低,从而影响客户的忠诚度。毕竟目前不存在没有竞争对手的行业,如果经常因为系 统宕机而导致业务的停顿,势必会导致客户将业务转向竞争对手。 对于软件老化问题,一个可能的解决办法是在软件出现严重老化之| j i 定期或不定 期地对其进行清理,以防止系统因为资源不足而崩溃这就是所谓的软件回复( s o f t w a r e r e j u v e n a t i o n ) 技术。软件回复可大致对应于硬件重启,是软件容错的一种有力方法。 与传统的基于设计差异或数据冗余的容错方法不同,软件回复是一种先发制人 ( p r o a c t i v e ) 的预防性软件维护方法,在软件发生故障或服务器崩溃之前执行而传统的 软件容错方法是一种后发式或响应式( r e a c t i v e ) 的方法,在软件故障发生之后才得以执 行,软仕回复是有代价的,执行时需要暂停部分甚至全部的服务;但它以很大概率避免 因软件老化而导致的软件或服务器崩溃,避免更大的损失。 1 3 软件回复技术在网络管理中的应用 网络的出现极大的扩展了计算机的应用空问,也改变了人们使用计算机的力式。从 网络诞生那一天起,人们就开始研究如何管理网络,如何让网络最大限度的发挥它的潜 钯争0 i 二 力许多公司在网络管理领域罩部推f 了自己的产品,例如h p 公司推出的o p e nv i e w , c i s c o 公司推出的c i s e o w o r k s ,还有另外一些公司丌发的如n t o p ,h a m m e r v i e w 等。这 些网络管理系统的功能一般可以分为两方面:一方面是网络相关的管理,例如网络流量, 网络带宽,路由器丢包信息以及网络设备的一些工作情况等:另外一方面是网络中节点 机的管理,主要是一些节点机信息的获取。其中网络相关的管理是这些系统的藿点,对 于节点管理,只能提供一些节点相关的简单信息,而没有控制功能,因为这些网管软件 所管理的网络中节点机大部分都是个人工作用的p c 机,p c 的管理员可以很好的管理 好自己的机器,所以不需要网管系统再去提供节点机的控制功能。但是对于一些特殊网 络系统,这种管理软件的功能配置就变得不再适用了。因为在这些系统中,所有的节点 机联合起来完成一个大任务,这些节点机一般由一个或几个管理员管理,如果管理软件 只能提供网络相关的管理而不能提供对节点机运行情况的详细信息以及对节点机强有 力的控制,那么管理员将不得不一个一个的去对节点进行管理,从而变得空前的忙碌。 因此这种系统的管理软件不仅要能提供节点机的详细信息,还要能对各个节点进行控 制,这样才能帮助管理员管理好整个系统。 对于一个包含了大量节点机的上述系统来说,节点机正常运行是整个任务得以完成 的保证,如果系统内的大量节点机软件严重老化,将会造成整个系统的性能严重下降甚 至系统瘫痪。我们的目标是设计一个能将监测与控制功能合而为一的管理系统,把软件 老化的防治措施融入到网络管理中来。该管理系统具备传统的网络管理功能,它能实时 监测系统的健康状态,根据监测结果来分析网络节点机的运行状态,同日丁还具有软件老 化现象的发现以及老化程度预测、对节点机发稚控制命令等功能,在系统内节点机上运 行的软件老化严重时做出处理,避免系统性能下降或突然崩溃,保证整个系统的j 下常运 行。 1 4 论文的安排 本章大致介绍了软件老化的背景以及网络监控技术的现状在第二章将专门介绍软 件老化现象以及相应的软件回复技术,第三章将提出种软件回复技术的具体实现方 ? 法,第四章描述已经实现的具体监控系统大规模网络信息分析系统的监控系统,第 三章介绍的软件回复技术在该监控系统中得到了具体应用,最后第五章将总结全文并说 明今后进一步的工作。 托一争软件昱化的协史。j 未求 2 1 软件老化简介 第二章软件老化的历史与未来 自然界的所有生物,从诞生丌始,随着时间的流逝,都会慢慢的变老,最后走向死 亡,我们称之为老化。近来的研究发现,处于运行阶段的软件系统也存在这样种现象, 软件的性能会随着运行时间的增长而逐渐下降,直至最后失效这种现象和自然界生物 的老化过程十分相似,于是被研究人员形象的称为“软件老化”。 现在人们在软件开发时十分注意软件的可靠性,关于可靠性的工作贯穿了整个软件 的生命周期,从开发、测试,到发布,维护。然而由于商业目的,一个软件的发靠时间 总是希望越早越好,这就必然缩短测试和调试过程,而且随着软件重用的普及,一般来 说,不可能去多次测试应用程序所基于的操作系统和中间层软件。这些因素必然造成投 入运行的软件总是存在一些残留的b u g 。另外,现在的很多软件系统功能十分的复杂, 整个系统非常的庞大,这样大的系统要想通过测试来使它达到理想化的健壮,不存在哪 怕一个b u g ,也是不现实的。软件系统存在的这些b u g 就是造成软件老化的根本原因, 它们会使系统的可用资源越来越少,最后导致系统资源耗尽而崩溃。这些b u g 都隐藏 的很深,并且具有不可重现性,并不是每一次运行都会发生这些错误,因此很难排除。 软件老化这个概念最早是由a t & tb e l l 实验室的研究人员y e n n u nh u a n g 和 c h a n d r a k j n t a l a 提出来的。h u a n g 在研究电信网络计费系统时发现,计费软件在每隔一 定的时间后总是会崩溃通过迸一步的研究他发现,该软件在运行过程中会随着时间的 增长而占用越来越多的系统资源,最终导致资源耗尽而使系统崩溃。软件老化现象一经 提出,就获得了大家的关注,开展了广泛的研究,在通信系统 a v r i t z e r1 9 9 7 1 、事务处 理系统 c a s s i d y2 0 0 2 、网络服务器 v a i d y a n a t h a n2 0 0 2 、集群计算 c a s t e l l i2 0 0 1 1 、以及 空间飞行器 t a i1 9 9 7 等系统中都证实了软件老化现象的存在在广泛应用的商业软件 中也存在这种现象,比如n e t s c a p e 和k i n ,都会随着时间的增长而逐渐占用更多的系统 内存 h u a n g 在他文献中提出了一种解决软件老化的方法,称之为软件回复 ( r e j u v e n a t i o n ) 。具体就是在软件严重老化之前定期对其进行清理,以防止系统因为资 源不足而崩溃迄今为止,关于软件老化和软件回复的研究大致可分为两个方面。一个 方面是所谓的“基于度量的方法”,主要是进行软件试验,在线采集各种软件资源的数 据,监测,分析和预测软件资源消耗和软件老化的趋势,为何时进行软件回复提供决策 参考依据,其中对软件资源数据的分析方法又两种:一种是采用统计分析和随机过程的 方法,认为软件资源的消耗过程是一种随机过程,这是“基于度量的方法”的研究主体; 另一种是采用分形分析方法,认为软件资源的消耗过程呈现分形特征另一方面是“基 软n 川塑技术的 叫允。j f 1 于建模的方法”,主要是对软件老化的机理,包括软件老化的根源和后果做适当的假设, 以数学建模的方式研究不同的软件 u l 复策略对软件可靠性的影响。假设软件或服务器系 统仅处于若干可能的宏观状态,如软件正常状态,退化状态,回复状态和维护状念,各 状态之间的转移服从一定的概率规律。主要的数学工具是m a r k o v 过程及其变种,包括 m a r k o v 链,半m a r k o v 过程,非时齐m a r k o v 过程,m a r k o v 再生过程,m a r k o v 再生p e t r i 网,排队模型等。 2 2 基于建模的软件老化研究方法 h u a n g 在他的文献中提出了一个经典的软件老化过程的两阶段模型,把一个软件的 运行过程分成了几个不同的状态。系统在各个状态之间的转换规律符合m a r k o v 随机过 程的特性,以此为工具来分析软件回复技术对系统宕机时间以及宕机损夭的影响。 h u a n g 认为,一个程序在它刚刚开始运行时,总是处于一个良好的状态( r o b u s t 状 态) ,没有老化现象的发生。运行了一段时间之后,由于软件的逐渐老化,它不再像刚 开始一样稳定,而是处于一种“f a i l u r ep r o a b l e ”状态,随着时间的增长,系统就可能 崩溃。对于没有采用回复技术的程序,可以用下图来描述其运行过程: 图2 1 没有采用r e j u v e n a t i o n 技术的秤序状态转换图 其中,s o 代表程序刚开始运行时的那种“r o b u s t ”状态,s p 代表“f a i l u r ep r o b a b l e ” 状态,s f 代表程序的“f a i l u r e ”状态r 2 则代表程序从s o 进入到s p 的速率,同样,九 代表从s p 到s f 的速率,r i 代表程序从“f a i l u r e ”状态修复重新回到s o 的速率。假设从 s o 状态直接到s p 的可能性很小,不予考虑。于是可以得到以下关系: p o + p p - - p f = 1 p p 九2p or 2 p p 九2p f q 其中p o ,p p ,和p f 分别代表系统处于s o ,s ,和s f 的概率假设系统经历从开始运 行到失败再恢复运行这样一个循环的对闯为l ,用a 代表没有采用回复技术的软件,那 么由以上三式可以推出系统处于宕机的时日j 为: :i :争软件岂化的仂史j 木束 d 。w 厅7 m p ( ) :! 【_ 1 + + r _ t 五 ,2 系统处于宕机状态时,所有的服务请求都将得不到相应,假设每单位时间因此而造 成的平均损失为c f 则l 时间内系统的损失为: 黝一( d 2 币五1 出勺 五 ,2 如果系统采用了回复技术,那么,系统在进入“f a i l u r ep r o b a b l e ”状态后,可以进 行软件回复,重新回到健康的“r o b u s t ”状态。采用了回复技术的程序状态转换可用下 图来表示: 图2 2 采用了回复技术的程序状态转换图 图中s r 表示软件回复状态,r 4 表示从s p 状态转换到s r 状态的速率,r 3 表示从s r 状态 转换到s o 状态的速率。如果用a r 代表采用了回复技术的软件,由前面的分析方法,可 以求出在一个循环当中宕机时间为: d o w n t i m e ,( 上) = ( p ,+ p ,) 三 如果用g 来表示软件由于执行回复而不能提供服务时单位时间内的平均损失,用 c f 表示系统意外宕机时单位时间内的平均损失。那么可以得到l 时间内系统的损失为: c o s t ,( l ) = ( p r 。,+ p ,c ,) l 2 i 曩函l c 詈c ,+ 号c r ) ,l,l 可以看出,如果r 3 的值很大,也就是说软件回复执行的很快,程序很快就可以从 s r 状态转换到s o 状态,程序在s o 状态的概率就会增大,此时采用回复技术应该会缩短 系统不能提供服务的时间。如果r 3 值比较小,也就是说软件回复执行的很慢,那么采 用软件回复则有可能增加系统的宕机时问。 软f ,| 川复扯_ 】卜的研,t s l , v l l j 如果r 3 的值很大,采用软件 u 复能减少系统的时日j 和宕机损失,那么,r 4 应该取 什么值,也就是说,在什么时候进行软件回复,彳能将这种损失降低到最小呢? h u a n g 在他的文献罩分析了当“改变时对系统宕机时间以及系统损失产生的影响。 采用软件回复技术的程序,其宕机时日j 可表示为: 兰。垒 咖獭e d 乩。矗毖 ,2,2, 为了确定r 4 的变化会对宕机时间产生什么影响,用上式对1 4 求导,得到微分形式 如下: 苦咖珂t i m e a ( l ) = l x 去忑曩1 石面卜+ 争司 吒,2 算式的前三项都是正值,于是该算式的符号将由最后一项r l ( 1 + r 2 j ) 一r 3 决定, 这里面不包含“,这说明,当r 4 发生变化时,系统的宕机时间是增加还是减少取决于r l , r 2 ,r 3 以及 的值,当r 3 大于r s ( 1 + r 2 ) 时,宕机时问对r 4 的导数值为负,随着r 4 的增 加宕机时间会减小,这说明程序一进入s p 状态,就应该立刻执行软件回复,相反,如 果1 3 小于n ( 1 + r d ) ,随着r 4 的增加宕机时问会增大,因此应该放慢执行软件回复的 速度 用同样的方法,把宕机时的损失表达式对r 4 求导,看r 4 的变化对宕机时的损失有 什么影响,得到的微分式如下: 奶d c o s t ( l ) = l x 一懒1 。赤。蕊1 扣糕 结果和宕机时间对r 4 的微分十分相似,算式的前三项也都是正值,符号由最后一项 c r c ( h + r 。) ( ( r 。+ r :) + r ;r :) 决定,这也是一个和r 4 无关的项,也就是说, r 4 发生变化时,系统的宕机损失是增加还是减少由r l ,r 2 ,r 3 ,c ,o f 以及 的值来决定。 r l ,r 2 ,r 3 ,c ,c f 都是软件的特性相关的量,对于某一个软件来说,这些参数都是 固定的值,因此可以通过计算来确定1 - 4 的变化会对宕机时间以及宕机损失产生什么样的 影响,可以调整r 4 来降低系统宕机时间或是系统宕机损失, h u a n g 的模型可以得到如下的结论:影响软件网复结果的因素有很多,是甭府该 采用软件回复技术和软件的特性有很大的联系,不足所有的程序采用了软件回复技术都 8 ;l ;_ 二帚软件老化的协史。j 未柬 能既降低宕机时口j 又降低宕机损失,有时只能降低其中个,这时候就要有所取舍,分 清楚对系统来说是降低宕机时日j 重要还是降低宕机损失重要,然后对相关参数做出i f 确 的设置 h u a n g 的软件老化两阶段模型提供了一种用模型分析软件回复技术对系统影响的 简单方法,该模型对之后基于建模的软件老化研究方法产生了很大的影响,很多研究人 员都采用该模型来研究软件老化现象以及软件回复技术。t a d a s h id o h i 在他的一篇文献 v a i d y a n a t h a n1 9 9 7 1 里提出了对该模型的一种修改意见,他认为软件系统通过简单的重 启是不能从“f a i l u r e ”状态回到最初的“r o b u s t ”状态的,大部分的软件系统在重启之 后,都需要进行进行一些断点的回复工作才能继续运行,因此他对h u a n g 的模型做了如 下修改,去掉从。f a i l u r e ”状态到“r o b u s t ”状态的路径连线,增加了从“f a i l u r e ”状 态到“r e j u v e n a t i o n ”状态的路径连线,修改后的模型如下: 图2 3 d o h i 修改软件老化模型图 另外也有许多研究人员采用别的随机过程研究方法来分析软件老化现象,g r a g 在 文献 g a r g1 9 9 5 1 里提出了一种用m a r k o v 再生p e t r i e 网来分析软件老化现象的方法,该 方法通过m a r k o v 再生p e t r i e 网求出从软件开始运行到进行软件回复之间的最佳时间间 隔,然后以这个时间间隔为周期进行定期的软件回复,以达到防治由于软件老化而造成 系统崩溃的目的。文献 g a r g1 9 9 5 1 介绍了一种用s r n ( s t o c h a s t i cr e w a r dn e t ) 模型分析 软件老化的方法。此外还有研究人员使用半m a r k o v 过程 v a i d y a n a t h a n1 9 9 8 ,非时齐 m a r k o v 过程,排队模型等方法来研究软件的老化现象 g a r g1 9 9 6 】 b o b b i o2 0 0 1 】 g a r g 1 9 9 8 】【l i u2 0 0 2 1 v a i d y a n a t h a n2 0 0 1 】 v a i d y a n a t h a n2 0 0 2 。 用建模的方法来研究软件老化和软件回复,一般都是从理论上分析采用软件回复技 术对软件可靠性产生的影响,目的都是求出进行软件回复的最佳时间,除此之外,还可 以用基于测量的方法对软件老化和回复技术进行分析和研究,以提高软件的可靠性。 9 软f l - i , ,l 复技术的研究讣v 用 2 3 基于测量的方法 基于测量的方法认为,软件老化的最主要表现,就足系统的可用资源越束越少, 直至被耗尽,导致系统崩溃。这种资源消耗过程是遵循一定规律的,通过对系统资源的 监控,可以发现这种规律,然后就可以预测系统故障的发生,提前做出相应处理,减少 由于软件老化而造成的损失。 2 3 1 基于测量的软件老化研究方法1 y i g u a n gh o n g 在他的一篇文献罩 h o n g2 0 0 2 介绍了一种基于测量的软件回复方 法,该方法监测系统当前可用内存的量,以此作为如何采取软件回复的判断依据。该方 法非常简单,一共定义了两种软件回复的方法。( 设系统的内存总量是l ) 2 级重启:系统级的回复。先停止系统所有的服务,然后重新启动整个系统。 执行2 级重启,将会回收所有的内存,系统可用内存数将回到l l 级重启:服务级的回复,只是对某一个程序进行重启。选择系统内老化程度 比较严重的进程,保存必要的数据,然后重新启动该进程,使它的性能恢复 到最佳状态。执行l 级重启,系统的性能将会得到一个小范围的改善,可用 内存的平均数量将会恢复到m ,显然,m m b c d 0 监控程序定时对系统可用内存量取样,当发现系统可用内存量小于c 时, 立刻执行2 级重启,可用内存的量将会恢复到l ,当发现可用内存量大于c 而小于b 时, 执行1 级重启,可用内存的量将会恢复到m 。d 是一个极限,系统可用内存小于d 将会 造成系统崩溃。示意图如下,其中s 代表采样时间间隔。 图2 4一种软件网复技术示意图 整个方法十分简单,但很有代表性,基于测量的方法大都采用这样的一个操作流程, l o 第一争软件z 化的仂尘,未柬 先是在线监测系统的各种数据,然后对监测到的数掘进行分析,以此作为执行软件回复 的依据 2 3 2 基于测量的软件老化研究方法2 s a c h i ng r a g 在他的一篇文献罩介绍了一个具体的监测和预测软件老7 :时问的方法, 【g a r g ,1 9 9 8 他在试验中监控的参数很多,包括操作系统版本,已使用交换区大小, 当前可用物理内存,当前进程总数,i ,o 字节数,系统打开文件表大小等多个系统参数, 对这些监测量进行定时采样,然后对采样样本进行分析以发现软件老化的内在规律 首先,将监测到的数据作图,发现这些数据存在明显的周期性,周期为7 天。这跟 被监控工作站的特性有关,这些工作站都是大学里面的服务器,用户主要是d u k e 大学 的学生,他们中的很多人都在每周的固定时间访问固定的服务器,因此这些数据呈现明 显的周期性。为了发现隐藏在这些表面现象背后的规律,先采用季节性差分的方法过滤 掉这些数据的周期性。季节性差分处理是基于这样一个事实,如果把某时刻的观察值 与下一周期相应时刻的观察值相减,那么就可能将周期性的变化消除掉例如分析一个 地区的气温变化,气温变化是按照一年十二个月周期性地规律变化的,如果我们把每个 月的气温与去年同月气温相减,那么得到的新序列便是在各月平均气温附近的波动值, 就可以消去周期性的影响。 其次,对过滤掉了周期性影响后的数据重新作图,发现大部分监测量在宏观上都体 现出直线上升或者下降的趋势,于是s a c h i ng r a g 采用s e n 方法 s e n1 9 6 8 对数掘建模进 行拟合,观察拟合效果s e n 方法求拟合直线的斜率是一种无参估计方法,不受数据丢 失以及存在不合理数据的影响,做出的直线和数据点拟合的很好,离散的数据点均匀的 分布在直线两侧。 大部分监测量存在线性的上升或者下降趋势证明了软件老化现象韵存在,s a c h i n g r a g 通过观察数据发现,系统出现宕机时总是在系统的某一资源消耗很严重的情况下 发生的,系统可用资源的匮乏是系统宕机的主要原因软件老化是导致系统可用资源逐 渐减少的根本原因,是系统宕机现象背后的本质。 s a c h i nc r r a g 是通过先从数据图上观察数据的变化趋势,然后再用数学方法来验证 自己的初步猜想。不失为一种由情入理的好方法。在此之后,v a i d 3 ,a n a t h a n 又对s a c h i n g r a g 的方法做了进一步的改进 v a i d y a n a t h a n1 9 9 8 1 。在v a i d y a n a t h a n 之前人们都认为 软件的老化速率是恒定的,软件老化的程度在老化速率已知的情况下只是时间的函数。 v a i d y a n a t h a n 认为软件的老化速度是和系统的负载大小有联系的,因此在监测软件老化 现象以及分析软件老化对系统的影响时,应该把系统的负载大小考虑进去。v a i d y a n a t h a n 的数据收集方法和s a c h i ng - r a g 基本相同,在d u k e 大学的几台u n i x 服务器上采集系 统的运行数据,监测量的选择和采样间隔等都和s a c h i ng r a g 一样。在数据处理上,加 软r l i “l 砭 上术的卅妃外v f 玎 入了系统负载这一指标,其采取的方法e 耍由以下几个步骤。 首先,量化系统的负载大小v a i d y a n a t h a n 通过以下四个量来描述系统负载 c p u c o n t e x t s w i t c h :采样口j 隔内c p u 上下文切换的次数。 s y s c a l l :采样间隔内系统调用的次数。 p a g e l n :采样问隔内读入页面次数。 p a g e o u t :采样间隔内换出页面次数。 把监测到的数掘以上述四个变量为依据按照h a r t i g a n 算法进行聚类,h a r t i g a n 算法 可以按照数掘的相似性自动将它们分成k 类,每一类都有一个质心,类中每一个元素和 质心之间的“距离”定义为聚类方差,该算法能够保证分类结果拥有最小的聚类方差和。 聚类之后每一个类代表了系统负载的一个级别,在v a i d y a n a t h a n 的试验中,试验数掘根 据采集该数据时系统负载的大小被分成了8 类,类之间的迁移符合半m a r k o v 随机过程, 类a 到类b 的迁移概率可以通过统计试验数掘中从类a 到类b 的转换次数除以所有从 类a 发起的迁移次数获得。对每一个类,采用s e n 方法进行数据处理,求得可用资源 消耗的速率。v a i d y a n a t h a n 发现,当系统处于不同的负载状态时,软件老化的速率也不 一样,其表现就是不同的负载状态可用资源消耗速率各不相同,负载越大,资源消耗的 越快,表明负载越大,软件老化的越快。而对于不同时期监测到的处于同一负载类内的 数据,各种资源的消耗速率却很接近由此可见,软件老化的速率和系统的负载是有联 系的,在分析软件老化现象时,应该把系统的负载考虑进去。 , 对予日常的应用系统,其系统负载是经常变化的,实践证明,加入了系统负载指标 的数据处理和预测方法比单纯基于时间的预测方法效果更好。但是该方法需要对数掘进 行聚类,还需要考虑各个类之间的迁移概率,运算量比较大,处理起来比较复杂。对于 那些专用系统,系统负载通常是维持在一个水平,不会有明显的变化,该方法就不太适 用了不但运算量比原来大了许多,而且通过聚类和m a r k o v 建模还引进了额外的误差, 效果并不比s a c h i ng r a g 的方法好。 2 3 3 基于测量的软件老化研究方法3 m a r ks h e r e s h e v s k y 在他的一篇文献 s h e r e s h e v s k y2 0 0 3 1 里提到了一种用分形几何 学( f r a e t a la n a l y s i s ) 的方法来分析软件老化现象的方法,独辟蹊径,也收到了很好的效果 分形几何学( f r a c t a lg e o m e t r y ) 是二十世纪六、七时年代在数学领域垦发展起来的一 块新领域,最早开创这门学科的人是b e n o i tm a n d e l b r o t 先生。理论创始之初主要是建模 处理自然界中各种混乱无序的现象,收到了很好的效果。最近几年人们发现,网络流量 大小以及股票市场的变化等许多社会现象也都呈现出了分形特征,分形几何学的应用领 域得到了进一步的扩展。在语音信号处理,人类心跳分析,图像压缩算法等诸多领域分 形几何学的应用都取得了不错的效果。m a r ks h e r e s h e v s k y 对软件的运行数掘进行了分 第二节软件岂化的协尘o j 未束 析,认为系统资源的消耗也呈现出了分形特征,因此町以用分形几何学的方法对系统数 据进行分析,发现系统的老化信息,还可以对进行软件回复的最优时问进行预测 一个函数具有分形特征,是指它的函数图像存在以下特征:自相似性 ( s e l f - s i m i l a r i t y ) 、不规则性( i r r e g u l a r i t y ) 、微细结构( f i n es t r u c t u r e ) ,如果一个函数在 不同的点表现出不同的缩放比例,那么称这个函数具有多态分形特性( m u l t i f r a c t a l ) 。 可以通过计算函数的h s l d e r 指数来定量描述函数的多念分形特性。 h s l d e r 函数是描述一个点在其一个邻域内振幅衰减频率的函数,当这个邻域的范围 趋近于零时求出的就是这个点的h s l d e r 指数。一个函数每一个有定义的点都可以计算 出其对应的h 5 1 d e r 指数,越是高度无序不规则的点对应的i t 5 l d e r 指数就越小,平滑的 部分对应的h s l d e r 指数就比较大。 y 6 h e l 和d a o u d i 在他们的文献里提到了一种求解h s l d e r 指数的方法,对于函数 f m 在t 点的h s l d e r 指数可以由下式求得: ,( f ) :l i mi n f ! 到坠:! z ! ! 业 一。“o 1 0 9 ( i 愚1 ) 以上是分析几何学的一些基本知识,下面介绍一下s h e r e s h e v s k y 使用分析几何学 研究软件老化现象的方法。跟所有的基于测量的方法一样。该方法首先也是对系统可用 资源的监测。s h e r e s h e v s k y 只选择了和内存相关的一些量来进行监测,试验的数掘采集 是在一台u n i x 服务器上进行的,该服务器配备了2 5 6 兆内存,3 3 3 m h z 的处理器,操 作系统是s u n o s 5 5 1 ,取样频率是每秒一次。 s h e r e s h e v s k y 通过对系统可用资源监测值分形分析后发现,对于一个系统资源监测 量,其h 6 1 d e r 指数每一个比较大德突变之后,该监测量的值紧跟着也会有一个突然的 波动,因此s h e r e s h e v s k y 推测系统可用资源的分形指数包含了系统老化的“信息”,可 以通过计算可用资源的分形指数来确定进行软件回复的最佳时间。 图z 5 是系统响应大块内存请求分配的内存数量( 1 9a l l o c ) ,从图中可以看出,大 约在4 9 1 5 秒时,系统的l g _ a l l o c 值有一个突然的下降之前大约3 0 秒,h s l d e r 指数也 有一个突然的下降。如果h s l d e r 指数这个突然下降是对系统l ga l l o t 值突然下降的提前 预报的话,就可以根据h j i d e r 指数的变化来提前判断系统的行为,对要到来的危险提 前发出警报。 软们h 砭 上未的d , j ,。j b y 兰至甄 图2 5 人块内存分配曲线及其h s i d e r 指数图 s h e r e s h e v s k y 在大量试验的基础上选择了a v a i l a b l e _ b y t e s ,p o o lp a g e d , a l l o c s ,和 s y s t e mc a c h e _ r e s i d e n t _ b y t e s 三个和内存相关的量组成了一个三维向量( m e m 三维向量) 做为监测向量s h e r e s h e v s k y 发现,在大部分的试验中系统都在该三维向量的h s l d e r 指数出现第二个断点( h s l d e r 值突变) 后不久宕机( 1 5 次试验中有1 2 次) ,在总结了 这个规律之后,s h e r e s h e v s k y 提出了一个以该m e m 三维向量的h 5 l d e r 指数为判断依据 的软件回复方法。具体如下: 实时的计算m e m 三维向量的h s l d e r 指数,同时用s h e w h a r t 算法【1 4 】束检测 h s l d e r 指数的断点,当检测到第二个断点后,就可以判定系统进入了危险状态, 可以对其进行软件回复了。 下图是几个s h e r e s h e v s k y 试验h s l d e r 指数的变化曲线图,每次试验都是以系统宕 机为结束的。从图中可以看到,这四次试验中在系统宕机之前h f l d e r 指数图都有两个 断点出现( 图中用竖线标出) 。 俐t ce;t f ll # 4州1 0 , l h - 。f i ,湖黼脚m i l 正“_ 。出 i i 一一l _ 一 i l m m ,:;0r 3 图2 6m e m 二维向晕的h f l d e r 指数图 s h e r e s h e v s k y 的方法是建立在经验基础上的一种方法,是唯一一个用分形学研究软 件老化的方法,作者存他下一步的工作计划里提到他将深层次的挖掘分形指数和软什老 化之问的关系,这里期待能有新的方法被提出 辩一争软件皇化的仂史j 木柬 2 4 总结 本章介绍了软件老化的一些相关知识和研究方法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理肿瘤病人礼仪培训
- 江西省婺源县2024-2025学年初三学生调研考试数学试题含解析
- 江苏省永丰初级中学2024-2025学年七校联考高考物理试题一模试卷含解析
- 中国计量大学现代科技学院《中医药学概论》2023-2024学年第二学期期末试卷
- 丽水职业技术学院《音乐文献检索与论文写作》2023-2024学年第二学期期末试卷
- 渭南市澄城县2024-2025学年五年级数学第二学期期末教学质量检测模拟试题含答案
- 山西药科职业学院《医学细胞生物学讨论》2023-2024学年第一学期期末试卷
- 江苏省泰州市泰兴市黄桥教育联盟重点名校2025届初三下学期联考(二)语文试题试卷含解析
- 江苏大学京江学院《校园音乐活动策划》2023-2024学年第二学期期末试卷
- 内蒙古艺术学院《教你玩转信息化学习》2023-2024学年第二学期期末试卷
- 华能山东石岛湾核电限公司2025年上半年应届高校毕业生招聘易考易错模拟试题(共500题)试卷后附参考答案
- 空调安装施工方案
- 11力学专题实验-《探究单摆的运动》专项提升(含答案)
- GB/T 45140-2025红树林生态修复监测和效果评估技术指南
- 医疗技术临床应用管理培训
- 节约用水知识竞答考试题库(共400题含答案)
- 旅游行业行程变更及退费免责条款
- 大数据专业学生的实习经历
- 2025年华润电力控股有限公司招聘笔试参考题库含答案解析
- 2023托福听力高分笔记
- 全国班主任比赛一等奖班主任经验交流《春风化为雨润物细无声》精美课件
评论
0/150
提交评论