MySQL Performance Score

What is MySQL Performance Score?
MySQL Performance Score is a metric developed by Releem and designed to classify how well a MySQL configuration is performing. The MySQL Performance Score can be accessed at any time via the Releem Customer Portal, on the metrics page. This new metric is intended to simplify and automate the evaluation of a MySQL configuration

Releem has developed 3 tools that work together to assess and configure MySQL servers:
  1. Releem Agent - collects metrics by monitoring the server and sends this information to the Releem Cloud Platform. Releem Agent then applies the recommended configuration provided by Releem Cloud Platform.

  2. Releem Cloud Platform - uses the metrics received from Releem Agent to calculate MySQL Performance Score. Recommends MySQL configuration to Releem Agent, intended to resolve any issues and improve MySQL Performance score.

  3. Releem Customer Portal - web interface developed for users. MySQL Performance Score and recommended configuration displayed 24/7 for each MySQL server.

Classification Breakdown for Scores

Monitoring data is combined to produce a numerical value, that can then be classified as Good Performance, Performance Improvements Needed, and Poor Performance. MySQL Performance Scores will range between:

  • 90-100: Good Performance (Fast)
  • 50-89: Performance Improvements Needed (Average)
  • 0-49: Poor Performance (Slow)
MySQL Performance Score
To further understand this breakdown:
  • Good Performance means the MySQL server is well-optimized with limited bottlenecks or irregularities.
  • Performance Improvements Needed means that the MySQL server is somewhat optimized but DBA's may look into improving specific metrics that fall short.
  • Poor Performance means the MySQL server is not well optimized and configurations changes should be made as soon as possible to improve speeds.

MySQL Settings and Status Variables

Releem calculates MySQL Performance Score by summarizing MySQL settings and status variables that describe the efficiency of using Memory, Connections, Logs, Cache, Disk, Indexes, Threads.

Memory

  • innodb_buffer_pool_instances - The number of regions that the InnoDB buffer pool is divided into.
  • Key_reads - The number of physical reads of a key block from disk into the MyISAM key cache.
  • Key_read_requests - The number of requests to read a key block from the MyISAM key cache.
  • Key_writes - The number of physical writes of a key block from the MyISAM key cache to disk.
  • Key_write_requests - The number of requests to write a key block to the MyISAM key cache.
  • key_buffer_size - Index blocks for MyISAM tables are buffered and are shared by all threads. key_buffer_size is the size of the buffer used for index blocks. The key buffer is also known as the key cache.

Connections

  • Connections - The number of connection attempts to the MySQL server.
  • Max_used_connections - The maximum number of connections that have been in use simultaneously since the server started.
  • max_connections - The maximum permitted number of simultaneous client connections.
Logs

  • innodb_log_file_size - The size in bytes of each log file in a log group.
  • innodb_log_files_in_group - The number of log files in the log group. InnoDB writes to the files in a circular fashion. The default (and recommended) value is 2.
Cache

  • Open_tables - The number of tables that are open.
  • Opened_tables - The number of tables that have been opened.
  • Table_open_cache_hits - The number of hits for open tables cache lookups.
  • table_definition_cache - The number of table definitions (from .frm files) that can be stored in the definition cache.

Disk

  • Created_tmp_disk_tables - The number of table definitions (from .frm files) that can be stored in the definition cache.
  • innodb_file_per_table - When innodb_file_per_table is enabled, tables are created in file-per-table tablespaces by default
  • innodb_flush_log_at_trx_commit - Controls the balance between strict ACID compliance for commit operations and higher performance that is possible when commit-related I/O operations are rearranged and done in batches. You can achieve better performance by changing the default value but then you can lose transactions in a crash.
  • innodb_flush_method - Defines the method used to flush data to InnoDB data files and log files, which can affect I/O Throughput.
Indexes

  • total_myisam_indexes – total indexes in MyIsam

Threads

  • Threads_created - The number of threads created to handle connections

Frequently Asked Questions?

How to use MySQL Performance Score?

You can use this metric to determine the effectiveness of the MySQL configuration on your database server.
When the MySQL performance score decreases, it means that you have the opportunity to change the MySQL configuration to improve performance.

Where can I find more information on MySQL Configuration?

To learn more, look over this curated list of resources covering MySQL configuration.

Does Releem support my database management system in calculating MySQL Performance Score?

Releem supports all versions of MySQL, MariaDB and Percona.

How can I get MySQL Performance Score for my database server?

MySQL Performance Score for your server is provided by Releem. To learn more or sign up for free, visit releem.com