Virtualization-based cloud computing platforms allow multiple Virtual Machines (VMs) running on the same physical machine. Efficient allocation of limited underlying resources has been a key issue. This paper presents an efficient CPU Resources Dynamic Allocation scheme (CRDA). CRDA uses the allocated credits and consumed credits to diagnose the CPU resources requirements of VMs and dynamically adjusts CPU resources according to the requirements of VMs. The adjustment of CPU resources is converted into increased or decreased weights of VMs.