劉波:如何再造閃存盤的讀寫速度

劉波 發表于:14年08月29日 15:17 [來稿] 存儲在線

  • 分享:
[導讀]從應用層級來說,提前更好的做一些預告。在數據庫層面,在操作系統層面,在存儲系統層面,甚至在存儲元器件層面是不是也可以做。在應用產業鏈和應用鏈各個環節都可以用的,這是我對提高速率和命中率的一個想法,第一提高速率手段就是并行手段,第二是緩存,第三是設計數據預告,實際上強調一個層面,評價數據指標,評價閃存,提高性能,還有其他的延時等等,也會對速率產生比較大的提升。

劉波首先談到評價閃存盤的一些指標有很多,速率肯定是其中一項。主要對速率來說有兩項,一個是連續讀寫傳輸率,另外是隨機讀寫傳輸率。

回顧一下今年的指標的情況和大概的變化情況,他說:“今年跟去年比較起來,去年我們看到這些盤,直接指標是4個直接指標,還有一些評測指標。今年主流的速率基本上連續讀寫速率都在2G到3.5這么一個范圍。去年我記得在12月份的峰會上,因為在年底,去年都是在1-2的水平,大勢來說?;旧辖衲晔?.1到2.5GB的水平。去年年底的時候基本都是在0.5-1.1的水平。隨機讀I/O也是這個情況,13年的時候基本上是12萬到38萬,今年主流最高到了80萬。寫的指標同樣提高的比較多,最高到37萬的水平。我今天看到還有更高一點的,展臺上看到一個介紹??傮w來說今年半年了,跟去年比較起來有點像奧運會的精神,更高更快更強,速率更高,讀寫能力更強。另外還有兩個指標,是我做一個比較來說,讀寫比,一個是連續讀和連續寫這么一個指標。另外一個就是隨機讀和隨機寫的比例,這兩個比例是連續讀和連續寫的差異,這是測試指標。這等于是今年一些產品比去年的讀寫比更均衡一些,從1.2:1到2.4:1,去年是1.1:4.0:1,隨機比也有大的提高,大概就是這么一個情況。這是今年一個印象。”

還有一個情況,在使用和測試的過程中,現在產品都比較多,指標零零總總都是在提升,提升到什么程度,我們怎么樣評價這么一個產品,這也是我們測試框架的一個建設。如果把評測這個速度指標和理論指標比較起來來看的話,總是感覺有一些差異。當然今年的指標肯定比去年指標要高很多了,從不管是連續讀還是連續寫來說,他所占用的理論帶寬的比例比去年要高。還有一個比較大的差距,最高來說讀的今年占到44%,這是比較高的一個水平。從理論上來說,PCle2.x×8,這個帶寬是一個理論值,還有一些編碼因素等等。在現有的帶寬情況下,我們如何去提高速率,我們有什么途徑來做這個事,還是從理論上來想。

找一些原因,還是從公式來考慮,總線帶寬=頻率×(總線位寬/8)。前面是讀寫的次數,位寬是讀寫一次,我們能夠拿到的數據量是多少。直觀來說,我讀寫的次數越多,我一次能夠拿到的數據越多。在這個理論的指導下,我們看怎么樣提高這個速度,有數據總線、地址總線、控制總線、擴展總線、局部總線。我們怎么去提高這個帶寬呢?第一方面是不是可以從頻率角度考慮這個問題,幾個手段,主要是并行,從頻率角度來提高存儲的速率,還有另外一次拿到速率更高。從什么環節呢?我們從用戶角度來說,系統角度來說,從存儲部件來說和存儲板卡和存儲元件四個層面,并行的思路都是可以取的。從用戶層面來說,一塊卡我們拿不到,我們想拿到更高的,我們可以多插幾塊,用并行的思路,單塊卡的速率沒有提高,但是整體的速率提高了。從這個角度來說,我們可以采取什么手段呢?如果這個卡是一個機內的卡,他的數量有一定的限制。我想再提高速率,在一個機箱的機箱內達不到這個要求,我們可以多插幾塊卡的形式來提升整體應用。作為板卡的制造商來說,從芯片來說,他的每一個芯片的讀取范圍和帶寬是有限的。我們通過增加芯片一級增加他的并行度,我們可以提高他的每一塊板卡的并行度。我們提高每一塊板卡的并行度,我們可以提高相對來說一塊卡對有效帶寬的利用。在這個層級來說可能起的效果比在應用層級提高的效率可能要略高一些。今年這些產品,這些指標比去年比較大的變化,這是一塊。

還有從元件來說也是這樣的一個情況,元件這是一個關于修建層面組織業務規范,關于芯片存儲速度的要求,目前有四個版本,從指標情況來看,在運行思路上芯片的制造廠商也是在采取同樣的策略。在1.0的時候,這個指標說100也有,60也有。2.0的時候,速率提高到200。去年3.0推出來的時候,速率到了400,今年也是可以達到800。今年的800速率上和去年3.0,差別不大。3.0的時候也提出來800的一個速率,4.0和3.0之間主要的區別是在能耗上他有比較大的降低。去年3.0他的電壓是一個水平,今年4.0電壓規范比較低。這個表上一個是速率問題提高,第二是看上面的四項,也是比較熟悉,有SDR、DDR2,DDR3。如果仔細看,規范里面這些描述來看,他們應用的都是一個并行的思路,在芯片的讀取層面他們作為一個并層。因為對芯片來說,一個是前期的準備階段,第二階段是數據讀取階段。在前期數值沒有大的變化的時候,我一次取到的數量是不是意味著我速率就可以得到提高,我們通過閱讀和組織規范的文本的時候有這樣一條思路。實際上規范當中,他提到一個概念,是不是意味著速率一次存取數量上是不是有一個二倍和三倍和多倍??唇衲甑闹笜?,從產品的指標提升了很多。我們照這個推斷,今年產品是去年的3.0。這四個階段來說,用戶階段、部件階段、板卡階段、芯片階段,不同階段應用并行思路本身的效率都是有所提升。還有一個特點越是到地層芯片組件的時候,如果我們沒有用3.0來設計板卡,前期通過增加板卡數量是不是能夠達到用戶來提高,我們需要提高一個限度。

隨機讀寫也是有類似的情況,總的來說隨機讀寫的效率從指標來看,咱們談的都是LPS,LPS和帶寬是有一定的關系。實際上LPS突出是我讀取頻率是多少,讀取次數是多少,換一個角度來考慮,如果從我們讀取的數量,拿到的有效數量是多少,我們把他折算,今年LPS的讀取效率比去年高。他應用的手段來說,目前來看大家提高比較多的主要就系一個增加態勢和使用分層存儲的概念,冷、溫、熱。主要用這種手段和目標來提高他的命中率,這是一個。提高目標,我們所達到的效果是提高傳輸率,另外就是減小寫放大。我們從測試的情況來看,各個廠商在提高Cache的名中率方面和效率做了不少工作。去年基本上LPS能夠到38萬,今年到了80萬。隨機寫的速率也是有相當大的提升,確實有這樣的效果,增加Cache和增加算法來說,給性能的提高效率比較顯著。

Cache多也是好事,Cache沒有什么問題,第一個我們增加Cache的代價和命中率提升的幅度是不太對稱。一開始增加Cache,從2G增加到4G效果是很明顯的。但是我增加到一定程度以后,我命中率提高,實際上增加頻率是很小的。打個比方,比如我們從512內存升級到1G內存,大家的感受是非常明顯,覺得很快。比如我內存從1G增加到2G的時候,大家也覺得快了,增加的這種感受就不是特別的明顯。再進一步提升,我們把2G內存增加到4G,實際上在用戶來說基本就幾乎感覺不到有什么變化。為什么?隨著Cache的增加,命中率提高,到了一定程度之后這個比例幾乎是一個非常平等的一個條件,命中率提高是有瓶頸的。第三在命中率不足時,實際上我們的有效傳輸率是急劇下降。我們是有感受的,這是我們在測試的時候的一個截圖,這是一個SELECT一個數據,從表中讀出來存到數據庫當中。我們測試和使用的時候,C盤我在執行的時候向D盤平均I/O大小是有1KB,上面C盤也是這樣,他延遲不說了,延遲比較小。實際上他的每一個I/O的尺寸,C盤是4.2K,D盤更小,1K。這個數據,執行這條語句,他取得數據量實際多大?我們算了一下,我能夠取得數據量大約是1.5兆B是這樣的情況。如果都是以4K甚至1K的讀寫的話,造成的延遲是顯而易見。在命中率沒有提高的情況下,肯定是執行的時候他還是有很多命中率,有很多沒有被命中或者是命中率提高不上去的時候。為什么有這樣的情況,怎么解決這個問題,從什么樣的思路去解決呢?產生這個問題。

怎么解決呢?有這樣一個思路,解決的方案是不是可以從這個邀請函尋找一些答案。主要內容就是尊敬的劉波先生:于某年某月某日在亮馬河飯店舉行以什么為主題的閃存峰會,我們邀請您作為演講嘉賓來參加本次峰會下午的閃存技術分論壇演講,演講時間是2014年7月31日具體時間,這個信的發出時間是2014年7月15日。我們可以通過這個邀請函我們設想一下,這里面提到幾個主要因素,第一他提到了邀請是誰,他邀請了我,這里說明了對象,他要邀請誰。第二他要在什么時間要把我邀請到什么地方來,這是第二個要素。第三個這個信發出時間,在2014年7月15日,今天7月31日有兩周,時間比較充裕。設想一下,假如說這個邀請函的發出時間不是在7月15日,如果是在7月25日會有什么情況。我們想對于這個會議來說,我們想應該是沒有太大問題,比如我在7月15日接受,我是選擇坐車來還是打車來還是開車來,可以選擇通行方式,意味著速度。假設這個信邀請發生在7月31日的13:00,發給我的邀請,可能我的選擇就非常少了。我只能是打車、乘專車過來才能滿足這個要求。為什么這樣說?如果這個時間,你要給時間充足的話,我們是不是可以預先把這個數據準備出來,這個是通過測試和使用產生這樣一個想法。根據這個思路,我們分析一下這個語句,隨機傳輸率=I/OPS×I/O尺寸。傳輸量=隨機傳輸率×持續時間。這兩個結合起來,我們來看語句的情況就是這樣。

語句底下看,SQL Server在編譯這條語句的時候占用多長時間,占用141毫秒。在這141毫秒內,我們是不是有可能把這些數據預先把他準備出來。因為我們現在應用了閃存,就為我們實現這種想法就會提供一種可能。如果用以前相當141毫秒,這個可以是忽略。但是對于閃存盤來說,這個141毫秒有可能會帶來一個非常顯著的變化,是不是就能夠提高我們預先給數據準確的時間,提取的有效程度。實際尺寸是1.5兆,141毫秒,肯定是能夠傳輸過來。為什么沒有傳輸過來?因為我們在編譯這條語句的時候,沒有給閃存盤一個預告,我們沒有告訴他我們需要這個數據,我們需要這個數據的范圍。我選的這個相對來說數據是比較大的,實際上SQL Server編譯時間不可能都是141毫秒,也有3毫秒、4毫秒。甚至有的編譯時間,像有的編譯完了以后,我就不需要再編譯,我們這個時間,我們在各個層面是可以預告。我們沒有接到這個數據的預告,接到這個數據的預告時間都晚了。屬于1.4兆B的時間,這幾個KB來看,需要多長時間,實際上時間很小的。

從應用層級來說,是不是可以考慮在以下這五個層面來說,可以在應用類考慮,提前更好的做一些預告。在數據庫層面,在操作系統層面,在存儲系統層面,甚至在存儲元器件層面是不是也可以做。在存儲元器件也有,如果從這個角度來說,我們在應用產業鏈和應用鏈各個環節都可以用的。這是我對提高速率和命中率的一個想法。

第一提高速率手段就是并行手段,第二是緩存,第三是設計數據預告??梢詰眠@些層級來說就是以下幾個層面來說。實際上強調一個層面,評價數據指標,評價閃存,提高性能來說,還有其他的延時等等,其他指標也會對速率產生比較大的提升。

[責任編輯:彭彥明]
阿明
今天開始,阿明會根據每日IT串串香發布的時間,分為早新聞、晚新聞、午新聞,試試看。但一天只能發布一次,做微信號的親應該都知道騰訊的游戲規則。讓親知道我發布的時間明白一個所謂的區間,我也不知道有什么意義,就是讓親知道下,阿明。
官方微信
weixin
精彩專題更多
華為OceanStor V3系列存儲系統是面向企業級應用的新一代統一存儲產品。在功能、性能、效率、可靠性和易用性上都達到業界領先水平,很好的滿足了大型數據庫OLTP/OLAP、文件共享、云計算等各種應用下的數據存儲需求。
12月15日,中國閃存聯盟成立,同時IBM Flash System卓越中心正式啟動
DOIT、DOSTOR、易會移動客戶端播報中國存儲峰會盛況。
 

公司簡介 | 媒體優勢 | 廣告服務 | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯系我們 | 會員注冊 | 訂閱中心

Copyright © 2013 DOIT Media, All rights Reserved.

精品国产午夜肉伦伦影院,双性老师灌满浓jing上课h,天天做天天爱夜夜爽,攵女乱h边做边走