Thanks to everyone who attended last week’s webinar on Using Open Source Software to Optimize and Troubleshoot Your MySQL Environment; hopefully you’ve found the time we spent in Percona Monitoring and Management (PMM) useful.
We had a record-breaking number of questions during the talk and unfortunately weren’t able to answer them all live, so we decided to answer them separately. Also, there were several requests for best practices around installation and configuration. This is something we are considering for the next webinar in this series, so stay tuned!
If you weren’t able to attend, the recording is available for viewing. But now, without further ado, here are the questions that we didn’t have time to cover during the presentation.
Q: Can PMM also be used for a web hosting server (Cpanel, Directadminetc)?
PMM by default can monitor a node to provide vital statistics on the health of the host. From there, you can use external exporters to monitor other applications and send the data to PMM to visualize and create alerts.
Q: Does it provide any query optimization suggestions if my query is bad?
Not at present…that’s planned for the future query advisor
Q: How soon we will be able to use the alerting manager in production?
We are looking at late Sept to early Oct. When it’s ready, you will hear about it!
Q: Capturing Queries Data for performance checking can be costly and some monitoring systems capture data every few seconds. At what level of data is captured here and analyzed…live systems with lots of database traffic? What percentage (all of it, 2 seconds, 1 second, etc.)?
We adhere to ‘do no harm’ so the impact of PMM is typically 1-4% of the busiest systems. We offer custom resolutions to adjust the scrape frequency to balance the need for information with the need for performance.
Q: Are long-running queries captured that potentially slow down the system over time & shown as graph/alert? Also, is there potentially more than one instance of these types running over again by a user.?
This is something we are going to include in our Alerting capabilities (coming soon, see above).
Q: Can more than one of the metrics be compared against each other to gain more insight into a problem in graphical form? Can you in effect play with these graphs?
Yes, you can, this is in fact how most of the dashboards are designed, where we connect different metric series together to drive graphs that explain system performance. While you may be able to edit the existing graphs, Percona recommends that you instead make a copy of the dashboard you’d like to modify and make your changes on the copy. The reason for this is if you modify a dashboard distributed by PMM, it will be overwritten on the next upgrade, and you’ll lose your changes.
Q: Could you list what can be monitored using PMM? And explain what recommended plugins are available and what they are used for?
Natively, any Linux system and pretty much all flavors of MySQL, MariaDB, MongoDB, and PostgreSQL. You can use external exporters to gather even more data than default and using Grafana as the basis for visualization of PMM allows you to create custom dashboards and a wealth of community plugins.
Q: Can you choose to monitor a particular set of users? Set of queries? Set of schema?
You can filter it down to view based on username, particular schema, and then filter those results by particular query strings. We can monitor as much or as little about your database as the user you define to pull data.
Q: How can we work on optimization when using cloud-based services like RDS where we have limited access?
PMM can monitor RDS instances and has simplified the connection and selection process of its remote monitoring capabilities. We can provide nearly the same data as an on-prem database however we don’t have access to the node level statistics.
Q: For Oracle MySQL 5.7.29, if you have many tables/objects in the database, will the PMM query information_schema and load the DB?
We have a predefined limit of 1000 tables that will disable polling information schema but you can configure this to your liking both with the client and with remote monitoring. This CAN have a more significant impact on your system though especially with large table and row counts.
Q: At what point do I know I’ve done enough optimization?
HA! It’s a never-ending game of cat and mouse considering the sheer volume of variables in play. It’s these times where monitoring data for before and after become vital.
Q: Can a database monitoring package be the source of database performance issues? In particular, mysqld_exporter is installed as a docker container, as I’m seeing “out of resources” on a trace on mysqld_exporter.
Of course, there are plenty of ways to generate database performance issues and it’s possible monitoring can result in some overhead. For an extreme example, here’s one way to replicate some overhead: start the pmm-client on a MySQL database and restore a blank DB from mysqldump. A few million rows at a time should generate LOTS of chaos and load between QAN and exporters. Our pmm client runs the exporter natively so no need to use a container.
Q: Is the query analytics somehow slowing down the database server as well? Or is it save to enable/use it without further impact?
The impact is minimal. Most of the Query Analytics processing is done at the PMM server, the only impact to the client is retrieving the queries from slowlog or performance schema so this can have a bigger impact for the most extremely active DB’s but still should remain below 5% CPU hit.
Q: Did I understand correctly that PMM is not for RDS users and that AWS tools are available?
PMM certainly is for RDS! Since RDS is managed by AWS, PMM cannot collect CPU/Disk/Memory metrics but all MySQL metrics are still available even in RDS.
Q: Do you have any instructions/steps to install PMM to monitor MySQL RDS?
- Gear icon → PMM Inventory → Add Instance
- Choose AWS/RDS Add Remote Instance
- Use your AWS credentials to view your available RDS & Aurora nodes
- Ensure that performance_schema is enabled