久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

!!!!!談?wù)動脖P的存取速度等 如何從程序效率的角度理解

 看見就非常 2012-10-30

談?wù)動脖P的存取速度等

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

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

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

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

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

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

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

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

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

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

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

訂正下,,上面的文字就不動了,。

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

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

最新回復(fù)

林肯 at 2006-12-19 18:04:45
表揚(yáng)的話我不說了,,希望你的帖子更多一點(diǎn)....
對于磁盤底層技術(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%保證會更加可靠,就像寶馬車說不定比夏利更加容易壞一樣,,但不能說寶馬用料不好

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

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

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

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

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

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

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

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

請明示,。

補(bǔ)充幾點(diǎn)吧。
1. 是前面說存儲的緩存不比主機(jī)強(qiáng)有些偏頗,,如果主機(jī)的內(nèi)存不夠大,,又有多臺主機(jī)訪問存儲,存儲的大緩存被多臺主機(jī)共享還是有價(jià)值的,。
2. 是硬盤的隨機(jī)訪問性能差幾乎是根本性的缺陷,,15K的盤也出現(xiàn)有5年以上了,速度很難再大幅度提升了,。如果在閃存盤上運(yùn)行數(shù)據(jù)庫對比的話,出現(xiàn)10倍的性能差距也是不會讓人驚訝的,。除了大緩存,,就是數(shù)據(jù)庫全放內(nèi)存中運(yùn)行,但這總不夠理想,。
3. 雖然隨機(jī)讀性能這個(gè)物理缺陷很難有解決辦法,,但是隨機(jī)寫的性能是可以靠較大緩存來有個(gè)明顯提高的(特別是和排隊(duì)技術(shù)集合起來),這對整體性能提高仍然會有不少幫助,。電池后備的內(nèi)存畢竟昂貴,,而且感覺上也還是不夠可靠,期望廠家以后開發(fā)的硬盤里能帶flash后備存儲和較大的電容,,當(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寸的,原來為了減少Seek Time,!原來以為只有提高轉(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. 是前面說存儲的緩存不比主機(jī)強(qiáng)有些偏頗,,如果主機(jī)的內(nèi)存不夠大,又有多臺主機(jī)訪問存儲,,存儲的大緩存被多臺主機(jī)共享還是有價(jià)值的,。
    ---光有緩存,或者緩存容量大,,是不夠的,;設(shè)計(jì)靈活的緩存算法,才是靈魂,,他就像一個(gè)樂隊(duì)的主唱那樣,!

2. 是硬盤的隨機(jī)訪問性能差幾乎是根本性的缺陷,15K的盤也出現(xiàn)有5年以上了,,速度很難再大幅度提升了,。如果在閃存盤上運(yùn)行數(shù)據(jù)庫對比的話,出現(xiàn)10倍的性能差距也是不會讓人驚訝的,。除了大緩存,,就是數(shù)據(jù)庫全放內(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的寫速率慢,愚見如下:
由于RAID5比單硬盤寫多了個(gè)校驗(yàn)工作,,尤其是改寫數(shù)據(jù)時(shí),,要經(jīng)過讀原數(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ù)-返回操作成功信號,經(jīng)過如此之多的步驟,,RAID5的寫速度比單塊硬盤的寫速度慢就可以理解了
拋磚引玉,,疏漏之處,請方家指點(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寸的,,原來為了減少Seek Time!原來以為只有提高轉(zhuǎn)速才能提高速度的,。,。
深有同感!,!
firewire800 at 2006-12-20 10:41:56

QUOTE:

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

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

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

我覺得比如估算下每秒鐘要存取多少次是個(gè)好方法,這樣就會對自己的程序性能心中有數(shù),,如果設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),,預(yù)先估算后為了性能做出的設(shè)計(jì)可能會和不考慮磁盤存取特性有很大不同。我舉個(gè)例子,,有很多短信的網(wǎng)關(guān)程序,,每秒鐘跑一百條就吃不消了,你如果了解了磁盤存取特性就會知道怎么回事了,,他一個(gè)程序往數(shù)據(jù)庫中寫短信記錄,,一個(gè)程序輪詢讀,那還能行,?數(shù)據(jù)庫讀寫一條記錄可不是一次磁盤讀寫這么簡單,,即使有緩存頂著也還是夠嗆。反之,,如果短信轉(zhuǎn)發(fā)放內(nèi)存中處理,,每秒幾千條也應(yīng)該是很輕松的,這時(shí)候要考慮的就是交換機(jī)吃不消了,,當(dāng)然,,短信必須保存在硬盤上備查,怎么處理,?很簡單,,積累若干條在內(nèi)存緩沖區(qū)中,一次象日志一樣批量寫入硬盤,,或更好點(diǎn)為了保險(xiǎn)起見限定到0.5秒條數(shù)不夠也寫,,這時(shí)候網(wǎng)關(guān)服務(wù)器會負(fù)載很小,兼干其它事情也不吃力,。如果希望內(nèi)容放到數(shù)據(jù)庫中好查詢,,可以定時(shí)把日志導(dǎo)入進(jìn)去,這是順序處理,,非??斓摹?br>
有些情況下,,可以一次讀較多的數(shù)據(jù)到內(nèi)存再進(jìn)行處理,,雖然現(xiàn)在有預(yù)讀了,還是不可以太依賴,,沒有什么緩存比你應(yīng)用程序更知道你的存取特性,,BT的緩存就是一個(gè)很成功的例子,按說OS有緩存了為什么BT自己還要搞呢,?電騾為什么不太成功,,沒有緩存是一個(gè)因素,。1992年的時(shí)候,同事找我說他們處理計(jì)費(fèi)的預(yù)處理程序30M數(shù)據(jù)要2個(gè)小時(shí)才能處理完,,太慢了,,我一看程序是getc一個(gè)一個(gè)字節(jié)讀,一個(gè)一個(gè)字段判斷處理,,我改成一次讀64KB,,用C++的類內(nèi)存中按記錄來轉(zhuǎn)換,再一次寫入,,2分鐘就處理完了(那個(gè)時(shí)候的硬盤和CPU速度),。

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

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

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

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

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

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

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

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

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

QUOTE:

原帖由 fani007 于 2006-12-20 16:43 發(fā)表
頂,!
又明白許多。其實(shí)我覺得FC,、SCSI,、SATA硬盤沒什么差別,只是用戶有錢燒的,。其實(shí)買一堆SATA盤,,做Raid0+1,多好啊,,Raid5不行,。
SATA硬盤單個(gè)進(jìn)程讀寫的時(shí)候速度很好,一點(diǎn)不輸FC,但多進(jìn)程,,隨機(jī)讀寫的時(shí)候,性能下降的比FC差太多了,。所以感覺SATA硬盤適合做備份之類的,,或者給個(gè)高清的編輯工作站做存儲。
自己很隨意的測試數(shù)據(jù)而已,,僅供參考,。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多