Bug #65030 | Innodb_buffer_pool_pages_flushed reports incorrect number of flushed pages | ||
---|---|---|---|
Submitted: | 19 Apr 2012 4:14 | Modified: | 15 May 2012 21:25 |
Reporter: | Davi Arnaut (OCA) | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: InnoDB storage engine | Severity: | S3 (Non-critical) |
Version: | 5.5.21, 5.5.23 | OS: | Any |
Assigned to: | CPU Architecture: | Any | |
Tags: | innodb, Innodb_buffer_pool_pages_flushed, SHOW GLOBAL STATUS |
[19 Apr 2012 4:14]
Davi Arnaut
[19 Apr 2012 6:35]
Valeriy Kravchuk
Thank you for the bug report and code contributed. Similar results with 5.5.23: C:\Program Files\MySQL\MySQL Server 5.5\bin>net start mysql55 The MySQL55 service is starting.. The MySQL55 service was started successfully. C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -uroot -proot -P3312 test Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.23-log MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SHOW GLOBAL STATUS WHERE Variable_name LIKE 'Innodb_pages_written' OR -> Variable_name LIKE 'Innodb_buffer_pool_pages_flushed'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | Innodb_buffer_pool_pages_flushed | 0 | | Innodb_pages_written | 0 | +----------------------------------+-------+ 2 rows in set (0.00 sec) mysql> create table t(c1 int) engine=InnoDB; Query OK, 0 rows affected (0.11 sec) mysql> SHOW GLOBAL STATUS WHERE Variable_name LIKE 'Innodb_pages_written' OR -> Variable_name LIKE 'Innodb_buffer_pool_pages_flushed'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | Innodb_buffer_pool_pages_flushed | 20 | | Innodb_pages_written | 10 | +----------------------------------+-------+ 2 rows in set (0.00 sec) mysql> SHOW GLOBAL STATUS WHERE Variable_name LIKE 'Innodb_pages_written' OR -> Variable_name LIKE 'Innodb_buffer_pool_pages_flushed'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | Innodb_buffer_pool_pages_flushed | 20 | | Innodb_pages_written | 10 | +----------------------------------+-------+ 2 rows in set (0.00 sec) mysql> insert into t values(1); Query OK, 1 row affected (0.06 sec) ... wait few seconds mysql> SHOW GLOBAL STATUS WHERE Variable_name LIKE 'Innodb_pages_written' OR -> Variable_name LIKE 'Innodb_buffer_pool_pages_flushed'; +----------------------------------+-------+ | Variable_name | Value | +----------------------------------+-------+ | Innodb_buffer_pool_pages_flushed | 28 | | Innodb_pages_written | 14 | +----------------------------------+-------+ 2 rows in set (0.00 sec)
[15 May 2012 21:25]
John Russell
Added to changelog for 5.5.25: The Innodb_buffer_pool_pages_flushed status variable was incorrectly set to twice the value it should be. Its value should never exceed the value of Innodb_pages_written.