In resource provisioning for datacenters, an important issue is how resources may
be allocated to an application such that the service level agreements (SLAs) are
met. Resource provisioning is usually guided by intuitive or heuristic expectation
of performance and existing user model. Provisioning based on such methodology,
however, usually leads to more resources than are actually necessary. While such
overprovisioning may guarantee performance, this guarantee may come at a very
high cost. A quantitative performance estimate may guide the provider in making
informed decisions about the right level of resources, so that acceptable service
performance may be provided in a cost-effective manner. A quantitative estimate
of application performance must consider its workload characteristics. Due to the
complex workload characteristics of commercial software, estimation of its
performance and provisioning to optimize for cost is not straightforward. In this
work we looked at breaking the application into isolated modalities (modality is a
scenario in which an application is used, for example, instant messaging, and voice
calls are two different modalities of a media application) and measuring resource
cost per modality as an effective methodology to provision datacenters to optimize
for performance and minimize cost. When breaking the application into modalities,
resource cost is assessed in isolation. Results are then aggregated to estimate the
overall resource provisioning requirements. A validation tool is used to simulate
the load and validate the assumptions. This was applied to a commercially
available solution and validated in a datacenter setting