暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
table_open_cache
852
3页
0次
2020-05-28
5墨值下载
参数解释
Open_tables
目前正在打开的表
table_open_cache
:设置表缓存大小(
Open_tables
小于等于
table_open_cache
max_connections
mysql
最大连接数
opened_tables
mysql
自启动起,打开表的数量。
table_open_cache
设置问题
参数解释
问题分析
故障排查
解决方案
原理解释
参数解释
Open_tables:
目前正在打开的表
table_open_cache
:设置表缓存大小(
Open_tables
小于等于
table_open_cache
max_connections
mysql
最大连接数
opened_tables
mysql
自启动起,打开表的数量。
问题分析
接下来开始分析和排查问题,主要有以下几个方面:
zabbix
监控触发器定义不合理;
参数设置不合理;
人为大量操作数据库导致报警;
业务量突增对数据库的压力增大;
其他原因(暂时不清楚)
故障排查
首先查看
zabbix
监控触发器是否合理:
通过查看发现
zabbix
监控定义是继承的模板,其
mysql
集群没有报警,只有该主机
警,说明不是触发器的问题。
查看参数设置是否合理:
open_tables
opened_tables
opened_tables
这个看不出什么情况,因为自
mysql
服务启动就开始计算了,需要关注的是它的增长速度。
show global status like 'open%tables%';
1
show variables like 'table_open_cache'; //
查看
cache
设置大小
1
通过对比发现打开的表已占满缓存,说明是参数设置太小
解决方案
围绕参数设置可有以下解决方案:
1.
减少打开的表的数量(造成业务中断,不可行)
2.
将参数调大:
在将参数调大时,够用就好,需要注意
mysql
占用文件描述符,不可调的太大。首先先进
mysql
设置临时系统变量为
4096
(该系统变量在
mysql
重启会失效),所以还需要在
my.cnf
写入参数设置,保持重启有效。
mysql
table_open_cache
max_connections
相关。例如,对于
200
个并发运行的连接,指定的表缓存大小至少为
200 * N
,其中
N
是执行的任何查询中每个联接的最大表数。您还必须为临时表和文件
留一些额外的文件描述符。
原理解释
mysql
访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可
以更快地访问表内容。如果没有缓存区没空间的话,先使用置换算法将一些目前未使用
表清理出去,然后再载入该表,这样一来,造成打开缓慢。
MySQL
关闭未使用的表并将其从表缓存中删除:
1.
当缓存已满并且线程尝试打开不在缓存中的表时。
2.
table_open_cache
线使
用时。
3.
FLUSH TABLES
mysqladmin 7ush-
tables
mysqladmin refresh
命令时,会发生这种情况。
当表高速缓存填满时,服务器将使用以下过程找到要使用的高速缓存条目:
1.
从最近最少使用的表开始,释放当前未使用的表。
2.
如果必须打开一个新表,但是缓存已满并且无法释放任何表,则可以根据需要临时扩展
缓存。当缓存临时展状且表从已使用状态变为未使,表将关闭并从缓
存中释放。
属性
命令行格式
–table-open-cache=#
系统变量
table_open_cache
全球
类型
默认值
2000
低值
1
of 3
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜