一句话:提出 Parikshan 框架,通过用户态虚拟化与网络代理将网络包中继到可疑服务副本,无需记录即可回放生产缺陷。
在 7x24 服务型应用(SOA)中,生产缺陷的快速定位与修复至关重要,但调试已部署应用很困难,需要复现相似环境和工作负载,已有自动复现方法难以扩展到大型 SOA 系统。作者通过人工研究五个系统中的 16 个真实缺陷,验证了一个关键洞见:许多语义与性能缺陷可通过将网络包中继到可疑服务的副本来自动复现。基于此提出 Parikshan,一个利用用户态虚拟化和网络代理技术构建沙箱“调试”环境的应用监控框架。开发者可在该环境中自由附加调试器和分析工具,而不影响生产环境的性能与正确性。与现有监控方案相比,Parikshan 以显著更低的开销实现应用监控。
Short time-to-localize and time-to-fix for production bugs is extremely important for any 24x7 service-oriented application (SOA). Debugging buggy behavior in deployed applications is hard, as it requires careful reproduction of a similar environment and workload. Prior approaches for automatically reproducing production failures do not scale to large SOA systems. Our key insight is that for many failures in SOA systems (e.g., many semantic and performance bugs), a failure can automatically be reproduced solely by relaying network packets to replicas of suspect services, an insight that we validated through a manual study of 16 real bugs across five different systems. This paper presents Parikshan, an application monitoring framework that leverages user-space virtualization and network proxy technologies to provide a sandbox “debug” environment. In this “debug” environment, developers are free to attach debuggers and analysis tools without impacting performance or correctness of the production environment. In comparison to existing monitoring solutions that can slow down production applications, Parikshan allows application monitoring at significantly lower overhead.
@inproceedings{paperbot4735,
title = {Replay without recording of production bugs for service oriented applications},
author = {Nipun Arora and Jonathan Bell and Franjo Ivančić and Gail Kaiser and Baishakhi Ray},
booktitle = {ASE},
year = {2018},
doi = {10.1145/3238147.3238186}
}