The Buffer pool size 393215
This is in pages not bytes.
To see the Buffer Pool size in GB run this:
SELECT FORMAT(BufferPoolPages*PageSize/POWER(1024,3),2) BufferPoolDataGB FROM
(SELECT variable_value BufferPoolPages FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_total') A,
(SELECT variable_value PageSize FROM information_schema.global_status
WHERE variable_name = 'Innodb_page_size') B;
Database pages 360515
This is the number of pages with data inside the Buffer Pool
To see the amount of data in the Buffer Pool size in GB run this:
SELECT FORMAT(BufferPoolPages*PageSize/POWER(1024,3),2) BufferPoolDataGB FROM
(SELECT variable_value BufferPoolPages FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_data') A,
(SELECT variable_value PageSize FROM information_schema.global_status
WHERE variable_name = 'Innodb_page_size') B;
To see the percentage of the Buffer Pool in use, run this:
SELECT CONCAT(FORMAT(DataPages*100.0/TotalPages,2),' %') BufferPoolDataPercentage FROM
(SELECT variable_value DataPages FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_data') A,
(SELECT variable_value TotalPages FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_total') B;
Modified db pages 300
This is the number of pages in the Buffer Pool that have to be written back to the database. They are also referred to as dirty pages.
To see the Space Taken Up by Dirty Pages, run this:
SELECT FORMAT(DirtyPages*PageSize/POWER(1024,3),2) BufferPoolDirtyGB FROM
(SELECT variable_value DirtyPages FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_dirty') A,
(SELECT variable_value PageSize FROM information_schema.global_status
WHERE variable_name = 'Innodb_page_size') B;
To see the Percentage of Dirty Pages, run this:
SELECT CONCAT(FORMAT(DirtyPages*100.0/TotalPages,2),' %') BufferPoolDirtyPercentage FROM
(SELECT variable_value DirtyPages FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_dirty') A,
(SELECT variable_value TotalPages FROM information_schema.global_status
WHERE variable_name = 'Innodb_buffer_pool_pages_total') B;
As for the other things in the display, run this:
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';
You'll see all the status variables for the Buffer Pool. ou can apply the same queries against whatever you need to examine.
UPDATE 2021-10-01 11:41
Here is a script that will work in MySQL 5.6, 5.7, and 8.0
SET @SCH = IF(VERSION()<'5.7','information_schema','performance_schema');
SET @SQLSTMT=CONCAT("SELECT variable_value INTO @HOSTNAME FROM ",@SCH,".global_variables WHERE variable_name='hostname'");
PREPARE s FROM @SQLSTMT; EXECUTE s ; DEALLOCATE PREPARE s;
SET @SQLSTMT=CONCAT("SELECT variable_value INTO @IBP_SIZE FROM ",@SCH,".global_variables WHERE variable_name='innodb_buffer_pool_size'");
PREPARE s FROM @SQLSTMT; EXECUTE s ; DEALLOCATE PREPARE s;
SET @SQLSTMT=CONCAT("SELECT variable_value INTO @IBP_PAGES_DATA FROM ",@SCH,".global_status WHERE variable_name='Innodb_buffer_pool_pages_data'");
PREPARE s FROM @SQLSTMT; EXECUTE s ; DEALLOCATE PREPARE s;
SET @SQLSTMT=CONCAT("SELECT variable_value INTO @IBP_PAGES_FREE FROM ",@SCH,".global_status WHERE variable_name='Innodb_buffer_pool_pages_free'");
PREPARE s FROM @SQLSTMT; EXECUTE s ; DEALLOCATE PREPARE s;
SET @SQLSTMT=CONCAT("SELECT variable_value INTO @IBP_PAGES_MISC FROM ",@SCH,".global_status WHERE variable_name='Innodb_buffer_pool_pages_misc'");
PREPARE s FROM @SQLSTMT; EXECUTE s ; DEALLOCATE PREPARE s;
SET @SQLSTMT=CONCAT("SELECT variable_value INTO @IBP_PAGES_TOTAL FROM ",@SCH,".global_status WHERE variable_name='Innodb_buffer_pool_pages_total'");
PREPARE s FROM @SQLSTMT; EXECUTE s ; DEALLOCATE PREPARE s;
SET @SQLSTMT=CONCAT("SELECT variable_value INTO @IBP_PAGE_SIZE FROM ",@SCH,".global_status WHERE variable_name='Innodb_page_size'");
PREPARE s FROM @SQLSTMT; EXECUTE s ; DEALLOCATE PREPARE s;
SET @IBP_PCT_DATA = 100.00 * @IBP_PAGES_DATA / @IBP_PAGES_TOTAL;
SET @IBP_PCT_FREE = 100.00 * @IBP_PAGES_FREE / @IBP_PAGES_TOTAL;
SET @IBP_PCT_MISC = 100.00 * @IBP_PAGES_MISC / @IBP_PAGES_TOTAL;
SET @IBP_PCT_FULL = 100.00 * (@IBP_PAGES_TOTAL - @IBP_PAGES_FREE) / @IBP_PAGES_TOTAL;
SET @initpad = 19;
SET @padding = IF(LENGTH(@HOSTNAME)>@initpad,LENGTH(@HOSTNAME),@initpad);
SET @decimal_places = 5; SET @KB = 1024; SET @MB = POWER(1024,2); SET @GB = POWER(1024,3);
SELECT 'innodb_buffer_pool_size' as 'Option',LPAD(FORMAT(@IBP_SIZE,0),@padding,' ') Value
UNION SELECT 'innodb_buffer_pool_size GB',LPAD(FORMAT(@IBP_SIZE / @GB,0),@padding,' ');
SELECT 'Hostname' Status ,LPAD(@HOSTNAME,@padding,' ') Value
UNION SELECT 'This Moment' ,NOW()
UNION SELECT 'Innodb_page_size' ,LPAD(FORMAT(@IBP_PAGE_SIZE,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_pages_data' ,LPAD(FORMAT(@IBP_PAGES_DATA ,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_pages_free' ,LPAD(FORMAT(@IBP_PAGES_FREE ,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_pages_misc' ,LPAD(FORMAT(@IBP_PAGES_MISC ,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_pages_total' ,LPAD(FORMAT(@IBP_PAGES_TOTAL,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_bytes_data' ,LPAD(FORMAT(@IBP_PAGES_DATA * @IBP_PAGE_SIZE,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_bytes_free' ,LPAD(FORMAT(@IBP_PAGES_FREE * @IBP_PAGE_SIZE,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_bytes_misc' ,LPAD(FORMAT(@IBP_PAGES_MISC * @IBP_PAGE_SIZE,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_bytes_total' ,LPAD(FORMAT(@IBP_PAGES_TOTAL * @IBP_PAGE_SIZE,0),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_data GB' ,LPAD(FORMAT(@IBP_PAGES_DATA * @IBP_PAGE_SIZE / @GB,@decimal_places),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_free KB' ,LPAD(FORMAT(@IBP_PAGES_FREE * @IBP_PAGE_SIZE / @KB,@decimal_places),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_free MB' ,LPAD(FORMAT(@IBP_PAGES_FREE * @IBP_PAGE_SIZE / @MB,@decimal_places),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_free GB' ,LPAD(FORMAT(@IBP_PAGES_FREE * @IBP_PAGE_SIZE / @GB,@decimal_places),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_free GB' ,LPAD(FORMAT(@IBP_PAGES_FREE * @IBP_PAGE_SIZE / @GB,@decimal_places),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_misc KB' ,LPAD(FORMAT(@IBP_PAGES_MISC * @IBP_PAGE_SIZE / @KB,@decimal_places),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_misc MB' ,LPAD(FORMAT(@IBP_PAGES_MISC * @IBP_PAGE_SIZE / @MB,@decimal_places),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_misc GB' ,LPAD(FORMAT(@IBP_PAGES_MISC * @IBP_PAGE_SIZE / @GB,@decimal_places),@padding,' ')
UNION SELECT 'Innodb_buffer_pool_total GB' ,LPAD(FORMAT(@IBP_PAGES_TOTAL * @IBP_PAGE_SIZE / @GB,@decimal_places),@padding,' ')
UNION SELECT 'Percentage Data' ,LPAD(CONCAT(FORMAT(@IBP_PCT_DATA,2),' %'),@padding,' ')
UNION SELECT 'Percentage Free' ,LPAD(CONCAT(FORMAT(@IBP_PCT_FREE,2),' %'),@padding,' ')
UNION SELECT 'Percentage Misc' ,LPAD(CONCAT(FORMAT(@IBP_PCT_MISC,2),' %'),@padding,' ')
UNION SELECT 'Percentage Used' ,LPAD(CONCAT(FORMAT(@IBP_PCT_FULL,2),' %'),@padding,' ')
;
Here is a sample output
$ mysql --table < ibp_review.sql
+----------------------------+---------------------+
| Option | Value |
+----------------------------+---------------------+
| innodb_buffer_pool_size | 10,737,418,240 |
| innodb_buffer_pool_size GB | 10 |
+----------------------------+---------------------+
+--------------------------------+---------------------+
| Status | Value |
+--------------------------------+---------------------+
| Hostname | somehostname |
| This Moment | 2021-10-01 11:35:12 |
| Innodb_page_size | 16,384 |
| Innodb_buffer_pool_pages_data | 130,061 |
| Innodb_buffer_pool_pages_free | 524,379 |
| Innodb_buffer_pool_pages_misc | 840 |
| Innodb_buffer_pool_pages_total | 655,280 |
| Innodb_buffer_pool_bytes_data | 2,130,919,424 |
| Innodb_buffer_pool_bytes_free | 8,591,425,536 |
| Innodb_buffer_pool_bytes_misc | 13,762,560 |
| Innodb_buffer_pool_bytes_total | 10,736,107,520 |
| Innodb_buffer_pool_data GB | 1.98457 |
| Innodb_buffer_pool_free KB | 8,390,064.00000 |
| Innodb_buffer_pool_free MB | 8,193.42188 |
| Innodb_buffer_pool_free GB | 8.00139 |
| Innodb_buffer_pool_misc KB | 13,440.00000 |
| Innodb_buffer_pool_misc MB | 13.12500 |
| Innodb_buffer_pool_misc GB | 0.01282 |
| Innodb_buffer_pool_total GB | 9.99878 |
| Percentage Data | 19.85 % |
| Percentage Free | 80.02 % |
| Percentage Misc | 0.13 % |
| Percentage Used | 19.98 % |
+--------------------------------+---------------------+
$