成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

內存還是硬盤? 數(shù)據(jù)庫IO瓶頸時的抉擇

運維 數(shù)據(jù)庫運維
數(shù)據(jù)庫IO瓶頸有兩個解決方法:一是增加內存;二是增加磁盤。到底是加內存合算,還是加磁盤實惠呢,Jim Gray在20年前給出的“五分鐘規(guī)則”也許可以幫到我們。

很多DBA在進行數(shù)據(jù)庫管理時通常都會遇到數(shù)據(jù)庫IO瓶頸,在硬件成本預算有限的情況下,解決這一瓶頸有兩個方法:一是增加內存;二是增加磁盤(假設不增加機器的情況下)。到底是加內存合算,還是加磁盤實惠呢,這是個頭疼的問題。

已經神秘消失的數(shù)據(jù)庫大師Jim Gray早在20年前就為我們考慮過這個問題了,并且得出一個結論叫“五分鐘規(guī)則”(Five Minutes Rule),就是說如果一個頁面每五分鐘就會被訪問一次的話,就應該把它放到內存中去,否則就應該把它存儲在磁盤上。這樣,數(shù)據(jù)庫只要統(tǒng)計一下有多少頁面的訪問頻率超過五分鐘一次,就知道需要多少內存了。

當然五分鐘是個典型值,或者表示一個數(shù)量級,具體的值要看硬件條件。Jim Gray給出的公式是:

RI = 每M數(shù)據(jù)頁數(shù) * 一塊磁盤的價格 / 磁盤每秒能進行的隨機IO次數(shù) / 每M內存的價格

其中RI即為要放到內存的頁面訪問時間周期閾值。

這個一公式可以這么理解。假設你拿到一個頁面,它的訪問周期是I。你要決定是買內存來存儲這個頁面還是買磁盤來存儲它。假設買內存來存儲,開銷很容易算出來是"每M內存價格/每M數(shù)據(jù)頁數(shù)"。如果買磁盤來存,則開銷是"一塊磁盤的價格 / 磁盤每秒能進行的隨機IO次數(shù) / I",意思是說,我買個磁盤花的錢是“一塊磁盤的價格”這么多,再我這個頁一秒只會訪問"1/I"次,因此我只占用了磁盤帶寬的"1/I/磁盤每秒能進行的隨機IO次數(shù)",因此為這個頁花的開銷就是“一塊磁盤的價格 / 磁盤每秒能進行的隨機IO次數(shù) / I"。

這樣,導致內存開銷"每M內存價格/每M數(shù)據(jù)頁數(shù)"與磁盤開銷"一塊磁盤的價格 / 磁盤每秒能進行的隨機IO次數(shù) / I"相等的I值即為訪問時間周期閾值,計算出來就是公式中的RI。

在數(shù)據(jù)庫IO瓶頸時,針對當前常用硬件來計算一下。設頁面大小為16K(InnoDB默認頁面大?。?,也就是每M數(shù)據(jù)頁數(shù)64,一塊SAS盤算3000塊,每秒能進行200次隨機IO,4G的內存算3000塊一條,也就是每M內存0.75元。這樣算出來RI是1280秒,也就是20分鐘左右。

可惜的是MySQL并不提供頁面的訪問頻率統(tǒng)計功能。可以用一個方法來代替,就是把數(shù)據(jù)庫關掉,起來后看20分鐘內數(shù)據(jù)庫的緩存有沒有滿,若沒有滿,表示內存太大,否則表示內存太小。只是在熱門時間段肯定是不會去做這個實驗的,非熱門時間段倒是可以把數(shù)據(jù)庫重起下,但這時負載輕又不準了。即使是哪天MySQL crash了,在熱門時間段crash后要做很多redo,又不準了。

實際上這一功能是可以實現(xiàn)的,統(tǒng)計有多少個20分鐘訪問一次的頁面可以近似的轉化為統(tǒng)計20分鐘內有多少個不同的頁面被訪問。假設系統(tǒng)中內存大小與理想值相差不太大,則只需要多用不到1/1000的內存就可以統(tǒng)計出來,當然每次頁面訪問時要多搜索一個哈希表。嗯,在NTSE里準備實現(xiàn)吧,哈哈。

當然這一計算已經忽略了很多實際因素,比如如果你機器上的RAID卡已經滿了不能加硬盤,那就只好加內存了,如果內存槽插滿了,那就只好加硬盤了。如果硬盤和內存都加不了,那就加機器吧。另外上述計算假設頁面訪問是完全隨機的,如果是順序訪問,那就大不相同了,這時的RI會小很多,因為這時磁盤每秒能讀入的頁面數(shù)增加了。

 

【編輯推薦】

  1. MySQL數(shù)據(jù)庫性能優(yōu)化的關鍵參數(shù)
  2. 磁盤排序對Oracle數(shù)據(jù)庫性能的影響
  3. 優(yōu)化數(shù)據(jù)庫大幅度提高Oracle的性能
  4. 數(shù)據(jù)庫機時代將到來 DBA面臨新挑戰(zhàn)
  5. 高手詳解SQL性能優(yōu)化十條經驗
責任編輯:佚名 來源: Web思想
相關推薦

2013-07-02 09:34:58

數(shù)據(jù)庫HadoopNoSQL

2024-05-08 08:14:18

數(shù)據(jù)庫IO備份

2011-04-14 09:38:55

內存數(shù)據(jù)庫

2015-10-28 14:45:35

ORACLE AIO異步IO

2015-10-28 17:39:04

ORACLE AIO異步IO

2021-07-01 10:45:08

硬盤數(shù)據(jù)庫性能

2023-12-18 14:55:00

Oracle數(shù)據(jù)庫監(jiān)控

2021-08-20 10:41:47

開發(fā)工具代碼

2011-04-14 09:27:37

內存數(shù)據(jù)庫

2019-08-15 07:00:54

SQLite數(shù)據(jù)庫內存數(shù)據(jù)庫

2022-12-07 18:45:22

內存數(shù)據(jù)庫Redis

2010-11-04 09:07:25

2009-12-31 09:23:59

2009-06-30 15:22:00

Java還是.NET

2011-08-03 14:02:02

數(shù)據(jù)庫連接ACCESS

2018-07-13 15:56:39

緩存數(shù)據(jù)庫數(shù)據(jù)

2011-03-17 16:51:51

SQLServer數(shù)據(jù)加速劑

2023-01-24 15:58:39

數(shù)據(jù)庫架構編程語言

2020-02-24 21:50:24

瓶頸數(shù)據(jù)庫

2021-01-13 11:42:52

分庫分表數(shù)據(jù)庫瓶頸
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久欧美高清二区三区 | 国产成人免费在线 | 久久久久国产 | 国产日产精品一区二区三区四区 | 成人做爰999| 免费看a| 狠狠躁夜夜躁人人爽天天高潮 | 91看片| 在线欧美小视频 | 一区二区三区国产 | 在线看91| 欧美日韩国产中文字幕 | 日韩一及片 | 精品欧美一区二区精品久久久 | 成人黄色在线 | 日韩精品在线看 | 午夜寂寞影院在线观看 | 免费成年网站 | 操久久| 蜜桃视频在线观看免费视频网站www | 国产综合网站 | 狠狠色狠狠色综合日日92 | 国产99在线 | 欧美 | 99色在线视频 | 日日干干夜夜 | 国产精久久久久久久妇剪断 | 亚洲天堂一区 | 日韩免费网站 | 国产在线视频一区二区 | 精品国产一区二区三区在线观看 | 午夜电影网| 91.com视频| 国产91丝袜在线18 | 中文字幕久久精品 | 精品国产99 | 九九久久久 | 欧美一页| 亚洲免费三级 | 99久久久国产精品 | 久久精品一级 | 视频在线一区二区 |