Live virtual machine (VM) migration is a technique for transferring an active VM from one physical host to another without disrupting the VM. In principle, live VM migration enables dynamic resource requirements to be matched with available physical resources, leading to better performance and reduced energy consumption. However, in practice, the resource consumption and latency of live VM migration reduce these benefits to much less than their potential. We demonstrate how these overheads can be substantially reduced, enabling live VM migration to fulfill its promise. Specifically, we first experimentally study several factors that contribute to the resource consumption and latency of live VM migration, including workload characteristics, the hypervisor and migration configuration, and the available system and network resources. Then, from the insights gained, we propose an alternative remote direct memory access-based migration technique that significantly reduces VM migration overheads. Finally, via simulation and experiments with real system prototypes, we demonstrate that the reduced VM migration overhead results in significant improvements in resource and energy efficiencies, relative to existing migration techniques.