国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
!!!!!談?wù)動(dòng)脖P的存取速度等 如何從程序效率的角度理解

談?wù)動(dòng)脖P的存取速度等

wdqwdq 發(fā)表于: 2006-12-18 17:03 來(lái)源: DOIT博客

在過(guò)去的30年中,硬盤一直是存儲(chǔ)的主力,在未來(lái)的15年甚至更長(zhǎng)時(shí)間內(nèi),可以預(yù)計(jì)硬盤仍然是大容量存儲(chǔ)的主力。只有理解了硬盤的性能,才能明白存儲(chǔ)能提供什么樣的性能。

要從應(yīng)用程序角度理解硬盤的存取速度,就必須理解硬盤是如何工作的,硬盤的數(shù)據(jù)存儲(chǔ)在一個(gè)圓盤的表面,圓盤不停的旋轉(zhuǎn),磁頭在上面讀取,這就象唱片一樣,不同的是唱片是螺旋線,而磁盤保存數(shù)據(jù)的磁道是同心圓。要讀取硬盤不同位置的數(shù)據(jù),磁頭就必須來(lái)回移動(dòng),這叫尋道,和磁頭在一個(gè)磁道上順序讀取數(shù)據(jù)比,磁頭尋道的速度是很慢的。要明白這點(diǎn)非常重要,假如你要自編應(yīng)用程序讀寫海量數(shù)據(jù),這是非常關(guān)鍵的。

我來(lái)舉例說(shuō)明下,對(duì)一個(gè)典型的7200RPM硬盤,平均尋道時(shí)間可能是8.9ms,也就是說(shuō)磁頭平均要花8.9ms的時(shí)間才能移動(dòng)到磁盤表面的任意磁道,但是且慢,磁頭移動(dòng)到了正確的磁道并不等于你的數(shù)據(jù)正好到了磁頭下面可以讀,磁頭還需等待平均是磁盤旋轉(zhuǎn)一圈周期的一半時(shí)間才能讀到想要的數(shù)據(jù),對(duì)7200RPM來(lái)說(shuō),每秒120圈,這就是4.2ms,這就是說(shuō)磁頭平均移動(dòng)讀一次至少要8.9+4.2=14.1ms,1秒鐘只能讀70次,當(dāng)然假如你不是對(duì)全盤任意位置讀取數(shù)據(jù),而只是限定在開(kāi)頭的比如1/10容量的分區(qū)隨機(jī)存取,那樣平均尋道時(shí)間會(huì)短不少,但4.2ms平均等待時(shí)間是不變的(如果用NCQ這方面會(huì)有所改善,這里不討論),所以1秒鐘隨機(jī)存取次數(shù)也不會(huì)超過(guò)150次(典型的10K硬盤工作時(shí)次數(shù)也不超過(guò)250次/秒)。假如我們每次只讀4KB的數(shù)據(jù),那隨機(jī)訪問(wèn)你每秒鐘只能讀0.6MB/s的數(shù)據(jù),或者假如你的數(shù)據(jù)庫(kù)內(nèi)容沒(méi)有緩存入內(nèi)存,你每秒只能讀不到150條記錄,這和7200RPM硬盤典型的66~33MB/s持續(xù)傳輸速率比,落差無(wú)異是十分巨大的。

早期的硬盤每個(gè)磁道的容量都是一樣的,大概是為了解碼電路工作在固定頻率上吧,現(xiàn)在的磁盤采用可變的磁道容量,所以越靠外面的磁道容量越大,目前典型的7200RPM硬盤傳輸率在66到33MB/s之間變化,這個(gè)最大速率取決于磁道的線密度,磁道的最大半徑,轉(zhuǎn)速,而磁道的最小半徑?jīng)Q定了最低速率。10K的硬盤一般采用比3.5寸盤小一點(diǎn)的3.3寸盤,半徑小了些,同時(shí)由于最小半徑與最大半徑的比值比7200的盤大,面積進(jìn)一步縮小,所以同樣的線密度下容量會(huì)少不少,而傳輸速率增加則沒(méi)有40%這么高,典型比如最大80Mb/s。15K的盤速度更高,尺寸更小,一般是2.5寸的,所以同樣的線密度的情況下持續(xù)傳輸率并不會(huì)有什么明顯的增加,而容量又小了很多,當(dāng)然如果還是3.5寸的,那增加還是不少的。

高速盤的主要優(yōu)點(diǎn)是縮短了隨機(jī)存取的時(shí)間,這個(gè)是隨轉(zhuǎn)速和盤徑的減小直線增長(zhǎng)的,15K盤和7200比幾乎能增加一倍,缺點(diǎn)是昂貴和單盤存儲(chǔ)容量的下降。如果你期望增加持續(xù)傳輸率的話,磁盤陣列應(yīng)該是更好的解決方案。大部分應(yīng)用程序工作在隨機(jī)存取和持續(xù)傳輸之間,所能期望得到的速率就取決于讀取數(shù)據(jù)的方式。簡(jiǎn)單的說(shuō),假如一個(gè)盤比另外一個(gè)盤,隨機(jī)尋道時(shí)間和平均等待時(shí)間降低了30%,平均傳輸速率增加了30%,那不管什么應(yīng)用,磁盤速度都可以說(shuō)提高了30%,如果兩邊的性能增長(zhǎng)不是這么平衡,那改善的效果就取決于應(yīng)用讀數(shù)數(shù)據(jù)的方式更趨向于隨機(jī)還是順序存取了。

對(duì)于自用的PC,建議用戶劃分小的操作系統(tǒng)分區(qū)(8~12G),把需要快速存取的文件盡量放在硬盤靠前(靠外道)的位置,而把備份和不常訪問(wèn)的數(shù)據(jù)放在末尾的分區(qū),這個(gè)傳輸速率差異還是很大的。

接下來(lái)要說(shuō)緩存了,緩存分硬盤內(nèi)緩存和硬盤外緩存,盤外緩存又分存儲(chǔ)的緩存和主機(jī)的緩存。盤內(nèi)緩存有些盤外緩存不具備的優(yōu)點(diǎn),就是對(duì)磁道的數(shù)據(jù)預(yù)取,磁頭不光讀你指定位置的數(shù)據(jù),也會(huì)自動(dòng)讀之前和之后的數(shù)據(jù),假如OS沒(méi)有預(yù)取的功能,盤內(nèi)的預(yù)取就有明顯的優(yōu)點(diǎn),而且不傳輸不必要的數(shù)據(jù)因此不占用傳輸通道。基于這種考慮,我認(rèn)為磁盤的緩存起碼要足夠存儲(chǔ)幾個(gè)磁道的數(shù)據(jù),以一個(gè)7200的盤計(jì)算,最外面每秒66MB數(shù)據(jù),而每秒轉(zhuǎn)120轉(zhuǎn),因此一個(gè)磁道大概也就是0.5MB,這樣看,2MB的緩存起碼能存4個(gè)磁道的數(shù)據(jù),也還差不多了,因此把緩存增加到16MB通常情況下是不會(huì)有太大效益的。我的意思并不是說(shuō)16MB的緩存毫無(wú)用處,其實(shí)現(xiàn)在內(nèi)存這么便宜我認(rèn)為個(gè)個(gè)硬盤都該配這么大緩存,只是廠家為了差異化故意搞出這些差異,但是你要對(duì)16MB期望太高那是不現(xiàn)實(shí)的。硬盤外緩存,如果只是讀而言,同樣的容量存儲(chǔ)的緩存不會(huì)比主機(jī)的緩存更有優(yōu)勢(shì),除非是很多主機(jī)共享讀同樣的文件,但就寫而言,如果存儲(chǔ)的緩存帶電池備份,可以在實(shí)際硬盤沒(méi)有寫完前就通知主機(jī)的應(yīng)用程序已經(jīng)寫完畢,性能上的提高有可能是很大的。

下面簡(jiǎn)略的說(shuō)一次RAID陣列的速度和磁盤速度的關(guān)系,RAID0用分片存儲(chǔ)方式把數(shù)據(jù)分布在兩個(gè)盤或更多盤上,讀寫持續(xù)傳輸速率會(huì)增加一倍,隨機(jī)讀寫速度按理論是有可能增加的,這取決于數(shù)據(jù)分片大小和讀寫的大小,不過(guò)總的來(lái)說(shuō)很值得懷疑;硬件RAID1的隨機(jī)和持續(xù)寫速率和單個(gè)硬盤是完全一樣的,但讀的話由于可以從兩個(gè)硬盤隨意選一個(gè)讀,隨機(jī)讀性能會(huì)有明顯的增加,可能至2倍,至于持續(xù)讀取速率理論上有可能增加,不過(guò)我很懷疑有這方面的優(yōu)化,估計(jì)還是一樣的;RAID5由于寫要N+1個(gè)盤一起寫,所以隨機(jī)讀寫速率和單個(gè)硬盤是一樣的(或者更差),而持續(xù)讀寫速率按理論是單個(gè)硬盤的N倍,不過(guò)我也遇到過(guò)還不如RAID1的情況,這怎么說(shuō)呢?沒(méi)法說(shuō)了。
最后說(shuō)下IDE、ATA、SATA、SCSI、FC等這些傳輸通道,我知道我說(shuō)這些肯定是會(huì)有爭(zhēng)議的。既然現(xiàn)在的傳輸通道速率已經(jīng)遠(yuǎn)遠(yuǎn)的超過(guò)了硬盤的持續(xù)傳輸速率,還要這些更高的速度有什么必要呢?我只能這樣看,這不是完全沒(méi)必要的,更高的速率能減輕通道的擁塞,讓緩存中的數(shù)據(jù)更快傳輸,也許還能減低主機(jī)的CPU占用率什么的。但正如這些懷疑論者所想,存儲(chǔ)的性能根本上是由硬盤決定的,其它這些外圍的東西只能起有限的提高,不能起決定作用。

另外再多嘴說(shuō)下硬盤的可靠性,很多用戶會(huì)想當(dāng)然的認(rèn)為他們花幾倍價(jià)錢買來(lái)的硬盤肯定是更可靠的。就我的經(jīng)驗(yàn),實(shí)際的情況不是這樣,我所遇到的硬盤損壞比例服務(wù)器和存儲(chǔ)專用硬盤明顯高于普通消費(fèi)級(jí)別硬盤,幾年前這點(diǎn)還很明顯,近幾年可能是由于硬盤可靠性普遍提高,兩方面的例子都變少了,不太好下結(jié)論了。簡(jiǎn)單的說(shuō),硬盤廠家把最先進(jìn)的技術(shù)同時(shí)用于專用硬盤和消費(fèi)硬盤,甚至可能由于保守的緣故消費(fèi)級(jí)別硬盤先采用新技術(shù);專用硬盤轉(zhuǎn)速更快,發(fā)熱更高,同樣的技術(shù)水平更容易壞;消費(fèi)級(jí)別硬盤出貨量遠(yuǎn)遠(yuǎn)高于專業(yè)硬盤,故障更有可能暴露出來(lái),我想這是最重要的因素。當(dāng)然我不否認(rèn)采用更好的軸承等技術(shù),專用硬盤可能有更好的壽命,(但是我所接觸的環(huán)境PC機(jī)也常常24小時(shí)運(yùn)行,特別是幾年前),但不管怎么說(shuō)專業(yè)硬盤的可靠性絕對(duì)不可能是消費(fèi)級(jí)別硬盤的價(jià)格倍數(shù)。

寫的很匆忙,必定有很多錯(cuò)漏之處,歡迎指正!

訂正下,上面的文字就不動(dòng)了。

“RAID5由于寫要N+1個(gè)盤一起寫,所以隨機(jī)讀寫速率和單個(gè)硬盤是一樣的(或者更差)”
這段我對(duì)RAID5的存儲(chǔ)方式理解有錯(cuò)誤,讀不是要N+1個(gè)盤一起讀,所以每秒隨機(jī)讀次數(shù)在并發(fā)IO的情況下能有很大提高。
感謝冬瓜頭指出!

[ 本帖最后由 wdqwdq 于 2006-12-28 18:41 編輯 ]

最新回復(fù)

林肯 at 2006-12-19 18:04:45
表?yè)P(yáng)的話我不說(shuō)了,希望你的帖子更多一點(diǎn)....
對(duì)于磁盤底層技術(shù),如果一定要給你挑一點(diǎn)刺的話
Avg 146K read IOPS = 1000ms / (3.8 + 2.01) = 172
Avg 146K write IOPS = 1000ms / (4.1 + 2.01) = 164
2.01是所謂 average latency,  3.8/4.1是所謂seek time

硬盤的可靠性方面當(dāng)然應(yīng)該是磁盤陣列的要高很多,起碼在做工用料方面,當(dāng)然做工好并不能100%保證會(huì)更加可靠,就像寶馬車說(shuō)不定比夏利更加容易壞一樣,但不能說(shuō)寶馬用料不好

至于RAID計(jì)算損耗方面,感覺(jué)還是有點(diǎn)認(rèn)識(shí)上的不一樣,但對(duì)于一個(gè)用戶來(lái)說(shuō),已經(jīng)是非常不錯(cuò)了

[ 本帖最后由 林肯 于 2006-12-19 18:06 編輯 ]
paulwang at 2006-12-19 18:15:41
什么東西的邊際收益都會(huì)下降的 不能要求一直成線性關(guān)系 性價(jià)比在下降 研發(fā)人員的時(shí)間回報(bào)也在下降 
說(shuō)白了 中低端產(chǎn)品才講性價(jià)比 高端產(chǎn)品就講品牌/服務(wù)/.....
wdqwdq at 2006-12-19 19:41:36
>>表?yè)P(yáng)的話我不說(shuō)了,希望你的帖子更多一點(diǎn)....

謝謝,其實(shí)我寫這些可能給編程的看更有價(jià)值一點(diǎn)。

>>對(duì)于磁盤底層技術(shù),如果一定要給你挑一點(diǎn)刺的話

這個(gè)...,沒(méi)發(fā)現(xiàn)和你說(shuō)的有什么不一致的地方啊,我說(shuō)過(guò)15K的盤隨機(jī)存取性能是7200的2倍啊。我知道寫會(huì)比讀稍微慢些的,但只是普及性的說(shuō)說(shuō),所以沒(méi)有提出來(lái)。你是說(shuō)我說(shuō)的150/250高了嗎,對(duì)一個(gè)典型的幾G的數(shù)據(jù)庫(kù)讀寫是有可能高一些的,當(dāng)然10K的盤每秒250次可能怎么也達(dá)不到,是我看數(shù)據(jù)庫(kù)監(jiān)視器經(jīng)過(guò)OS緩存后的值。

>>硬盤的可靠性方面當(dāng)然應(yīng)該是磁盤陣列的要高很多,起碼在做工用料方面,當(dāng)然做工好并不能100%保證會(huì)更加可靠,就像寶馬車說(shuō)不定比夏利更加容易壞一樣,但不能說(shuō)寶馬用料不好

這個(gè)我不得不說(shuō)了,版主的說(shuō)法有道理,有水平~~用料我相信肯定是好的。

>>至于RAID計(jì)算損耗方面,感覺(jué)還是有點(diǎn)認(rèn)識(shí)上的不一樣

請(qǐng)明示。

補(bǔ)充幾點(diǎn)吧。
1. 是前面說(shuō)存儲(chǔ)的緩存不比主機(jī)強(qiáng)有些偏頗,如果主機(jī)的內(nèi)存不夠大,又有多臺(tái)主機(jī)訪問(wèn)存儲(chǔ),存儲(chǔ)的大緩存被多臺(tái)主機(jī)共享還是有價(jià)值的。
2. 是硬盤的隨機(jī)訪問(wèn)性能差幾乎是根本性的缺陷,15K的盤也出現(xiàn)有5年以上了,速度很難再大幅度提升了。如果在閃存盤上運(yùn)行數(shù)據(jù)庫(kù)對(duì)比的話,出現(xiàn)10倍的性能差距也是不會(huì)讓人驚訝的。除了大緩存,就是數(shù)據(jù)庫(kù)全放內(nèi)存中運(yùn)行,但這總不夠理想。
3. 雖然隨機(jī)讀性能這個(gè)物理缺陷很難有解決辦法,但是隨機(jī)寫的性能是可以靠較大緩存來(lái)有個(gè)明顯提高的(特別是和排隊(duì)技術(shù)集合起來(lái)),這對(duì)整體性能提高仍然會(huì)有不少幫助。電池后備的內(nèi)存畢竟昂貴,而且感覺(jué)上也還是不夠可靠,期望廠家以后開(kāi)發(fā)的硬盤里能帶flash后備存儲(chǔ)和較大的電容,當(dāng)?shù)綦姷臅r(shí)候把未寫完的數(shù)據(jù)寫入flash中,這樣的硬盤成本增加不多,性能卻能增加不少。
firewire800 at 2006-12-19 21:04:08

精華啊,又學(xué)到了!~

從頭到尾看了一遍,花了不少時(shí)間,但收獲也是成正比的。。

終于明白為什么FC、SCSI、SAS硬盤設(shè)計(jì)成2.5寸的,原來(lái)為了減少Seek Time!原來(lái)以為只有提高轉(zhuǎn)速才能提高速度的。。

[ 本帖最后由 firewire800 于 2006-12-19 22:39 編輯 ]
rechardluo at 2006-12-19 23:55:58

QUOTE:

原帖由 wdqwdq 于 2006-12-19 19:41 發(fā)表
補(bǔ)充幾點(diǎn)吧。
1. 是前面說(shuō)存儲(chǔ)的緩存不比主機(jī)強(qiáng)有些偏頗,如果主機(jī)的內(nèi)存不夠大,又有多臺(tái)主機(jī)訪問(wèn)存儲(chǔ),存儲(chǔ)的大緩存被多臺(tái)主機(jī)共享還是有價(jià)值的。
    ---光有緩存,或者緩存容量大,是不夠的;設(shè)計(jì)靈活的緩存算法,才是靈魂,他就像一個(gè)樂(lè)隊(duì)的主唱那樣!

2. 是硬盤的隨機(jī)訪問(wèn)性能差幾乎是根本性的缺陷,15K的盤也出現(xiàn)有5年以上了,速度很難再大幅度提升了。如果在閃存盤上運(yùn)行數(shù)據(jù)庫(kù)對(duì)比的話,出現(xiàn)10倍的性能差距也是不會(huì)讓人驚訝的。除了大緩存,就是數(shù)據(jù)庫(kù)全放內(nèi)存中運(yùn)行,但這總不夠理想。 “全放內(nèi)存中”,想法挺好,就是花得起這個(gè)銀子的用戶可不多!

btw, LZ挺厲害的!
chenmengliang at 2006-12-20 08:50:48
不得不頂
chenmengliang at 2006-12-20 09:10:53
RAID5的寫速率慢,愚見(jiàn)如下:
由于RAID5比單硬盤寫多了個(gè)校驗(yàn)工作,尤其是改寫數(shù)據(jù)時(shí),要經(jīng)過(guò)讀原數(shù)據(jù)-讀校驗(yàn)數(shù)據(jù)-比較新數(shù)據(jù)與原數(shù)據(jù)-生成新校驗(yàn)數(shù)據(jù)-用新數(shù)據(jù)覆蓋原數(shù)據(jù)-用新校驗(yàn)數(shù)據(jù)覆蓋原校驗(yàn)數(shù)據(jù)-返回操作成功信號(hào),經(jīng)過(guò)如此之多的步驟,RAID5的寫速度比單塊硬盤的寫速度慢就可以理解了
拋磚引玉,疏漏之處,請(qǐng)方家指點(diǎn)
wxshun at 2006-12-20 10:04:49

QUOTE:

原帖由 firewire800 于 2006-12-19 21:04 發(fā)表

精華啊,又學(xué)到了!~

從頭到尾看了一遍,花了不少時(shí)間,但收獲也是成正比的。。

終于明白為什么FC、SCSI、SAS硬盤設(shè)計(jì)成2.5寸的,原來(lái)為了減少Seek Time!原來(lái)以為只有提高轉(zhuǎn)速才能提高速度的。。
深有同感?。?/div>
firewire800 at 2006-12-20 10:41:56

QUOTE:

原帖由 wxshun 于 2006-12-20 10:04 發(fā)表

深有同感??!
以前從來(lái)沒(méi)有想得這么深入,樓主很厲害。。。。。
冬瓜頭 at 2006-12-20 10:53:39
鉆,使勁鉆,大家都來(lái)鉆牛角尖
xylfred at 2006-12-20 15:58:21
樓主能指點(diǎn)一下編程人員的角度怎么來(lái)理解你的這篇文章?
fani007 at 2006-12-20 16:43:32
頂!
又明白許多。其實(shí)我覺(jué)得FC、SCSI、SATA硬盤沒(méi)什么差別,只是用戶有錢燒的。其實(shí)買一堆SATA盤,做Raid0+1,多好啊,Raid5不行。
wdqwdq at 2006-12-20 17:51:17
>>樓主能指點(diǎn)一下編程人員的角度怎么來(lái)理解你的這篇文章?

這個(gè)不是幾句話能說(shuō)清楚的,基本點(diǎn)是編程人員要想像自己做的每步操作磁盤會(huì)怎樣的存取,減少隨機(jī)存取,減少存取次數(shù),當(dāng)然基本的緩存你每讀一次數(shù)據(jù)附近的幾MB數(shù)據(jù)還是有可能已經(jīng)緩存上來(lái)了,這些也都要考慮到,緩存既是重要的,又是不可完全依賴的。

我覺(jué)得比如估算下每秒鐘要存取多少次是個(gè)好方法,這樣就會(huì)對(duì)自己的程序性能心中有數(shù),如果設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),預(yù)先估算后為了性能做出的設(shè)計(jì)可能會(huì)和不考慮磁盤存取特性有很大不同。我舉個(gè)例子,有很多短信的網(wǎng)關(guān)程序,每秒鐘跑一百條就吃不消了,你如果了解了磁盤存取特性就會(huì)知道怎么回事了,他一個(gè)程序往數(shù)據(jù)庫(kù)中寫短信記錄,一個(gè)程序輪詢讀,那還能行?數(shù)據(jù)庫(kù)讀寫一條記錄可不是一次磁盤讀寫這么簡(jiǎn)單,即使有緩存頂著也還是夠嗆。反之,如果短信轉(zhuǎn)發(fā)放內(nèi)存中處理,每秒幾千條也應(yīng)該是很輕松的,這時(shí)候要考慮的就是交換機(jī)吃不消了,當(dāng)然,短信必須保存在硬盤上備查,怎么處理?很簡(jiǎn)單,積累若干條在內(nèi)存緩沖區(qū)中,一次象日志一樣批量寫入硬盤,或更好點(diǎn)為了保險(xiǎn)起見(jiàn)限定到0.5秒條數(shù)不夠也寫,這時(shí)候網(wǎng)關(guān)服務(wù)器會(huì)負(fù)載很小,兼干其它事情也不吃力。如果希望內(nèi)容放到數(shù)據(jù)庫(kù)中好查詢,可以定時(shí)把日志導(dǎo)入進(jìn)去,這是順序處理,非??斓?。

有些情況下,可以一次讀較多的數(shù)據(jù)到內(nèi)存再進(jìn)行處理,雖然現(xiàn)在有預(yù)讀了,還是不可以太依賴,沒(méi)有什么緩存比你應(yīng)用程序更知道你的存取特性,BT的緩存就是一個(gè)很成功的例子,按說(shuō)OS有緩存了為什么BT自己還要搞呢?電騾為什么不太成功,沒(méi)有緩存是一個(gè)因素。1992年的時(shí)候,同事找我說(shuō)他們處理計(jì)費(fèi)的預(yù)處理程序30M數(shù)據(jù)要2個(gè)小時(shí)才能處理完,太慢了,我一看程序是getc一個(gè)一個(gè)字節(jié)讀,一個(gè)一個(gè)字段判斷處理,我改成一次讀64KB,用C++的類內(nèi)存中按記錄來(lái)轉(zhuǎn)換,再一次寫入,2分鐘就處理完了(那個(gè)時(shí)候的硬盤和CPU速度)。

>>其實(shí)我覺(jué)得FC、SCSI、SATA硬盤沒(méi)什么差別,只是用戶有錢燒的。其實(shí)買一堆SATA盤,做Raid0+1,多好啊,Raid5不行。

還是不要匆忙下結(jié)論吧,不然又要被批了。
林肯 at 2006-12-20 18:31:12
寫得很好,從應(yīng)用角度考慮底層技術(shù),底層技術(shù)為應(yīng)用優(yōu)化,所謂application optimized,頂一個(gè)

說(shuō)FC和SATA一樣就和說(shuō)因?yàn)閷汃R和santana一樣長(zhǎng),所以質(zhì)量一樣,完全不靠撲。另外重申一句,對(duì)于數(shù)據(jù)庫(kù)隨機(jī)OLTP交易來(lái)說(shuō),什么接口流量都是騙人的,管你1G/2G/4G還有什么10G iscsi,能夠有40MB的寫流量就嚇?biāo)廊肆耍ó?dāng)數(shù)據(jù)庫(kù)db_block_size=8KB時(shí))
richstone at 2006-12-20 21:54:34
比如,大家都以為硬盤的cache越大越OK, 但實(shí)際上在RAID環(huán)境或者存儲(chǔ)環(huán)境硬盤的cache一般都是disable.
因?yàn)殚_(kāi)啟后對(duì)數(shù)據(jù)的安全有影響, 在RAID中, CACHE是由RAID battery來(lái)保護(hù), 同樣在存儲(chǔ)中
也有類似的機(jī)制來(lái)完成保護(hù). 但是如果每個(gè)硬盤的cache打開(kāi)后,如果停電,你就不會(huì)知道, 那個(gè)寫了,那個(gè)沒(méi)有.
其實(shí)做存儲(chǔ),第一位是數(shù)據(jù)安全,第二位才是性能.
wdqwdq at 2006-12-21 09:05:57
>>實(shí)際上在RAID環(huán)境或者存儲(chǔ)環(huán)境硬盤的cache一般都是disable.

我對(duì)這些了解不多吧?但是是寫緩存 disable吧,不然硬盤自動(dòng)預(yù)讀的功能不就沒(méi)有了?
如果能做到我說(shuō)的硬盤自帶flash,就不需要disable了,有足夠大的寫緩存再通過(guò)排隊(duì)優(yōu)化磁頭移動(dòng)(結(jié)合磁盤旋轉(zhuǎn)相位還有適當(dāng)在讀的間隙插入寫),隨機(jī)寫性能一定能高很多,這種優(yōu)化只能靠硬盤本身來(lái)完成,外部設(shè)備缺乏必要的信息來(lái)優(yōu)化操控。

正好看到文章Vista有個(gè)ReadyBoost技術(shù)可以用閃存盤來(lái)做虛擬內(nèi)存加速,原理就是閃存盤隨機(jī)讀寫比硬盤快太多了(即使持續(xù)速率慢很多)。

還有就是假如硬盤廠商要想提高持續(xù)傳輸率,應(yīng)該是很容易的,我們知道多層盤有多個(gè)磁頭,但是實(shí)際上同時(shí)只有一個(gè)磁頭在工作,如果每個(gè)磁頭都配上讀寫電路,速率不就提高N倍了嗎?這個(gè)成本會(huì)增加些,但肯定不是大到難以接受的。但是正如我們所討論的,隨機(jī)存取性能才是主要矛盾,單純提高持續(xù)速率是意義不大的,所以才不見(jiàn)廠商有做。

再說(shuō)下硬盤讀寫數(shù)據(jù)的方式。還是以7200RPM盤為例,我們來(lái)看下什么樣算隨機(jī)讀寫,什么樣算順序讀寫,盤的平均持續(xù)讀寫速率大概是50MB/s的樣子,我們假定一秒鐘時(shí)間一半在尋道,那就是70的一半35次,一半時(shí)間讀數(shù)據(jù),就是25MB,因此中間位置是每次讀約25/35約0.7MB,對(duì)于高速盤,由于傳輸率沒(méi)有隨機(jī)訪問(wèn)速度增加的快,這個(gè)值可能低到0.4MB。因此,如果程序一次讀寫的數(shù)據(jù)遠(yuǎn)低于這個(gè)值,那就是隨機(jī)讀寫,性能主要按讀寫次數(shù)估算(當(dāng)然每次讀的位置很接近要另外考慮),如果明顯大于這個(gè)值,就說(shuō)明硬盤在尋道上花的時(shí)間較少,主要是受持續(xù)傳輸速率的制約。當(dāng)然這只是個(gè)簡(jiǎn)單化的情況,實(shí)際我們一般讀寫的是文件,而文件可能是有碎片的,當(dāng)然另一方面我們又有預(yù)讀和緩存,所以要更復(fù)雜些,但作為大致的評(píng)估還是可以參考的。

我舉個(gè)文件拷貝程序的例子,即使到現(xiàn)在仍然有人在討論這個(gè)快還是那個(gè)快,如果一個(gè)程序一次讀256KB就寫,另一個(gè)讀2MB才寫,孰快孰慢呢,即使有預(yù)讀和緩存,考慮到讀寫操作的干擾,在同一個(gè)盤拷貝,幾乎肯定后者比前者快,在不同盤之間拷貝就不一定了,因?yàn)橛袀€(gè)傳輸?shù)慕惶鎲?wèn)題,但一般來(lái)說(shuō),1MB應(yīng)該會(huì)比256KB要好。做這個(gè)分析并不是建議你每次都讀寫大塊的數(shù)據(jù),即使不必要,雖然現(xiàn)在內(nèi)存很便宜了。但是做了這種磁盤性能評(píng)估后看問(wèn)題,確實(shí)會(huì)有很大不同的。

記得很多年前FICQ的作者問(wèn)我你估計(jì)OICQ(就是現(xiàn)在的QQ啦)是什么工作機(jī)制?那時(shí)候FICQ人多了的時(shí)候性能有些不理想,我說(shuō)還不是錢多搞一大堆數(shù)據(jù)庫(kù)服務(wù)器堆出來(lái)的嗎?你如果現(xiàn)在問(wèn)我是什么,我估計(jì)還是一樣的。現(xiàn)在的問(wèn)題是假如你沒(méi)那么多錢又想達(dá)到一樣的性能你該怎么做?如果我說(shuō)用100臺(tái)服務(wù)器(也許再少很多)就能把QQ的基本IM功能承擔(dān)起來(lái)(不包括代理和傳輸中轉(zhuǎn)還有各種附加功能),你可相信?
兔爺 at 2006-12-28 11:10:24

QUOTE:

原帖由 fani007 于 2006-12-20 16:43 發(fā)表
頂!
又明白許多。其實(shí)我覺(jué)得FC、SCSI、SATA硬盤沒(méi)什么差別,只是用戶有錢燒的。其實(shí)買一堆SATA盤,做Raid0+1,多好啊,Raid5不行。
SATA硬盤單個(gè)進(jìn)程讀寫的時(shí)候速度很好,一點(diǎn)不輸FC,但多進(jìn)程,隨機(jī)讀寫的時(shí)候,性能下降的比FC差太多了。所以感覺(jué)SATA硬盤適合做備份之類的,或者給個(gè)高清的編輯工作站做存儲(chǔ)。
自己很隨意的測(cè)試數(shù)據(jù)而已,僅供參考。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
硬盤性能的深度解析 - 教學(xué) - PC絕對(duì)領(lǐng)域
iops 條帶深度 隊(duì)列深度 NCQ
硬盤結(jié)構(gòu)詳解;詳解MBR和GPT分區(qū)結(jié)構(gòu);詳解raid磁盤陣列
存儲(chǔ)系統(tǒng)講解——硬件層介紹
磁盤的格式化有什么作用
磁盤陣列原理
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服