wrh 发表于 2025-8-13 09:00:11

Innodb_buffer_pool_wait_free参数有值,怎么判断需要增加多少buff

本帖最后由 wrh 于 2025-8-13 09:05 编辑

数据库版本:Server version: 8.0.32-26 GreatSQL (GPL), Release 26

我这边查询Innodb_buffer_pool_wait_free和Innodb_log_waits 参数信息如下:

mysql> SELECT * FROM performance_schema.global_status WHERE variable_name = 'Innodb_buffer_pool_wait_free';
+------------------------------+----------------+
| VARIABLE_NAME                | VARIABLE_VALUE |
+------------------------------+----------------+
| Innodb_buffer_pool_wait_free | 7560827      |
+------------------------------+----------------+
1 row in set (0.00 sec)

mysql> SELECT * FROM performance_schema.global_status WHERE variable_name = 'Innodb_log_waits';
+------------------+----------------+
| VARIABLE_NAME    | VARIABLE_VALUE |
+------------------+----------------+
| Innodb_log_waits | 39             |
+------------------+----------------+
1 row in set (0.00 sec)

我的现有数据库参数中的值如下:

mysql> show variables like 'innodb_buffer_pool_size';
+-------------------------+-------------+
| Variable_name         | Value       |
+-------------------------+-------------+
| innodb_buffer_pool_size | 21474836480 |
+-------------------------+-------------+
1 row in set (0.00 sec)

mysql> show variables like 'innodb_log_buffer_size';
+------------------------+----------+
| Variable_name          | Value    |
+------------------------+----------+
| innodb_log_buffer_size | 16777216 |
+------------------------+----------+
1 row in set (0.00 sec)

内存如下:

            total      used      free      sharedbuff/cache   available
Mem:          125Gi      76Gi       822Mi      35Gi      48Gi      11Gi
Swap:         4.0Gi       4.0Gi          0B



发现这2个参数有值,按照文档监控中说的,这几个有值,需要增加InnoDB Buffer Pool和InnoDB Log Buffer。


1、有没有一个标准,说多少值需要加多少的Buffer?这个能计算的出来吗?


2、然后mysql.log日志中有这些告警:

2025-08-11T19:27:55.652390Z 0 Redo log writer is waiting for a new redo log file. Consider increasing innodb_redo_log_capacity.
2025-08-11T21:58:19.061530Z 0 Redo log writer is waiting for a new redo log file. Consider increasing innodb_redo_log_capacity.
2025-08-11T22:31:13.634393Z 0 Redo log writer is waiting for a new redo log file. Consider increasing innodb_redo_log_capacity.

是因为上面的Innodb_log_waits 这个有值的原因吗?

yejr 发表于 2025-8-13 11:09:25

可以参考我们提供的模板 https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example

一般来说,遵循以下几点
1、专用的数据库服务器,则innodb_buffer_pool_size设置至少是物理内存50%
2、innodb_log_buffer_size设置32MB左右
3、innodb_redo_log_capacity设置4GB起步

wrh 发表于 2025-8-13 11:21:20

yejr 发表于 2025-8-13 11:09
可以参考我们提供的模板 https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example

一般 ...

虚拟机也可以按照这样设置吗?他这个是虚拟机

wrh 发表于 2025-8-13 11:29:34

yejr 发表于 2025-8-13 11:09
可以参考我们提供的模板 https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example

一般 ...

我看了下,你发的这个连接里面,256G的内存,innodb_buffer_pool_size也才配置了16G

yejr 发表于 2025-8-13 12:12:03

wrh 发表于 2025-8-13 11:29
我看了下,你发的这个连接里面,256G的内存,innodb_buffer_pool_size也才配置了16G ...

以本帖的回复建议为准

wrh 发表于 2025-8-13 12:31:27

yejr 发表于 2025-8-13 12:12
以本帖的回复建议为准

这种是不是没有的算数据库的建议值,就像oracle里面有个advise的视图可以看当前最佳的sga设置。
万里有这种吗?或者说根据Innodb_buffer_pool_wait_free这个值计算出来需要多少的buffer_pool?

yejr 发表于 2025-8-13 12:36:35

wrh 发表于 2025-8-13 12:31
这种是不是没有的算数据库的建议值,就像oracle里面有个advise的视图可以看当前最佳的sga设置。
万里有这 ...

没有定式,一般是按需加大,且不超过物理内存70%这个上限
页: [1]
查看完整版本: Innodb_buffer_pool_wait_free参数有值,怎么判断需要增加多少buff