内存还是硬盘? 数据库IO瓶颈时的抉择
创始人
2024-06-11 21:30:35
0

很多DBA在进行数据库管理时通常都会遇到数据库IO瓶颈,在硬件成本预算有限的情况下,解决这一瓶颈有两个方法:一是增加内存;二是增加磁盘(假设不增加机器的情况下)。到底是加内存合算,还是加磁盘实惠呢,这是个头疼的问题。

已经神秘消失的数据库大师Jim Gray早在20年前就为我们考虑过这个问题了,并且得出一个结论叫“五分钟规则”(Five Minutes Rule),就是说如果一个页面每五分钟就会被访问一次的话,就应该把它放到内存中去,否则就应该把它存储在磁盘上。这样,数据库只要统计一下有多少页面的访问频率超过五分钟一次,就知道需要多少内存了。

当然五分钟是个典型值,或者表示一个数量级,具体的值要看硬件条件。Jim Gray给出的公式是:

RI = 每M数据页数 * 一块磁盘的价格 / 磁盘每秒能进行的随机IO次数 / 每M内存的价格

其中RI即为要放到内存的页面访问时间周期阈值。

这个一公式可以这么理解。假设你拿到一个页面,它的访问周期是I。你要决定是买内存来存储这个页面还是买磁盘来存储它。假设买内存来存储,开销很容易算出来是"每M内存价格/每M数据页数"。如果买磁盘来存,则开销是"一块磁盘的价格 / 磁盘每秒能进行的随机IO次数 / I",意思是说,我买个磁盘花的钱是“一块磁盘的价格”这么多,再我这个页一秒只会访问"1/I"次,因此我只占用了磁盘带宽的"1/I/磁盘每秒能进行的随机IO次数",因此为这个页花的开销就是“一块磁盘的价格 / 磁盘每秒能进行的随机IO次数 / I"。

这样,导致内存开销"每M内存价格/每M数据页数"与磁盘开销"一块磁盘的价格 / 磁盘每秒能进行的随机IO次数 / I"相等的I值即为访问时间周期阈值,计算出来就是公式中的RI。

在数据库IO瓶颈时,针对当前常用硬件来计算一下。设页面大小为16K(InnoDB默认页面大小),也就是每M数据页数64,一块SAS盘算3000块,每秒能进行200次随机IO,4G的内存算3000块一条,也就是每M内存0.75元。这样算出来RI是1280秒,也就是20分钟左右。

可惜的是MySQL并不提供页面的访问频率统计功能。可以用一个方法来代替,就是把数据库关掉,起来后看20分钟内数据库的缓存有没有满,若没有满,表示内存太大,否则表示内存太小。只是在热门时间段肯定是不会去做这个实验的,非热门时间段倒是可以把数据库重起下,但这时负载轻又不准了。即使是哪天MySQL crash了,在热门时间段crash后要做很多redo,又不准了。

实际上这一功能是可以实现的,统计有多少个20分钟访问一次的页面可以近似的转化为统计20分钟内有多少个不同的页面被访问。假设系统中内存大小与理想值相差不太大,则只需要多用不到1/1000的内存就可以统计出来,当然每次页面访问时要多搜索一个哈希表。嗯,在NTSE里准备实现吧,哈哈。

当然这一计算已经忽略了很多实际因素,比如如果你机器上的RAID卡已经满了不能加硬盘,那就只好加内存了,如果内存槽插满了,那就只好加硬盘了。如果硬盘和内存都加不了,那就加机器吧。另外上述计算假设页面访问是完全随机的,如果是顺序访问,那就大不相同了,这时的RI会小很多,因为这时磁盘每秒能读入的页面数增加了。

 

【编辑推荐】

  1. MySQL数据库性能优化的关键参数
  2. 磁盘排序对Oracle数据库性能的影响
  3. 优化数据库大幅度提高Oracle的性能
  4. 数据库机时代将到来 DBA面临新挑战
  5. 高手详解SQL性能优化十条经验

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...