  Cloud native computing paradigm allows microservice-based applications to
take advantage of cloud infrastructure in a scalable, reusable, and
interoperable way. However, in a cloud native system, the vast number of
configuration parameters and highly granular resource allocation policies can
significantly impact the performance and deployment cost of such applications.
For understanding and analyzing these implications in an easy, quick, and
cost-effective way, we present PerfSim, a discrete-event simulator for
approximating and predicting the performance of cloud native service chains in
user-defined scenarios. To this end, we proposed a systematic approach for
modeling the performance of microservices endpoint functions by collecting and
analyzing their performance and network traces. With a combination of the
extracted models and user-defined scenarios, PerfSim can simulate the
performance behavior of service chains over a given period and provides an
approximation for system KPIs, such as requests' average response time. Using
the processing power of a single laptop, we evaluated both simulation accuracy
and speed of PerfSim in 104 prevalent scenarios and compared the simulation
results with the identical deployment in a real Kubernetes cluster. We achieved
~81-99% simulation accuracy in approximating the average response time of
incoming requests and ~16-1200 times speed-up factor for the simulation.
