Time to forget show processlist for monitoring?

Disclaimer: I’m not specially an expert of benchmarking, this post is to compare different options. All comments and advices are welcome.

I’m not telling you anything new, the show processlist command is a fantastic command line tool for instant check.
But what about monitor your databases with this command embedded in a tool?

Just have a look at this graph:

Screenshot 2014-06-23 at 10.09.38 PM

With 5K queries per seconds, how much will be hidden with a show processlist executed every seconds? Probably a lot.
So, I wanted to test which alternatives could be efficient to retrieve all the queries during a time lapse.

Test procedure and configuration

I used sysbench 0.5 (with oltp.lua) to make my tests on different configurations and tools.
My test server is a 20 cores (hyper-threaded) server with 128Go of RAM and a RAID 10 disk setup.
These tests are based on Percona Server 5.5.31.
I tested the amount of TPS from 1 to 64 concurrent threads.

Here is the standard benchmark graph (TPS):

0a7dffb4f4105bbaecefd912495f7447

Slow query log set to 0 (file output)

d4c4ef22f54e29ebbcfacd3e7395c4b1

Estimated size of the file: 52Go
We reach a stable peak of 1000 transactions per second.

Slow query log set to 0 (table output)

9e9ba5be3a12928fc4ea876c688c1bcf

Estimated size of the table: 8.9Go
Table contention is probably the cause of a stabilization around 600 transactions per second.

General log in a file

806e583c9db079f5ebf7846a27e92a6f

Estimated size of the file: 11Go
2000 transactions per second can be hoped here.

General log in a table

d49dbc548a3fa124ced9b58038581f74

Estimated size of the table: 9.9Go
Again, the results are below compared to the previous results in a file.

Infinite show processlist in a file

62adf7a0696c51338e217ac2bb2894ac

Estimated size of the file: 1.1Go
The results don’t seem so dramatic but not sure all the queries were grabbed in the file.

MariaDB Audit Plugin in a file

c223b317a1d2d8e2f14002d1666fcd6f

Estimated size of the file: 14Go
plugin-load=server_audit=server_audit.so
server_audit_events             = QUERY
server_audit_file_path          = /var/log/mysql/audit.log
server_audit_logging            = ON
server_audit_output_type        = file

MacAfee Audit Plugin (default configuration)

526777e9fa90b1b236b453519d616145

Estimated size of the file: 22Go

audit_offsets=6480, 6528, 4080, 4520, 104, 2584
audit_json_file=1
audit_json_socket_name=/tmp/audit.sock
audit_json_log_file=/var/log/mysql/mysql-audit.log
audit_record_cmds=select,insert,update,delete

MacAfee Audit Plugin (via socket)

fb244656047883f4eeab8a4bf046caf3

Estimated size of the file: 22Go

audit_offsets=6480, 6528, 4080, 4520, 104, 2584
audit_json_file=1
audit_json_socket=1
audit_json_socket_name=/tmp/audit.sock
audit_json_log_file=/var/log/mysql/mysql-audit.log
audit_record_cmds=select,insert,update,delete

MacAfee Audit Plugin (via socket + file sync 1000)

706b1033314f4ef6c774688bc618a612

Estimated size of the file: 22Go

audit_offsets=6480, 6528, 4080, 4520, 104, 2584
audit_json_file=1
audit_json_socket=1
audit_json_socket_name=/tmp/audit.sock
audit_json_log_file=/var/log/mysql/mysql-audit.log
audit_record_cmds=select,insert,update,delete
audit_json_file_sync=1000

Performance Schema activated

eb1ba3455682c347cf34cbaf53aad57a

performance_schema
performance_schema_events_waits_history_long_size = 10000
performance_schema_events_waits_history_size = 1000

Conclusions

Auditing a system necessarily has an impact on your system.
The tools and options presented here can provide various information.
Also, you have to consider how you’ll handle these data after having collected them.

The show processlist command don’t seem so dramatic for performance but not guarantee that all the queries will be retrieve.
You probably have to chose another solution if you really need to collect reliable data.

Hope these quick tests could help you to chose the right tool for your needs.

What do you want to know about Glimpsee?

glimpsee_coming_soon

We have had some success with the introduction of Glimpsee last month. Merci !
I would like to thanks all of you who have registered and those who are interested in Glimpsee without even really knowing what’s going on.
It is really important for us to feel enthusiasm about our work, because we work hard to provide a tool that could improve your life.

We hope to offer a public beta release of Glimpsee before the end of the year and many more surprises before. Meanwhile, we would like to offer you an incomplete FAQ about Glimpsee, enjoy :
 

What is Glimpsee?

 

Glimpsee is a smart dashboard for lazy DBA (devops included)
The dashboard provides, as Software-as-a-Service, a new way to view the status of all your databases securely, anytime, everywhere and at a glance.

 

Does Glimpsee may replace my current monitoring tool?

 

Not really, glimpsee is not another monitoring tool.
We would like to offer you a simple tool you want to use in “real time”, something like a companion who helps you all day long.
Now, monitoring will be no longer boring, just pretty.

 

Does Glimpsee is in the cloud?!

 

Glimpsee is behind the cloud, it will be your daily sunshine…

 

How does it work?

 

As part of our overall system, the Glimpsee agent is the interface between your servers and our API.
We wanted to make a simple tool carried by a simple architecture.
A picture is worth than a long speech, welcome to the Glimpsee’s House!

 
glimpseeHouse

What about security?

 

Be sure that all the communications between you and us are secured and encrypted.
Moreover, we emphasize that only “monitoring data” transit between your servers and our API.
That’s mean no server addresses, no queries, no user data, just love… Cause we love your data!

 

Does Glimpsee will be open source?

 

No, Glimpsee is a Software-as-a-Service tool.
But we care that everyone can use Glimpsee, so, we prepare nice stuff and an enjoyable pricing plan.

 

Why I would like to use Glimpsee after all?

 

Because you are so lazy and you would like to enjoy your life.

 

This is an incomplete FAQ because we would like to hear your questions, please comment.
Continue to support us, we need you!

 

www.glimpsee.net

 

Your databases in a glance with Glimpsee (sign up now!)

glimpsee_plus

During the last months we’ve worked hard on a new and exiting project!

“We’re making it easier

to show your databases in a glance”

 

I’m very proud to reveal the project for the first time because I am convinced that Glimpsee will change the way you “watch” the status of your databases…

Glimpsee is not another monitoring tool, it is the easiest way we’ve found to make DBA’s life easier.

I can’t say more about Glimpsee at this point but keep in mind these few words: simple, simple and… simple!

An alpha release of Glimpsee is already running for a lucky few. Register now to be the firsts to discover Glimpsee!
 

www.glimpsee.net

 

Monitoring your monitoring tools (MONyog inside) !

Regardless of the monitoring tool you use to monitor your databases, it can be better to monitor this tool.
No, it’s not a joke ! Do you think you can have a benefit with a monitoring tool not connected to your servers ? ( without being alerted )

I choose to talk about MONyog here but this can apply to all existing monitoring tools.
I just want to share the message, the tool does not matter, so, do it !

So, let me explain how to control if you have fresh data with MONyog.
With MONyog it’s easy because it’s an agentless monitoring tool.

There are two ways to check that :

Per server general info :

 

For each server, you can find the last data updated date in the Monitors/Advisors tab.
The MySQL Availability in the dashboard is also usefull.

But it’s a per server information, so, that can be boring if you have a lot of databases servers.

General log file :

The default location for this file is MONyog_PATH/MONyog.log on your MONyog server.
You can find usefull informations there about MySQL, SFTP or SSH connexion failures for all your databases servers, in one place.

This log can also be used to detect client side errors if you don’t have access to the application servers.

Hope that can help, tell us what is the best method to do that with others monitoring tools like MySQL Enterprise Monitor.

Have a nice week-end.