磁碟I/O的效能評估方法

來源:互聯網
上載者:User

通常,我們很容易觀察到資料庫伺服器的記憶體和CPU壓力。但是對I/O壓力沒有直觀的判斷方法。磁碟有兩個重要的參數: Seek time、 Rotational latency。正常的I/O計數為:①1000/(Seek time+Rotational latency)*0.75,在此範圍內屬正常。當達到85%的I/O計數以上時則基本認為已經存在I/O瓶勁。理論情況下,磁碟的隨機讀計數為125、順序讀計數為225。對於資料檔案而言是隨機讀寫,記錄檔是順序讀寫。因此,資料檔案建議存放於RAID5上,而記錄檔存放於RAID10或RAID1中。

下面假設在有4塊硬碟的RAID5中觀察到的Physical Disk效能物件的部分值:

Avg. Disk Queue Length      12

Avg. Disk Sec/Read         .035

Avg. Disk Sec/Write         .045

Disk Reads/sec          320

Disk Writes/sec          100

Avg. Disk Queue Length,12/4=3,每塊磁碟的平均隊列建議不超過2。

Avg. Disk Sec/Read一般不要超過11~15ms。

Avg. Disk Sec/Write一般建議小於12ms。

從上面的結果,我們看到磁碟本身的I/O能力是滿足我們的要求的,原因是因為有大量的請求才導致隊列等待,這很可能是因為你的SQL語句導致大量的表掃描所致。在進行最佳化後,如果還是不能達到要求,下面的公式可以協助你計算使用幾塊硬碟可以滿足這樣的並發要求:

Raid 0 -- I/Os per disk = (reads + writes) / number of disks
Raid 1 -- I/Os per disk = [reads + (2 * writes)] / 2
Raid 5 -- I/Os per disk = [reads + (4 * writes)] / number of disks
Raid 10 -- I/Os per disk = [reads + (2 * writes)] / number of disks

我們得到的結果是:(320+400)/4=180,這時你可以根據公式①來得到磁碟的正常I/O值。假設現在正常I/O計數為125,為了達到這個結果:720/125=5.76。就是說要用6塊磁碟才能達到這樣的要求。

但是上面的Disk Reads/sec和Disk Writes/sec是個很難正確估算的值。因此只能在系統比較忙時,大概估算一個平均值,作為計算公式的依據。另一個是你很難從客戶那裡得到Seek time、 Rotational latency參數的值,這也只能用理論值125進行計算。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.