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 这个有值的原因吗?
可以参考我们提供的模板 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起步 yejr 发表于 2025-8-13 11:09
可以参考我们提供的模板 https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example
一般 ...
虚拟机也可以按照这样设置吗?他这个是虚拟机 yejr 发表于 2025-8-13 11:09
可以参考我们提供的模板 https://gitee.com/GreatSQL/GreatSQL-Doc/blob/master/docs/my.cnf-example
一般 ...
我看了下,你发的这个连接里面,256G的内存,innodb_buffer_pool_size也才配置了16G wrh 发表于 2025-8-13 11:29
我看了下,你发的这个连接里面,256G的内存,innodb_buffer_pool_size也才配置了16G ...
以本帖的回复建议为准 yejr 发表于 2025-8-13 12:12
以本帖的回复建议为准
这种是不是没有的算数据库的建议值,就像oracle里面有个advise的视图可以看当前最佳的sga设置。
万里有这种吗?或者说根据Innodb_buffer_pool_wait_free这个值计算出来需要多少的buffer_pool? wrh 发表于 2025-8-13 12:31
这种是不是没有的算数据库的建议值,就像oracle里面有个advise的视图可以看当前最佳的sga设置。
万里有这 ...
没有定式,一般是按需加大,且不超过物理内存70%这个上限
页:
[1]