This paper surveys resource allocation in cloud computing, emphasizing the need for dynamic mechanisms to meet increasing user demands. It categorizes and compares existing resource allocation techniques, including static and dynamic models, and discusses strategies such as SLAs, market-based, and utilization-based approaches. The paper also highlights research challenges in resource allocation, including VM migration, control mechanisms, energy efficiency, and scheduling of parallel jobs.