在系统运行过程中,如果我们发现Cache hit rate过小,或者我们通过观察statspack中的Instance Efficiency Percentages这部分呢,我们会发现Buffer Hit%的值很低,通常这就是在暗示你要增加DB_CACHE_SIZE了

1.通常的计算方法

可能大家都知道我们一般都是通过以下的公式来计算我们的buffer hit%的

Cache hit rate=((consistent_gets + db_block_gets) - physical_reads) /

(consistent_gets + db_block_gets)

2.进一步更精确的结果,我们需要考虑direct reads

如果Buffer hit%为85%,那么如果只是这样简单的按照上面的公式,计算得到85%的命中率,并不意味着miss rate=15%,因为15%中包括我们通常所说的direct reads。

direct reads一般发生在parallel scans和 reads from temporary tablespaces等情况下。blocks被直接读入私有PGA中的buffer,而没有经过SGA中的buffer cache.所以我们不应该把其算入内.

所以,如果我们通过查询v$sysstat来计算buffer hit%,可以去掉direct物理读部分,这样更新后的公式就是

Buffer hit = 1 - ((physical reads - physical reads direct - physical reads direct (lob)) /

(db block gets + consistent gets - physical reads direct - physical reads direct (lob))

另外,v$sysstat中的consistent_gets的值也有所夸大,可以累加以下4项得到:

no work - consistent read gets

cleanouts only - consistent read gets

rollbacks only - consistent read gets

cleanouts and rollbacks - consistent read gets

其实最好的方法是直接访问V$BUFFER_POOL_STATISTICS而不是v$sysstat,其中的数据都是排除了direct reads的结果。

比如

V$BUFFER_POOL_STATISTICS.physical_reads=v$sysstat 的'physical reads'- 'physical reads direct'- 'physical reads direct (lob)'

这样可以直接运行下面的语句来计算我们的Buffer Hit%:

select name, ((consistent_gets + db_block_gets) - physical_reads) /

(consistent_gets + db_block_gets) * 100 "Hit Ratio%"

from v$buffer_pool_statistics

where physical_reads > 0;

计算出linux cache,关于计算buffer cache hit rate的精确算法相关推荐

  1. linux缓存buffer,【Linux】清理缓存buffer/cache

    运行sync将dirty的内容写回硬盘 sync 通过修改proc系统的drop_caches清理free的cache echo 3 > /proc/sys/vm/drop_caches ech ...

  2. 边缘计算网关linux开发,边缘计算网关(BMG800系列)二次开发指导手册

    边缘计算网关二次开发指导手册 库函数接口介绍 (适用于:BMG800系列) 目录 1. 获取温湿度(硬件设备为sht10) 2. 获取大气压(硬件设备为bmp180) 3. 读取ADC值(硬件设备为m ...

  3. 怎么用计算机计算出选手最后得分,计算选手最后得分(限制分的值,且最后按n或N键结束,其他键继续)...

    1./* 2.*程序的版权和版本声明部分: 3.*Copyright(c)2013,烟台大学计算机学院学生 4.*All rights reserved. 5.*文件名称: 6.*作者:尚振伟 7.* ...

  4. 和linux关系_Linux内核Page Cache和Buffer Cache关系及演化历史

    在我们进行数据持久化,对文件内容进行落盘处理时,我们时常会使用fsync操作,该操作会将文件关联的脏页(dirty page)数据(实际文件内容及元数据信息)一同写回磁盘.这里提到的脏页(dirty ...

  5. linux刷新磁盘_Linux内核Page Cache和Buffer Cache关系及演化历史

    在我们进行数据持久化,对文件内容进行落盘处理时,我们时常会使用fsync操作,该操作会将文件关联的脏页(dirty page)数据(实际文件内容及元数据信息)一同写回磁盘.这里提到的脏页(dirty ...

  6. linux page buffer cache深入理解

    Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][1] = ...

  7. Linux buffer/cache解读

     cache与buffer解读 cache出现的原因与功能 计算机硬件中CPU.内存.磁盘是最主要的三大部分,其中,CPU发展到今天,执行速度最快,而内存相对CPU而言,就慢多了,CPU执行的指令是从 ...

  8. Linux内存中的 buffer 和 cache

    Linux内存中的 buffer 和 cache 到底是个什么东东? Linux 中的 free 命令,会输出: total 总量 used  已使用 free 空闲 shared 共享内存 buff ...

  9. Linux buffer/cache 内存占用过高的原因以及解决办法

    表现现象 在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个 CoreOS 的系统上,free命令的显示内容大概是这样一个状态: core@localhost ~ $ free ...

最新文章

  1. 万年历的设计c语言,万年历设计报告
  2. 算法和编程面试题精选TOP50!(附代码+解题思路+答案)
  3. android 自定义弹窗,Android自定义弹窗
  4. Java泛型的实现原理
  5. Windows 编程[12] - 菜单与菜单资源(一)
  6. redis特点单进程单线程高性能服务器,Redis为什么是单线程?Redis又为什么这么快!...
  7. Jlink无法识别CPU/lpc2103/lpc2131
  8. 入职后,如何判断公司值不值得长期待下去?
  9. 页面仔 很丢人么?前端越来越不好干了
  10. 马斯克再带货狗狗币:超7成网友票选狗狗币为未来货币
  11. HDU 4336:Card Collector 期望+状压
  12. android imagebutton 设置边框,【Android技巧】ImageButton 去边框 添加按下效果
  13. 记录一个SetupFactory使用手册
  14. arm体系结构编程-入门介绍
  15. selenium弹窗处理,包括Javascript弹窗、HTML弹出层和Windows弹窗
  16. STM32利用DCMI对并口ADC高速数据采样
  17. 2.3 pandas:汇总和计算描述统计(统计上的方法)
  18. 从mysql迁移数据到postgre
  19. 开源GPU显存虚拟化项目,你的2080Ti还能救一下
  20. [论文阅读] Curriculum Semi-supervised Segmentation

热门文章

  1. find和grep命令合集
  2. 云上赶年集、品年味,阿里云让云上中国年“春节不打烊”
  3. u盘安装centos 7.2
  4. 解决jquery调用NET webservice跨域的问题
  5. 软件测试---弹出窗口
  6. Mysql_mysql force Index 强制索引
  7. Discuz! X3.2后台管理员登录不了的问题
  8. Windows 10 Build 9879 新变化(内含ISO下载)
  9. A.2.3-猜数字游戏
  10. C#获取周一、周日的日期 函数类