| Bug #107400 | Contribution by Tencent:memory/innodb/buf_buf_pool incorrect after resize | ||
|---|---|---|---|
| Submitted: | 26 May 2022 5:56 | Modified: | 3 Oct 2023 8:59 |
| Reporter: | yuxiang jiang (OCA) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Performance Schema | Severity: | S3 (Non-critical) |
| Version: | 5.7 | OS: | Any |
| Assigned to: | Marc ALFF | CPU Architecture: | Any |
| Tags: | Contribution | ||
[26 May 2022 6:14]
MySQL Verification Team
Hello yuxiang jiang, Thank you for the report and feedback. regards, Umesh
[29 May 2022 10:17]
yuxiang jiang
follow up mixup (*) I confirm the code being submitted is offered under the terms of the OCA, and that I am authorized to contribute it.
Contribution: 0001-Fixup-in-correct-pfs-memory-innodb-buf_buf_pool-coun.patch (application/octet-stream, text), 4.04 KiB.
[30 Mar 2023 7:59]
MySQL Verification Team
Bug #107397 marked as duplicate of this one
[3 Oct 2023 8:55]
Marc ALFF
Thanks for the report, analysis, and contribution.
This has been fixed in 8.0 already:
mysql> select * from setup_instruments where NAME = 'memory/innodb/buf_buf_pool' \G
*************************** 1. row ***************************
NAME: memory/innodb/buf_buf_pool
ENABLED: YES
TIMED: NULL
PROPERTIES: global_statistics
FLAGS:
VOLATILITY: 0
DOCUMENTATION: NULL
1 row in set (0.00 sec)
The fix was implemented by:
(MySQL bug)
Bug#90561 pfs memory statistics missing InnoDB buffer pool
(Oracle bug)
BUG#27917595 PFS MEMORY STATISTICS MISSING INNODB BUFFER POOL
Which is documented as:
[7 Jun 2018 21:59] Daniel Price
Posted by developer:
Fixed as of the upcoming 8.0.13 release, and here's the changelog entry:
Buffer pool memory allocation was not fully accounted for in Performance
Schema memory/innodb/buf_buf_pool statistics.
---
When implementing the fix, the buffer pool was also instrumented as a global buffer, as visible with `PROPERTIES: global_statistics` in 8.0
[3 Oct 2023 8:59]
Marc ALFF
Fixed in 8.0.13 by: Bug#90561 pfs memory statistics missing InnoDB buffer pool

Description: After resize innodb buffer pool size, we found that the value of memory/innodb/buf_buf_pool keep the same as previos in sys.memory_global_by_current_bytes. How to repeat: step 1 build a release version step 2 set performance on in my.cnf as below performance_schema=ON performance-schema-instrument='memory/%=COUNTED' innodb_buffer_pool_size=1G step 3 start server select * from sys.memory_global_by_current_bytes where event_name like '%buf_buf_pool%'\G *************************** 1. row *************************** event_name: memory/innodb/buf_buf_pool current_count: 2 current_alloc: 1.02 GiB current_avg_alloc: 524.25 MiB high_count: 2 high_alloc: 1.02 GiB high_avg_alloc: 524.25 MiB step 4 resize buffer pool size set global innodb_buffer_pool_size=2147483647; select * from sys.memory_global_by_current_bytes where event_name like '%buf_buf_pool%'\G *************************** 1. row *************************** event_name: memory/innodb/buf_buf_pool current_count: 2 current_alloc: 1.02 GiB current_avg_alloc: 524.25 MiB high_count: 2 high_alloc: 1.02 GiB high_avg_alloc: 524.25 MiB 1 row in set (0.00 sec) Suggested fix: It seems that memory/innodbbuf_buf_pool is a global entry not a pfs_thread related entry. By change the definition of the entry as below in source file storage/innobase/ut/ut0new.cc. {&mem_key_buf_buf_pool, "buf_buf_pool", PSI_FLAG_GLOBAL}, We can get the correct result.