SAR手册章节:软件老化分析的实验工具

R. Natella, A. Andrzejak
{"title":"SAR手册章节:软件老化分析的实验工具","authors":"R. Natella, A. Andrzejak","doi":"10.1109/issrew51248.2020.00096","DOIUrl":null,"url":null,"abstract":"A significant amount of effort in research related to software aging and rejuvenation (SAR) has been dedicated to designing, implementing, and evaluating tools for the detection of software aging in complex software systems. There are two fundamental reasons for the importance of these tools. First, these tools are required for implementing condition-based software rejuvenation in production environments. They can measure the presence of aging symptoms, such as high resource consumption or degraded performance. Moreover, jointly with aging forecasting models, they can trigger rejuvenation actions when aging symptoms point out that software aging failures are imminent. The second reason which makes these tools important is that they can be used for software aging analysis in laboratory environments, for example during stress tests before releasing a product. This can in turn pinpoint the software aging bugs (such as memory leak bugs), and provide useful information to developers to fix them.In this chapter, we review multiple prominent tools that have been adopted, both by researchers and by software developers, to detect software aging in real, complex software systems. Our selection of aging detection tools is in part based on the SAR literature, including international conferences on dependability (DSN, ISSRE, SRDS), conferences and journals on software engineering, and the WoSAR workshop, the main international event devoted to SAR research. Moreover, we complemented this selection by popular commercial tools, and by tools from technical sources by developers, such as blogs. For each tool, we analyze its internals, use cases, the aging symptoms that it addresses, and relevant applications in real case studies.We included tools for native software, such as systems software written in C and C++, which monitor resource consumption at the OS level and probe software internals, such as heap allocations. Representative tools of this kind include the SNMP-based Proactive Fault Management (PFM) tool for monitoring and detection over SNMP, Valgrind and Memcheck for user-level analysis, and SystemTap and Kprobes for kernel-level analysis. Moreover, we included tools for Java software, such as web and enterprise applications, which monitor performance and resource consumption at the JVM level. Considered tools of this kind include LeakBot, Plumbr, Eclipse Memory Analyzer, and JVMMon.","PeriodicalId":202247,"journal":{"name":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","volume":null,"pages":null},"PeriodicalIF":0.0000,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"SAR Handbook Chapter: Experimental Tools for Software Aging Analysis\",\"authors\":\"R. Natella, A. Andrzejak\",\"doi\":\"10.1109/issrew51248.2020.00096\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"A significant amount of effort in research related to software aging and rejuvenation (SAR) has been dedicated to designing, implementing, and evaluating tools for the detection of software aging in complex software systems. There are two fundamental reasons for the importance of these tools. First, these tools are required for implementing condition-based software rejuvenation in production environments. They can measure the presence of aging symptoms, such as high resource consumption or degraded performance. Moreover, jointly with aging forecasting models, they can trigger rejuvenation actions when aging symptoms point out that software aging failures are imminent. The second reason which makes these tools important is that they can be used for software aging analysis in laboratory environments, for example during stress tests before releasing a product. This can in turn pinpoint the software aging bugs (such as memory leak bugs), and provide useful information to developers to fix them.In this chapter, we review multiple prominent tools that have been adopted, both by researchers and by software developers, to detect software aging in real, complex software systems. Our selection of aging detection tools is in part based on the SAR literature, including international conferences on dependability (DSN, ISSRE, SRDS), conferences and journals on software engineering, and the WoSAR workshop, the main international event devoted to SAR research. Moreover, we complemented this selection by popular commercial tools, and by tools from technical sources by developers, such as blogs. For each tool, we analyze its internals, use cases, the aging symptoms that it addresses, and relevant applications in real case studies.We included tools for native software, such as systems software written in C and C++, which monitor resource consumption at the OS level and probe software internals, such as heap allocations. Representative tools of this kind include the SNMP-based Proactive Fault Management (PFM) tool for monitoring and detection over SNMP, Valgrind and Memcheck for user-level analysis, and SystemTap and Kprobes for kernel-level analysis. Moreover, we included tools for Java software, such as web and enterprise applications, which monitor performance and resource consumption at the JVM level. Considered tools of this kind include LeakBot, Plumbr, Eclipse Memory Analyzer, and JVMMon.\",\"PeriodicalId\":202247,\"journal\":{\"name\":\"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)\",\"volume\":null,\"pages\":null},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-10-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/issrew51248.2020.00096\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/issrew51248.2020.00096","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

摘要

大量与软件老化和再生(SAR)相关的研究致力于设计、实现和评估用于检测复杂软件系统中软件老化的工具。这些工具的重要性有两个根本原因。首先,在生产环境中实现基于条件的软件复兴需要这些工具。它们可以测量老化症状的存在,例如资源消耗高或性能下降。此外,与老化预测模型结合,当老化症状表明软件老化故障迫在眉睫时,它们可以触发年轻化行动。使这些工具变得重要的第二个原因是,它们可以用于实验室环境中的软件老化分析,例如在发布产品之前的压力测试期间。这反过来又可以查明软件老化错误(如内存泄漏错误),并为开发人员提供有用的信息来修复它们。在本章中,我们回顾了研究人员和软件开发人员采用的多个重要工具,以检测真实的复杂软件系统中的软件老化。我们对老化检测工具的选择部分基于SAR文献,包括关于可靠性的国际会议(DSN, ISSRE, SRDS),软件工程的会议和期刊,以及WoSAR研讨会,这是致力于SAR研究的主要国际活动。此外,我们还通过流行的商业工具和开发人员提供的技术来源工具(如博客)来补充这些选择。对于每个工具,我们分析其内部、用例、它所处理的老化症状以及实际案例研究中的相关应用程序。我们为本地软件(例如用C和c++编写的系统软件)提供了工具,这些工具在操作系统级别监视资源消耗并探测软件内部(例如堆分配)。这种类型的代表性工具包括用于在SNMP上监视和检测的基于SNMP的主动故障管理(PFM)工具,用于用户级分析的Valgrind和Memcheck,以及用于内核级分析的SystemTap和Kprobes。此外,我们还包括用于Java软件的工具,例如web和企业应用程序,这些工具在JVM级别监视性能和资源消耗。这类工具包括LeakBot、plumber、Eclipse Memory Analyzer和JVMMon。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
SAR Handbook Chapter: Experimental Tools for Software Aging Analysis
A significant amount of effort in research related to software aging and rejuvenation (SAR) has been dedicated to designing, implementing, and evaluating tools for the detection of software aging in complex software systems. There are two fundamental reasons for the importance of these tools. First, these tools are required for implementing condition-based software rejuvenation in production environments. They can measure the presence of aging symptoms, such as high resource consumption or degraded performance. Moreover, jointly with aging forecasting models, they can trigger rejuvenation actions when aging symptoms point out that software aging failures are imminent. The second reason which makes these tools important is that they can be used for software aging analysis in laboratory environments, for example during stress tests before releasing a product. This can in turn pinpoint the software aging bugs (such as memory leak bugs), and provide useful information to developers to fix them.In this chapter, we review multiple prominent tools that have been adopted, both by researchers and by software developers, to detect software aging in real, complex software systems. Our selection of aging detection tools is in part based on the SAR literature, including international conferences on dependability (DSN, ISSRE, SRDS), conferences and journals on software engineering, and the WoSAR workshop, the main international event devoted to SAR research. Moreover, we complemented this selection by popular commercial tools, and by tools from technical sources by developers, such as blogs. For each tool, we analyze its internals, use cases, the aging symptoms that it addresses, and relevant applications in real case studies.We included tools for native software, such as systems software written in C and C++, which monitor resource consumption at the OS level and probe software internals, such as heap allocations. Representative tools of this kind include the SNMP-based Proactive Fault Management (PFM) tool for monitoring and detection over SNMP, Valgrind and Memcheck for user-level analysis, and SystemTap and Kprobes for kernel-level analysis. Moreover, we included tools for Java software, such as web and enterprise applications, which monitor performance and resource consumption at the JVM level. Considered tools of this kind include LeakBot, Plumbr, Eclipse Memory Analyzer, and JVMMon.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
BP-IDS: Using business process specification to leverage intrusion detection in critical infrastructures Techniques and Tools for Advanced Software Vulnerability Detection Challenges Faced with Application Performance Monitoring (APM) when Migrating to the Cloud AHPCap: A Framework for Automated Hardware Profiling and Capture of Mobile Application States Unit Lemmas for Detecting Requirement and Specification Flaws
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1