Cloud Computing is a new distributed computing paradigm that consists in provisioning of infrastructure, software and platform resources as services. This paradigm is being increasingly used for the deployment and execution of service-based applications. To efficiently manage them according the autonomic computing approach, service-based applications can be associated with autonomic managers that monitor them, analyze monitoring data, plan and execute configuration action on them. Although, in these last years, autonomic management of cloud services has received an increasing attention, optimization of autonomic managers (AMs) assigned to cloud services and their placement in the cloud remain not well explored. In fact, almost all the existing solutions on autonomic computing have been interested in modeling and implementing of autonomic environments without paying attention on optimization. To address this issue, we present in this paper a novel approach to optimize autonomic management of service-based applications that consists in minimizing both the cost of allocated AMs while avoiding bottlenecks in management and the cost of their placement in the cloud (the inter-virtual machine communication cost). We propose two algorithms: (i) an algorithm that determines the optimal number of AMs to be assigned to services of a managed service-based application, and (ii) an algorithm that approximates the optimal placement of AMs in the cloud. Experiments conducted show the efficiency of our finding.