MySQL InnoDb Throughput Test
InnoDB uses asynchronous disk I/O where possible, by creating a number of threads to handle I/O operations, while permitting other database operations to proceed while the I/O is still in progress. If InnoDB determines that there is a high probability of data being needed soon, it performs read-ahead operations to bring that data into the buffer pool so that it is available in memory. Making a few large read requests for contiguous data can be more efficient than making several small, spread-out requests. There are two read-ahead heuristics in InnoDB:
-
In sequential read-ahead, if InnoDB notices that the access pattern to a segment in the tablespace is sequential, it posts in advance a batch of reads of database pages to the I/O system.
-
In random read-ahead, if InnoDB notices that some area in a tablespace seems to be in the process of being fully read into the buffer pool, it posts the remaining reads to the I/O system.
If the rows in the InnoDB cannot be read through, then, the data should be catered to the users from the disks which is an expensive operation. To avoid such unwanted disk reads/writes, administrators should keep track on the efficiency of the InnoDB tables, figure out how well the rows in the tables are inserted, deleted etc. The MySQL InnoDb Throughput test helps administrators in this regard!
This test tracks the load on the InnoDB tables of the MySQL database server and reports which type of operations (reads or writes or inserts or updates or deletes) are contributing to the workload of the InnoDB tables. The test additionally reports the random/sequential read-aheads initiated by the InnoDB tables. Capacity planning and clustering decisions can be taken based on insights provided by this test.
Target of the test : A MySQL server
Agent deploying the test : An internal/remote agent
Outputs of the test : One set of results for the target database server instance being monitored
Parameter | Description |
---|---|
Test Period |
How often should the test be executed. |
Host |
The IP address of the MySQL server. |
Port |
The port at which the specified host listens. |
Database |
Specify the name of a database on the target MySQL database server being monitored |
Username and Password |
The eG agent has to be configured with the credentials of a user who has server-wide Process and Select privileges on the monitored MySQL server. To know how to create such a user, refer to Pre-requisites for Monitoring the MySQL Server |
Confirm Password |
Confirm the password by retyping it here. |
Measurement | Description | Measurement Unit | Interpretation |
---|---|---|---|
Key reads |
Indicates the number of physical reads of a key block from disk into the MyISAM key cache. |
Number |
If the value of this measure is increasing at a steady pace, then administrators should consider reconfiguring the key_buffer_size value. |
Key read rate |
Indicates the number of physical reads of a key block from disk into the MyISAM key cache per second during the last measurement period. |
Reads/sec |
A consistent increase in the value of this measure could indicate a potential overload. |
Key writes |
Indicates the number of physical writes of a key block from the MyISAM key cache to disk. |
Number |
|
Key write rate |
Indicates the number of physical writes of a key block from the MyISAM key cache to disk per second during the last measurement period. |
Writes/sec |
A consistent increase in the value of this measure could indicate a potential overload. |
Random read ahead rate |
Indicates the number of “random” read-aheads initiated by InnoDB during the last measurement period. |
Number |
|
Sequential read ahead rate |
Indicates the number of “sequential” read-aheads initiated by InnoDB during the last measurement period. |
Number |
|
Wait for free buffer |
Indicates the number of buffer pool waits during the last measurement period. |
Number |
Normally, writes to the InnoDB buffer pool happen in the background. When InnoDB needs to read or create a page and no clean pages are available, InnoDB flushes some dirty pages first and waits for that operation to finish. This measure counts the instances of such waits. A consistently high value for this measure indicates that the innodb_buffer_pool_size value should be reconfigured with appropriate value. |
Row insert |
Indicates the number of rows inserted into the Innodb tables during the last measurement period. |
Number |
|
Row update |
Indicates the number of rows that were updated in the InnoDB tables during the last measurement period. |
Number |
|
Row delete |
Indicates the number of rows that were deleted from the InnoDB tables during the last measurement period. |
Number |
|
Row Read |
Indicates the number of rows that were read from the InnoDB tables during the last measurement period. |
Number |
|
Row insert rate |
Indicates the rate at which rows were inserted into InnoDB tables during the last measurement period. |
Inserts/sec |
|
Row update rate |
Indicates the rate at which rows were updated in the InnoDB tables during the last measurement period. |
Updates/sec |
|
Row delete rate |
Indicates the rate at which rows were deleted from the InnoDB tables during the last measurement period. |
Deletes/sec |
|
Row read rate |
Indicates the rate at which rows were read from the InnoDB tables during the last measurement period. |
Reads/sec |
|