Simulating Complex Enterprise Workloads using Utilization Traces

Simulating enterprise environments poses several challenges by virtue of the complex nature of enterprise applications and the systems that need to be modeled. In this paper, we propose an alternate approach to simulating such environments that uses resource utilization traces from real deployments in conjunction with high-level models that correlate resource utilization to system metrics like power and performance. We discuss the requirements and tradeoffs from such a simulation methodology and present results from the BladeSim simulator that instantiates this methodology. Our results show that this approach can enable a host of systems' optimization studies at the enterprise level. INTRODUCTION Enterprise compute environments have seen a lot of dramatic changes in the last decade [RJ05]. New applications have been driven by the adoption of the internet and the services models. Traditional business processing workloads such as enterprise resource planning (ERP), customer relationship management (CRM), transaction processing, data warehousing, and decisionsupport have also increased in importance (and complexity). In addition, server, storage, and network virtualization are being rapidly adopted, leading to greater workload consolidation and the blurring of traditional system boundaries. This increase in the number and complexity of applications has led to higher demands on enterprise IT systems. Large data centers have supplanted individual department-level compute clusters. At the same time, trends towards multi-core processors and modular blade servers have led to ever greater compute capacity being packed in smaller and smaller form factors. All these trends in enterprise systems and workloads lead to corresponding challenges in evaluation methodologies for these environments. Ideally, when evaluating new system architectures, we would like to develop prototype implementations and deploy them in live enterprise environments running the targeted workloads. However, building prototype hardware, especially at scale, requires significant resources. Additionally, getting enterprises to trust their business applications to prototype hardware is a difficult proposition. Even if we were to mirror some of the software setup of real-world enterprise platforms, exercising this setup to show behavior akin to a live deployment is challenging. Furthermore, it is hard to perform a detailed design space exploration with the one specific hardware implementation that a prototype would represent. Given these drawbacks with building real hardware prototypes, simulation is often the only practical way to test architectural ideas and assess system performance. Simulators provide the flexibility to modify and analyze the impact of various architectural parameters and components as well as enable more detailed statistics collection than real hardware. These benefits make simulation useful even for projects that will eventually implement hardware. However, simulation approaches pose several challenges as well. Evaluating system architectures in large-scale enterprise environments requires fullsystem modeling for large-scale parallel and distributed systems. The widely-used SimpleScalar toolset [BAS96] only models a single system and focuses primarily at the processor level. Other simulators, such as M5 [BD+06], GEMS [M+05], SimOS [R+95], and Simics [M+02], provide more detailed full-system simulation, but do not scale well for large-scale systems. In addition, these approaches face the same complexity with deploying and exercising real-world enterprise applications discussed earlier. Further, many of these simulators have slowdowns corresponding to 100-1000X the actual elapsed time. This either leads to long simulation times or requires significant scaling of the workload, often limiting the scope of the studies. In this paper, we address these challenges. Specifically, we make two contributions. • We propose an alternate simulation approach to perform architectural evaluation in enterprise environments. Our approach uses resource utilization traces as the workload input, and high-level models that correlate resource utilization to metrics like performance and power, to emulate the system behavior. We discuss how resource traces can be collected with little overhead on real enterprise deployments, and how additional system models can be created for new architectural configurations by