InnoDB Change Buffer graph inaccurate?

I have a 50GB buffer pool and innodb_change_buffer_max_size set to 1. This should be 1% of 50GB, or about 500MB.

innodb_ibuf_size reflects 1 (not sure what the unit is), but the graph shows 1.25GB utilized for this feature.

I’m wondering if the math to arrive at the graphed number isn’t actually correct?

Some info for diagnostics:

mysql> show status like ‘innodb_ibuf%’;
±-----------------------------------±------+
| Variable_name | Value |
±-----------------------------------±------+
| Innodb_ibuf_discarded_delete_marks | 0 |
| Innodb_ibuf_discarded_deletes | 0 |
| Innodb_ibuf_discarded_inserts | 0 |
| Innodb_ibuf_free_list | 82011 |
| Innodb_ibuf_merged_delete_marks | 101 |
| Innodb_ibuf_merged_deletes | 9 |
| Innodb_ibuf_merged_inserts | 2219 |
| Innodb_ibuf_merges | 1557 |
| Innodb_ibuf_segment_size | 82013 |
| Innodb_ibuf_size | 1 |
±-----------------------------------±------+
10 rows in set (0.00 sec)

[url]grafana-dashboards/MySQL_InnoDB_Metrics.json at pmm-1.x · percona/grafana-dashboards · GitHub

In your case you have “ibuf free list” of 82011 which is amount of space actually allocated in Insert buffer which is where 1.25GB come from the ibuf_segment_size is 82013

This graph does not make a difference between what is allocated in memory vs what is allocated in segment on disk

We’ll think how this can be improved.