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

內存還是硬盤? 數據庫IO瓶頸時的抉擇

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

很多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性能優化十條經驗
責任編輯:佚名 來源: Web思想
相關推薦

2013-07-02 09:34:58

數據庫HadoopNoSQL

2024-05-08 08:14:18

數據庫IO備份

2011-04-14 09:38:55

內存數據庫

2009-12-31 09:23:59

2015-10-28 14:45:35

ORACLE AIO異步IO

2015-10-28 17:39:04

ORACLE AIO異步IO

2023-12-18 14:55:00

Oracle數據庫監控

2009-06-30 15:22:00

Java還是.NET

2021-07-01 10:45:08

硬盤數據庫性能

2021-08-20 10:41:47

開發工具代碼

2019-08-15 07:00:54

SQLite數據庫內存數據庫

2011-04-14 09:27:37

內存數據庫

2022-12-07 18:45:22

內存數據庫Redis

2010-11-04 09:07:25

2011-08-03 14:02:02

數據庫連接ACCESS

2023-01-24 15:58:39

數據庫架構編程語言

2018-07-13 15:56:39

緩存數據庫數據

2020-10-05 21:49:35

蜜罐惡意軟件黑客

2011-03-17 16:51:51

SQLServer數據加速劑

2013-05-07 09:14:35

OpenStack
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本中出视频 | 久久久久久亚洲 | 久草.com| 黄色精品| 在线观看免费观看在线91 | 精品一区二区三区四区外站 | 成人精品久久久 | 午夜免费网站 | 在线视频中文字幕 | 欧美日韩黄 | 日日操视频| 国产一区二区三区在线 | www.国产精品 | 久久免费精品视频 | 国产精品99久久久久久久vr | 深夜福利影院 | 欧美日韩黄色一级片 | 欧洲精品久久久久毛片完整版 | 91极品视频| 国产精品亚洲一区二区三区在线 | 动漫www.被爆羞羞av44 | 久久狠狠 | 亚洲毛片在线观看 | 成人一区二区三区在线观看 | 四虎影视1304t | 久久久人成影片免费观看 | 在线观看国产视频 | 日韩毛片中文字幕 | 91资源在线 | 免费一看一级毛片 | 亚洲综合日韩精品欧美综合区 | 成人av免费播放 | 久久在线看 | 亚洲成人av | 亚洲精品久久久一区二区三区 | 亚洲黄色一级 | 美女天天操 | 亚洲免费网 | 久久中文免费视频 | 国产视频中文字幕 | 日韩一区二区免费视频 |