Due to complex deployment configurations and dynamic application logics in cloud computing, microservice architectures are widely used to divide cloud applications into multiple independent microservices communicating with each other through APIs that are not associated with languages and platforms. However, a large amount of various microservices make it difficult for operators to predict the performance of microservices and then estimate cloud applications’ capacity. This paper proposes a capacity estimation framework called as Capestor for cloud applications based on a service mesh. Capestor employs a service mesh to place target microservices in isolated containers, simulates workloads, and collect monitoring data related with performance metrics and physical resources. Then, Capestor employs an ElasticNet regression model to correlate resources and performance, and estimates the capacity of each microservice to plan fine-grained flexible expansion. Finally, we evaluate Capestor with a typical microservice based application. The experimental results show that Capestor can estimate the capacity of microservices, and guarantee performance for applications with a low prediction error rate.