This document presents an approach called ecoCloud for efficiently consolidating virtual machines (VMs) across physical servers in a cloud data center based on two key resources: CPU and RAM. EcoCloud uses probabilistic procedures driven by local information to assign and migrate VMs, with the goal of increasing server utilization and workload consolidation while reducing electrical costs and meeting service level agreements. Both mathematical modeling and real data center experiments show ecoCloud can rapidly consolidate VMs and balance CPU-bound and RAM-bound workloads to efficiently use resources.