Measuring the potential overhead of PMM Client on MySQL workloads
Having good historial metrics monitoring in place is critical for properly operating, maintaining and troubleshooting database systems, and Percona Monitoring and Management is one of the options we recommend to our clients for this. One common concern among potential users is how using this may impact their database's performance. As I could not find any conclusive information about this, I set out to do some basic tests and this post shows my results. To begin, let me describe my setup. I used the following Google Cloud instances:
- One 4 vCPU instance for the MySQL server
- One 2 vCPU instance for the sysbench client
- One 1 vCPU instance for the PMM server
![](https://www.pythian.com/hs-fs/hubfs/Imported_Blog_Media/Boxplot-pmm-client-overhead.png?width=800&height=697&name=Boxplot-pmm-client-overhead.png)
![](https://www.pythian.com/hs-fs/hubfs/Imported_Blog_Media/with-ssl-pareto-1000000-plot.png?width=4199&height=4199&name=with-ssl-pareto-1000000-plot.png)
![](https://www.pythian.com/hs-fs/hubfs/Imported_Blog_Media/without-ssl-pareto-1000000-plot.png?width=4199&height=4199&name=without-ssl-pareto-1000000-plot.png)
PMM | SSL | tps (p99) |
enabled | enabled | 1167.518 |
enabled | disabled | 1397.397 |
disabled | disabled | 1429.097 |
Conclusion
PMM is a very good Open Source option for monitoring but as every instrumentation and monitoring layer you add to your stack, it won't come for free. My very simple tests show that its impact may be significant under some scenarios, yet if it's bad enough it may be mitigated by using HTTP instead of HTTPS for the exporters. Given the events that are unfolding in IT security as I type this, it may seem reckless to recommend disabling SSL as an "optimization", but I think good engineering is all about informed tradeoffs and if you're running this on a secure private network, how risky is it to expose monitoring metrics over HTTP instead of HTTPS? I would love to read answers to this question in the comments! Finally, I think a similar cost is probably paid for the TLS layer on the pmm-server end. It would be very interesting to see an experiment like this repeated but on a different scenario: one pmm-server with several monitored clients.Share this
Previous story
← Database migration using Apache NiFi
You May Also Like
These Related Stories
The getMOSPatch V2 is here!
The getMOSPatch V2 is here!
Jul 7, 2016
3
min read
Mining the AWR to Identify Performance Trends
Mining the AWR to Identify Performance Trends
Oct 31, 2013
8
min read
Text index usage within MongoDB
Text index usage within MongoDB
Jul 30, 2018
3
min read
No Comments Yet
Let us know what you think