共享的特性在大多数(如果不是全部的话)数据库,他们像Oracle这样的传统关系数据库,MySQL和PostgreSQL或某种NoSQL-style像MongoDB数据库,使用缓存机制保持(副本)的一部分数据在内存中。
我在上一篇谈过这个最重要的MySQL设置,背后的原因很简单:访问数据从内存仍然比从磁盘检索数据快许多倍。如果一千个用户试图访问一个给定的数据的同时,需要从磁盘取为每个请求将是非常低效的。
注意,缓存结构不一定是和你一样大数据集工作。在大多数情况下,如果它是足够大的存储“热”数据集的一部分,或最经常访问的数据,这是一个胜利。考虑从上面的例子中,即使这一点用户所请求的数据在内存中没有找到,需要从磁盘检索,缓慢的操作必须执行一次批处理的请求。
所以,你怎么知道你的热数据是在内存中?你怎么知道如果你的MySQL数据库缓存操作有效吗?
通过比较数据页的数量(“比特的数据”)是直接从内存页面的数据量必须从磁盘获取:更多的数据库需要从磁盘读取完成查询,缓存结构操作的效率越低。注意,实现查询造成这一复习/比必要的处理更多的数据,加载到缓存结构,通常把热数据。
发现比并不容易;理想情况下,数据库应该公开这些指标。MySQL。其主要数据缓存结构标准InnoDB存储引擎缓冲池。两个状态变量(或地位计数器在这种情况下),使缓冲池效率(引用MySQL手册):
- Innodb_buffer_pool_read_requests:逻辑读请求的数量。
- Innodb_buffer_pool_reads:InnoDB的逻辑读数量不能满足从缓冲池,并直接从磁盘读取。
多年来,MySQL dba监视工具一直在跟踪这些指标甚至捕捉他们在关键时刻手动。raybet雷竞技竞猜在线官网两个工具的雷竞技下载官网Percona工具包可以帮助:
- pt-stalk可用于捕获状态变量(在其他服务器性能分析的重要指标)。例如:
|
1
|
美元
pt- - - - - -茎
- - -没有- - - - - -茎
- - -迭代=1
- - -- - -用户=根
- - -密码=秘密
|
- pt-mext可以用来绘制状态变量的集合被pt-stalk在某种程度上,突显出一个集合的状态变量随时间变化的样本。例如:
|
1
|
美元
pt- - - - - -下边了
- - - - - -r
- - -
猫
/var/自由/pt- - - - - -茎/2023年_03_31_18_50_33- - - - - -mysqladmin
>
/tmp/ptmext
|
然后:
|
1
2
3
|
美元
grep
”Innodb_buffer_pool_reads
|
Innodb_buffer_pool_read_requests”/tmp/ptmext
Innodb_buffer_pool_read_requests
105982819
46157年
46299年
47181年
47637年
46932年
45713年
48839年
47792年
48064年
46446年
48498年
47994年
47074年
47367年
46578年
44069年
46793年
47815年
48299年
46636年
47323年
46392年
43919年
45229年
42383年
418932年
326100年
43851年
Innodb_buffer_pool_reads
9370874
5325年
5360年
5480年
5512年
5464年
5369年
5621年
5549年
5541年
5421年
5614年
5468年
5453年
5495年
5401年
5106年
5404年
5555年
5604年
5424年
5494年
5376年
5111年
5243年
4887年
4420年
4868年
|
约,它显示了平均89%的页面读取缓冲池,或11%的页面从磁盘获取资源。
有一个简单的方法来获得这些信息吗?如果你有raybetapp官方下载 。实际上,曾经有一个图表来显示这个PMM 1节。它从在PMM2已经被移除,所以我创建了一个特性要求把它带回来:https://jira.雷竞技下载官网percona.com/browse/pmm - 11923
一件事没有做好当时混合读请求写请求,然后有三分之一的数据点从磁盘读取,如:

Innodb_buffer_pool_reads是一个百分比的Innodb_buffer_pool_read_requests。因此,最好是由一个表示酒吧风格的图,脱离写请求:

我应该追求100%的命中率呢?
第二个原因我们有,图从PMM是为了避免传递错误的印象:你应该考虑增加缓冲池大小,如果你看到任何从磁盘读取出现,目的是达到100%命中率。
记住,你想要缓冲池大得足以容纳你所有的热数据——不是由于硬度查询页面加载。这些需要追踪和固定,PMM也可以帮助你这样做。
比较从磁盘读取从上面的CPU使用情况图节点汇总指示板,我们可以看到一段被从磁盘读取,当页面iowait是非常高的:

然后我们可以检查MySQL处理程序图在MySQL实例的总结仪表板寻找可能的索引扫描(read_next)和全表扫描(read_rnd_next),

甚至MySQL临时对象仪表盘上相同的图搜索磁盘上的临时表。但是我们会发现的地方我们正在寻找查询,查询我们需要改进,在查询分析(QAN)仪表盘——一天的主题!
我坚信有这个图的一个重要地方“数据缓存效率”PMM的MySQL。它不应该看在一个孤立的方式,和我们的目标不应该了绿色图。不过,我们可以得到重要的信息服务器的效率和工作负载通过瞥一眼这个图表。
雷竞技下载官网Praybet雷竞技竞猜在线官网ercona监视和管理是一种优秀的开源数据库监视解决方案。它能帮助你降低复杂性、优化性能和改善关键业务数据库的安全环境中,无论他们在那里部署。

想要每周更新清单的最新博客文章?
现在订阅,我们将送你一个更新每周五下午1点等。
相关的博客文章
推荐的文章
2023年5月9日
米甲Nosek
恢复一个分片的快照MongoDB集群Kubernetes-Based MongoDB的环境
2023年5月8日
大卫·奎尔蒂
雷竞技下载官网2raybet雷竞技竞猜在线官网.37 Percona监视和管理,对MongoDB 5.0.17 Percona分布:释放综述5月8日,2023年
2023年5月8日
罗马诺维科夫先生
雷竞技下载官网Praybet雷竞技竞猜在线官网ercona监视和管理2.37:改进库存看来,新的实验Kubernetes监视仪表板,以及更多!
最受欢迎文章
2023年1月17日
谢尔盖Pronin
保持你的数据库安全Percona顾问雷竞技下载官网
2023年2月10日
马塞洛•阿尔特曼
雷竞技下载官网Percona XtraBackup现在支持我实例配置文件
2023年2月10日
拉蒂。乔杜里
雷竞技下载官网Percona XtraBackup和MySQL 5.7查询等待表刷新状态