Resource allocation and optimization is one of the important characteristics in cloud computing environment. An vital goal of any cloud service provider is to allocate cost effective and optimized resource packages to the consumers that meet the QOS (Quality of Service) requirements. Though the various set of cloud resources are available, selecting an appropriate resource to the consumers based on their requirements is a tedious task for any providers. Many researchers have already discussed different algorithms for finding the optimal resources to the consumers. However there is a challenge in selecting exact resources that meet QoS Parameters such as performance, availability, reliability and so on. This paper proposes an effective method for optimal resource allocation in multi cloud environment. This approach takes an input, set of QOS parameter value for each user and select the suitable package that matches the QOS value. This paper provides an effective resource allocation solution to IaaS (Infrastructure as a Service) provider based on consumers usage patterns.