鐵道出版社的信息中心主任劉波

 

劉波首先談到評(píng)價(jià)閃存盤的一些指標(biāo)有很多,速率肯定是其中一項(xiàng)。主要對(duì)速率來(lái)說(shuō)有兩項(xiàng),一個(gè)是連續(xù)讀寫傳輸率,另外是隨機(jī)讀寫傳輸率。

劉波首先帶領(lǐng)大家回顧了一下今年的指標(biāo)的情況和大概的變化情況,他說(shuō):“今年跟去年比較起來(lái),去年我們看到這些盤,直接指標(biāo)是4個(gè)直接指標(biāo),還有一些評(píng)測(cè)指標(biāo)。今年主流的速率基本上連續(xù)讀寫速率都在2G到3.5這么一個(gè)范圍。去年我記得在12月份的峰會(huì)上,因?yàn)樵谀甑祝ツ甓际窃?-2的水平,大勢(shì)來(lái)說(shuō)?;旧辖衲晔?.1到2.5GB的水平。去年年底的時(shí)候基本都是在0.5-1.1的水平。隨機(jī)讀I/O也是這個(gè)情況,13年的時(shí)候基本上是12萬(wàn)到38萬(wàn),今年主流最高到了80萬(wàn)。寫的指標(biāo)同樣提高的比較多,最高到37萬(wàn)的水平。我今天看到還有更高一點(diǎn)的,展臺(tái)上看到一個(gè)介紹??傮w來(lái)說(shuō)今年半年了,跟去年比較起來(lái)有點(diǎn)像奧運(yùn)會(huì)的精神,更高更快更強(qiáng),速率更高,讀寫能力更強(qiáng)。另外還有兩個(gè)指標(biāo),是我做一個(gè)比較來(lái)說(shuō),讀寫比,一個(gè)是連續(xù)讀和連續(xù)寫這么一個(gè)指標(biāo)。另外一個(gè)就是隨機(jī)讀和隨機(jī)寫的比例,這兩個(gè)比例是連續(xù)讀和連續(xù)寫的差異,這是測(cè)試指標(biāo)。這等于是今年一些產(chǎn)品比去年的讀寫比更均衡一些,從1.2:1到2.4:1,去年是1.1:4.0:1,隨機(jī)比也有大的提高,大概就是這么一個(gè)情況。這是今年一個(gè)印象。”

還有一個(gè)情況,在使用和測(cè)試的過(guò)程中,現(xiàn)在產(chǎn)品都比較多,指標(biāo)零零總總都是在提升,提升到什么程度,我們?cè)趺礃釉u(píng)價(jià)這么一個(gè)產(chǎn)品,這也是我們測(cè)試框架的一個(gè)建設(shè)。如果把評(píng)測(cè)這個(gè)速度指標(biāo)和理論指標(biāo)比較起來(lái)來(lái)看的話,總是感覺(jué)有一些差異。當(dāng)然今年的指標(biāo)肯定比去年指標(biāo)要高很多了,從不管是連續(xù)讀還是連續(xù)寫來(lái)說(shuō),他所占用的理論帶寬的比例比去年要高。還有一個(gè)比較大的差距,最高來(lái)說(shuō)讀的今年占到44%,這是比較高的一個(gè)水平。從理論上來(lái)說(shuō),PCle2.x×8,這個(gè)帶寬是一個(gè)理論值,還有一些編碼因素等等。在現(xiàn)有的帶寬情況下,我們?nèi)绾稳ヌ岣咚俾?,我們有什么途徑?lái)做這個(gè)事,還是從理論上來(lái)想。

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

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

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

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

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

語(yǔ)句底下看,SQL Server在編譯這條語(yǔ)句的時(shí)候占用多長(zhǎng)時(shí)間,占用141毫秒。在這141毫秒內(nèi),我們是不是有可能把這些數(shù)據(jù)預(yù)先把他準(zhǔn)備出來(lái)。因?yàn)槲覀儸F(xiàn)在應(yīng)用了閃存,就為我們實(shí)現(xiàn)這種想法就會(huì)提供一種可能。如果用以前相當(dāng)141毫秒,這個(gè)可以是忽略。但是對(duì)于閃存盤來(lái)說(shuō),這個(gè)141毫秒有可能會(huì)帶來(lái)一個(gè)非常顯著的變化,是不是就能夠提高我們預(yù)先給數(shù)據(jù)準(zhǔn)確的時(shí)間,提取的有效程度。實(shí)際尺寸是1.5兆,141毫秒,肯定是能夠傳輸過(guò)來(lái)。為什么沒(méi)有傳輸過(guò)來(lái)?因?yàn)槲覀冊(cè)诰幾g這條語(yǔ)句的時(shí)候,沒(méi)有給閃存盤一個(gè)預(yù)告,我們沒(méi)有告訴他我們需要這個(gè)數(shù)據(jù),我們需要這個(gè)數(shù)據(jù)的范圍。我選的這個(gè)相對(duì)來(lái)說(shuō)數(shù)據(jù)是比較大的,實(shí)際上SQL Server編譯時(shí)間不可能都是141毫秒,也有3毫秒、4毫秒。甚至有的編譯時(shí)間,像有的編譯完了以后,我就不需要再編譯,我們這個(gè)時(shí)間,我們?cè)诟鱾€(gè)層面是可以預(yù)告。我們沒(méi)有接到這個(gè)數(shù)據(jù)的預(yù)告,接到這個(gè)數(shù)據(jù)的預(yù)告時(shí)間都晚了。屬于1.4兆B的時(shí)間,這幾個(gè)KB來(lái)看,需要多長(zhǎng)時(shí)間,實(shí)際上時(shí)間很小的。

從應(yīng)用層級(jí)來(lái)說(shuō),是不是可以考慮在以下這五個(gè)層面來(lái)說(shuō),可以在應(yīng)用類考慮,提前更好的做一些預(yù)告。在數(shù)據(jù)庫(kù)層面,在操作系統(tǒng)層面,在存儲(chǔ)系統(tǒng)層面,甚至在存儲(chǔ)元器件層面是不是也可以做。在存儲(chǔ)元器件也有,如果從這個(gè)角度來(lái)說(shuō),我們?cè)趹?yīng)用產(chǎn)業(yè)鏈和應(yīng)用鏈各個(gè)環(huán)節(jié)都可以用的。這是我對(duì)提高速率和命中率的一個(gè)想法。

第一提高速率手段就是并行手段,第二是緩存,第三是設(shè)計(jì)數(shù)據(jù)預(yù)告??梢詰?yīng)用這些層級(jí)來(lái)說(shuō)就是以下幾個(gè)層面來(lái)說(shuō)。實(shí)際上強(qiáng)調(diào)一個(gè)層面,評(píng)價(jià)數(shù)據(jù)指標(biāo),評(píng)價(jià)閃存,提高性能來(lái)說(shuō),還有其他的延時(shí)等等,其他指標(biāo)也會(huì)對(duì)速率產(chǎn)生比較大的提升。

分享到

shaohaihong

相關(guān)推薦