淺談存儲負載應(yīng)用類型和特點
部署存儲系統(tǒng)時,經(jīng)常需要綜合評價工作負載,從而進行存儲系統(tǒng)的調(diào)優(yōu)。本文簡單總結(jié)了幾個典型的工作負載及其特點,方便在系統(tǒng)調(diào)優(yōu)時做一些參考。
通常情況下,我們大多數(shù)人都會考慮如下幾個方面:
- IOPS:I/O速率
- Latency:時延
- I/O Size:I/O塊大小
- R/W Ratio:讀寫比
- R/S Ratio: 隨機順序比
但是我們經(jīng)常忽略以下幾個方面:
- Cache Hit Ratio:緩存***率,基本上指的是讀緩存的***率,因為寫操作基本上都會先寫到寫緩存上。這個參數(shù)將會影響系統(tǒng)的響應(yīng)時間。
- Write Efficiency:寫效率,指的是一塊數(shù)據(jù)在落盤之前,被重復(fù)寫的次數(shù)。在一些數(shù)據(jù)庫應(yīng)用的負載中,有時候數(shù)據(jù)剛剛被寫入,繼而又會被讀出來,然后再修改,如此反復(fù)多次。
典型OLTP負載型應(yīng)用
Online Transaction Processing聯(lián)機事務(wù)處理過程, 是前臺接收的用戶數(shù)據(jù)可以立即傳送到計算中心進行處理,并在很短的時間內(nèi)給出處理結(jié)果。 例如銀行的存取款業(yè)務(wù),股票交易業(yè)務(wù)等。 其負載特點是IO size在16k以下,讀比例在70%左右,緩存***率在20%以下,隨機比例大于50%。
90% read, 8 - 16 - 32 - 64 KB blocks, 30% sequential, 30 - 40% cache hit
80% read, 16 - 32 - 64 KB blocks, 40 - 50% sequential, 50 - 60% cache hit
Microsoft Exchange Server負載型應(yīng)用
Exchange的負載類型與OLTP很相似,***的差異在IO size上。其IO size***可到128k,寫比例可達60%。因此在考慮此應(yīng)用時,要在OLTP的基礎(chǔ)上適當加大IO size和寫比例。更加詳細的介紹可參考微軟官方文檔:http://technet.microsoft.com/en-us/exchange/dd203064
順序讀寫負載型應(yīng)用
此負載類型最典型的就是在磁帶系統(tǒng)中用到,當然機械硬盤和閃存系統(tǒng)中也會碰到。由于讀寫是順序的,因此在數(shù)據(jù)的預(yù)處理和緩存上可以達到很好的優(yōu)化,而且IO size也會比較大,在256k甚至更大。順序讀寫的應(yīng)用,其實對響應(yīng)時間要求不高,IOPS也要求不大,反而是對系統(tǒng)帶寬有較大的要求。因此測試此類應(yīng)用時,應(yīng)該著重測試系統(tǒng)的帶寬。以下幾個場景中比較符合順序讀寫的負載類型:
- 備份/恢復(fù)
- 數(shù)據(jù)庫日志
- 批處理應(yīng)用
- 文件服務(wù)
- 網(wǎng)頁服務(wù)
- 流媒體服務(wù)
- 圖像應(yīng)用
批處理型負載應(yīng)用
此類型屬于混合型讀寫,需要同時保證隨機,間斷順序,純順序,和分類型讀寫數(shù)據(jù)類型。數(shù)據(jù)塊大小偏大,大約在128k-256k。讀寫比例將近1:1,相同的卷出現(xiàn)同時讀寫的比例較高,需要較大的IOPS,和保證一定的帶寬。
緩存友好型負載應(yīng)用
可以用緩存***率來衡量一個應(yīng)用是否屬于緩存友好型負載,但這并不是很容易,因為一個應(yīng)用可能在運行中不斷的改變其特點。例如數(shù)據(jù)庫中,當用戶使用數(shù)據(jù)時,就是緩存友好型,因為數(shù)據(jù)庫會將用戶的加載到緩存中;但當跑批處理或者生成報告時,數(shù)據(jù)的訪問變得非常隨機,此時就屬于緩存不友好型。
簡單的識別方法是分析數(shù)據(jù)的訪問的隨機性,一般而言,隨機訪問的緩存***率比較低,可以近似為緩存不友好型。順序性的負載基本上是緩存友好型。還有一點是寫操作型的負載基本上也是緩存友好型,因為每個寫操作都會先到緩存,經(jīng)過一定處理后,最終才集中落盤。
數(shù)據(jù)庫查詢型負載應(yīng)用
這種負載也是一種典型的負載,其特點有:
- 較高的讀比例
- 較大的隨機性
- 較小的IO size
但現(xiàn)在大部分的數(shù)據(jù)庫應(yīng)用都會有讀緩存的優(yōu)化算法,可以將隨機的讀寫操作***化的接近順序讀寫,因此在測試的時候,也要加入順序讀寫操作來模擬真實負載。
數(shù)據(jù)庫日志型負載應(yīng)用
日志系統(tǒng)也是數(shù)據(jù)庫必備的,主要是保證數(shù)據(jù)一致性和用于數(shù)據(jù)恢復(fù)。此類負載主要是寫操作,順序性負載,塊大小在64k左右,對IOPS和帶寬有一定的要求,但不大。因此這類應(yīng)用負載是比較容易模擬和調(diào)優(yōu)的。
數(shù)據(jù)庫交互環(huán)境型負載應(yīng)用
這種負載類型主要出現(xiàn)在多個數(shù)據(jù)庫進行交互時,其主要特點有:
- 較低的緩存***率
- 較低的讀寫比例
- 較高的隨機性讀
表1總結(jié)了一些典型應(yīng)用:
表1 部分數(shù)據(jù)取自IBM Storage Redbook,? Copyright International Business Machines Corporation 2016.