Modern advances in virtualization technologies have revolutionized how we build and manage computer systems. Virtualization technologies, however, adversely impact the predictability of system performance, which introduces several challenges in balancing performance and resource utilization.In this dissertation, we explore and address performance challenges by characterizing and modeling application performance for resource allocation in two application scenarios: distributed network emulation and network functions virtualization (NFV). More specifically, we focus on preserving experiment fidelity for distributed network emulators running on heterogeneous physical machines, while, in NFV, we characterize performance impacts of various virtualization and configuration options and make timely resource flexing decisions.