Cloud data centers consume vast amounts of electrical energy all over the world. Energy conservation in data centers has become a severe problem. This paper presents an energy-efficient virtual machine (VM) consolidation algorithm for cloud data centers. The proposed policy exploits the average utilization of each VM to estimate the expected utilization of physical hosts. Then, the expected utilization, the actual utilization and the static threshold are combined together to determine whether a host is at the status of overloading or not. Some VM(s) on the overloading hosts are then selected for migration to avoid Service Level Agreements (SLA) violations. The results of the experiment show that the proposed algorithm can effectively reduce energy consumption while guarantee SLAs.