Infrastructure-as-a-service (IaaS) clouds are becoming widely adopted. However, as multiple tenants share the same physical resources, performance anomalies have become one of the top concerns for users. Unfortunately, performance anomaly diagnosis in the production IaaS cloud often takes a long time due to its inherent complexity and sharing nature. In this paper, we present PerfCompass, a runtime performance anomaly fault localization tool using online system call trace analysis techniques. Specifically, PerfCompass tackles a challenging fault localization problem for IaaS clouds, that is, differentiating whether a production-run performance anomaly is caused by an external fault (e.g., interference from other co-located applications) or an internal fault (e.g., software bug). PerfCompass does not require any application source code or runtime instrumentation, which makes it practical for production IaaS clouds. We have tested PerfCompass using a set of popular software systems (e.g., Apache, MySQL, Squid, Cassandra, Hadoop) and a range of common cloud environment issues and real software bugs. The results show that PerfCompass accurately diagnoses all the faults while imposing low overhead during normal application execution time.
['Daniel Joseph Dean', 'Hiep Nguyen', 'Peipei Wang', 'Xiaohui Gu']
PerfCompass: toward runtime performance anomaly fault localization for infrastructure-as-a-service clouds