Introduction ProxySQL is a high performance proxy for MySQL and its forks. One of the key features is its ability to handle hundreds of thousands of connections with very low overhead. Some of the other key features are query caching, traffic mirroring, query routing and pluggable architecture. It is also the only open source proxy […]
Last week VividCortex's Preetam Jinka published a post on his personal blog examining how our
engineering team had overcome a problem with MySQL replication by
using a new parallelization policy introduced in MySQL 5.7:
The solution we developed—which achieves faster replication via group commit and a carefully calibrated delay—can offer huge replication improvements, but its implementation isn't immediately obvious or intuitive. We thought it worthwhile to provide a fuller description of how we arrived at the solution Preetam outlined.…[Read more]
Quite some time ago, when we added the ability to monitor MySQL
query performance statistics from MySQL’s
PERFORMANCE_SCHEMA, we learned a number of
valuable lessons, still worth sharing. There are definitely right
and wrong ways to do it. If you are looking to the P_S tables for
monitoring MySQL query performance, this blog post might save you
some time and mistakes.
What Is The Performance Schema?
First, a quick introduction. The Performance Schema includes a set of tables that give information on how statements are performing. Most of the P_S tables follow a set of predictable conventions: there’s a set of tables with a limited set of full-granularity current and/or historical data, which is aggregated into tables that accumulate over time. In the case …[Read more]
MySQL continues to be one of the most popular databases used in cloud-native applications. In fact, MySQL is so popular that other cloud databases such as AWS Aurora maintain wire protocol compatibility with MySQL. For SREs and DevOps engineers running MySQL database in production, it is crucial to understand how to monitor MySQL. MySQL poor health can lead to cascading effects on other application components. For example, slow queries can impact page load times for an application, or missing indexes can result in high-latency and application time-outs. By effectively monitoring the performance of databases and query executions, SREs and DevOps can identify if there are bottlenecks in the database tier which affect the overall application performance. With this appreciation for the importance of MySQL monitoring, let us quickly survey what techniques are commonly used for MySQL monitoring and then discuss …[Read more]
In recent news, we announced the fresh-of-the-press Percona Monitoring and Management (or PMM for short) platform. Given the interaction of the different components that together make up PMM, I developed a script that helps provide you information about the status of your PMM installation.
You can use this script yourself, or one of our support might point you to this page to obtain the information they need to troubleshoot an issue you are experiencing.
You will likely want to execute this script once on the PMM …[Read more]
The other day I was speaking with someone who asked me a few times how we find and hire engineers who are capable of building performance/monitoring tools. I didn't have a great answer in the moment, but after the conversation was over, I realized it's because I fundamentally believe we all are capable of understanding and solving systems performance problems. We're all brainiacs, so to speak.
This has been a theme of my career. If you look back at my pre-Percona days, read the 2nd and then the 3rd edition of my book High Performance MySQL, examine my opensource software, look at the ebooks and white papers I've written, or listen to the recordings of any of my …[Read more]
A few weeks ago, I wrote a blog post explaining how sketch sampling methods can be employed to achieve fast 30-day data visibility for monitoring users. The problem we faced was that with that standard of retention, we’ve frequently seen systems that involve nearly a million query samples in a 30-day window, meaning that special solutions are needed in order to avoid overloading users’ browsers.
The solution we’ve found lies in a hash ordering that's proven to be both surprisingly simple and efficient. In this Part 2 post, I’ll look at why it works so well.
Ordering with a Hash
VividCortex’s query samples are stored in MySQL tables. The simplified schema definition looks like this:
Recently, I worked on a customer case where the customer needed to monitor the checksum via Nagios monitoring. The pmp-check-pt-table-checksum plugin from Percona Monitoring Plugins for MySQL achieves this goal. I thought it was worth a blogpost.
There’s no doubt that effective application performance management can be a daunting goal. As businesses have demanded increasingly complex tasks from their technology, the solutions required to keep their systems in top shape need to be ever more insightful and precise. While things like efficiency and uptime are the bottomline indicators of an app or database’s performance, there’s a variety of potential methods that can be used to achieve those ideals.
As in any other industry, false information proliferates where people are eager for quick, simple solutions. Naturally, we all want the fastest, most direct ways to fortify our APM. But where ambitious ideas can be powerful and positive, they can also be too good to be true or send the wrong message. Whether these involve — for example — overestimation of …[Read more]
Like prior versions, PMM is distributed through Docker Hub and is free to download. Full instructions for download and installation of the server and client are available in the documentation.
Notable changes to the tool include:
- Upgraded to Grafana 3.1.0.
- Upgraded to Prometheus 1.0.1.
- Set default metrics retention to 30 days.
- Eliminated port 9001. Now the container uses only one configurable port, 80 by default.
- Eliminated the need to specify ADDRESS variable …