基于性能分析的自适应插桩框架
作者:
作者单位:

首都师范大学 信息工程学院 北京,首都师范大学 信息工程学院 北京,中国科学院软件研究所 北京;首都师范大学 信息工程学院 北京,首都师范大学 信息工程学院 北京

基金项目:

国家重点研发计划项目(2017YFB1400800),北京市创新团队建设计划项目。


AN ADAPTIVE INSTRUMENTATION FRAMEWORK BASED ON PERFORMANCE ANALYSISWang Zipeng1,2, Ren Zhongshan1,3, Zhang Shudong1,2, Hu Jianya1,2
  • 摘要
  • | |
  • 访问统计
  • |
  • 参考文献 [25]
  • |
  • 相似文献
  • |
  • 引证文献
  • | |
  • 文章评论
    摘要:

    插桩技术用于跟踪获取软件系统的运行时信息,是软件性能管理工具中不可或缺的一个部分。目前,存在的各类插桩工具所产生的插桩点在目标程序运行的过程中往往是不可改变的。在实际的程序异常、错误检测中,用户关心的程序代码的位置在不同阶段往往不同,因此目标程序运行的不同阶段所需要获取信息的插桩点位置是不同的,如果插桩点过多会导致插桩工具浪费系统资源,产生系统资源消耗过大的问题;插桩点过少则会导致无法准确定位目标软件发生异常位置。针对以上问题,使用基于线性回归和K-Means的分析模型,分析目标软件的性能数据,在其运行过程中动态地改变插桩点,尽可能的减少资源的消耗;另外,采用朴素贝叶斯分类模型对插桩类进行筛选,减少植入插桩点的类,可降低插桩带来的资源消耗。实验表明:与传统的工具相比,使用此插桩框架进行监控,被测网页的平均响应时间减少6.88%,同时对目标程序的干扰更小。

    Abstract:

    Instrumentation is an indispensable part of the application performance management (APM) and used for tracking and obtaining the information of software system. Nowadays, there are various instrumentation tools, and the probes of the tools are unchanged during target application operation. However, in daily exception and bug detection, users require different code monitoring in different periods of a target application operation, and too many probes may have the result that the instrumentation tool wastes and consumes more system resources; too few probes may result that APM can’t locate accurate positioning failure of target software. We proposes a new adaptation instrumentation framework based on analyzing performance data and carries out adaption instrumentation based on liner regression and K-Means, changes the probes dynamically during operation and reduces the resource waste as much as possible. What’s more, this paper uses Na?ve Bayes to filter Java classes for reducing instrumentation classes and overhead; In comparison to the traditional tools, this paper leads to low overhead and disturbance through the experiment, average page response time reduced by about 6.88%.

    参考文献
    [1] Sigelman B H, Barroso L A, Burrows M, et al. Dapper, a large-scale distributed systems tracing infrastructure[R]. Technical report, Google, Inc, 2010.
    [2] Cantrill B, Shapiro M W, Leventhal A H. Dynamic Instrumentation of Production Systems[C]//USENIX Annual Technical Conference, General Track. 2004: 15-28.
    [3] Luk C, Cohn R, Muth R, et al. Pin: building customized program analysis tools with dynamic instrumentation[J]. programming language design and implementation, 2005, 40(6):190-200.
    [4] Zipkin. http://twitter.github.io/zipkin/.
    [5] Pinpoint . https://github.com/naver/pinpoint.
    [6] Wert A, Schulz H, Heger C, et al. AIM: adaptable instrumentation and monitoring for automated software performance analysis[C]. automation of software test, 2015: 38-42.
    [7] Madsen M, Tip F, Andreasen E, et al. Feedback-directed instrumentation for deployed JavaScript applications[C]//Software Engineering (ICSE), 2016 IEEE/ACM 38th International Conference on. IEEE, 2016: 899-910.
    [8] Salehie M, Tahvildari L. Self-adaptive software: Landscape and research challenges[J]. ACM Transactions on Autonomous and Adaptive Systems, 2009, 4(2).
    [9] Shende S, Malony A D, Morris A. Optimization of Instrumentation in Parallel Performance Evaluation Tools[J]. Lecture Notes in Computer Science, 2007, 4699:440-449.
    [10] Chiba S. Javassist—a reflection-based programming wizard for Java[C]//Proceedings of OOPSLA’98 Workshop on Reflective Programming in C++ and Java. 1998, 174.
    [11] Witten I H, Frank E. Data mining: practical machine learning tools and techniques with Java implementations[J]. international conference on management of data, 2002, 31(1): 76-77.
    [12] Kianifard F. Applied linear regression models[J]. Technometrics, 1984, 26(3): 352-353.
    [13] Jain A K. Data clustering: 50 years beyond K-means[J]. international conference on pattern recognition, 2010, 31(8): 651-666.
    [14] 袁鑫晨, 李海波, 王伟,等. 基于程序分析的分布式应用自动化追踪方法[J]. 计算机系统应用, 2016, 25(11):35-40.
    [15] Yang C, Wu S, Chan W K, et al. Hierarchical Program Paths[J]. ACM Transactions on Software Engineering and Methodology, 2016, 25(3).
    [16] Broadleaf online demo. http://demo.broadleafcommerce.org/.
    [17] Zheng Y, Zhang C, Kell S, et al. Dynamic optimization of bytecode instrumentation[C]// ACM Workshop on Virtual Machines and Intermediate Languages. ACM, 2013:21-30.
    [18] Zhang Y, Makarov S, Ren X, et al. Pensieve: Non-Intrusive Failure Reproduction for Distributed Systems using the Event Chaining Approach[C]// The, Symposium. 2017:19-33.
    [19] Li Z, Gan S, Jia R, et al. Capture-removal model sampling estimation based on big data[J]. Cluster Computing, 2017, 20(2):1-9.
    [20] Kaldor J, Mace J, Bejda M, et al. Canopy: An End-to-End Performance Tracing And Analysis System[C]// The, Symposium. 2017:34-50.
    [21] Yu Y, Rodeheffer T, Chen W. RaceTrack: efficient detection of data race conditions via adaptive tracking[C]// Twentieth ACM Symposium on Operating Systems Principles. ACM, 2005:221-234.
    [22] Jeswani D, Natu M, Ghosh R K. Adaptive monitoring: A framework to adapt passive monitoring using probing[C]// Network and Service Management. IEEE, 2012:350-356.
    [23] Ehlers J, Hoorn A V, Waller J, et al. Self-adaptive software system monitoring for performance anomaly localization[C]// ACM International Conference on Autonomic Computing. ACM, 2011:197-200.
    [24] Karianakis N. Sampling Algorithms to Handle Nuisances in Large-Scale Recognition[J]. 2017.
    [25] Li Z, Gan S, Jia R, et al. Capture-removal model sampling estimation based on big data[J]. Cluster Computing, 2017: 1-9.基金项目:国家重点研发计划项目(2017YFB1400800),北京市创新团队建设计划项目。作者简介:王子鹏(1993.10.28-),男,甘肃定西人,硕士研究生,主要研究方向:分布式系统监控、机器学习。联系方式:手机13810348055E-mail:unclepeter@foxmail.com
    相似文献
    引证文献
引用本文

王子鹏,张树东,任仲山,胡建亚.基于性能分析的自适应插桩框架计算机测量与控制[J].,2018,26(9):232-241.

复制
相关视频

分享
文章指标
  • 点击次数:
  • 下载次数:
  • HTML阅读次数:
  • 引用次数:
历史
  • 收稿日期:2018-02-27
  • 最后修改日期:2018-03-14
  • 录用日期:2018-03-14
  • 在线发布日期: 2018-09-14
文章二维码