国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > FreeBSD > 正文

有關(guān)FreeBSD的幾點誤區(qū)

2024-07-26 00:29:00
字體:
供稿:網(wǎng)友
王波

雖然絕大多數(shù)人都知道FreeBSD的優(yōu)勢在于穩(wěn)定性高,網(wǎng)絡(luò)性能好,但對于FreeBSD其他
的一些技術(shù)特性,在認識上仍然存在著一些偏差。

1.FreeBSD不具備日志文件系統(tǒng),因此不適合用作高要求的應(yīng)用目的

首先需要指出的是,日志文件系統(tǒng)最早也是在BSD上開發(fā)的,稱為LFS。在FreeBSD中本來
是支持它的,但后來由于版本升級的原因,它的代碼由于缺乏維護而被暫時拋棄,至今
還可以在FreeBSD的源代碼中可以找到LFS的一些遺跡。目前,LFS還存在于NetBSD中繼續(xù)
開發(fā),如果有特別的需求,它完全可以再回到FreeBSD系統(tǒng)中。
然而,F(xiàn)reeBSD開發(fā)者沒有急于將LFS移植回FreeBSD是有道理的,因為FreeBSD系統(tǒng)中已
經(jīng)增加了一些新的特性,足以提供LFS能提供的最重要的特性。為了解釋FreeBSD的這些
特性的本質(zhì),我們需要討論一下文件系統(tǒng)。
由于文件系統(tǒng)的讀寫性能對于整個系統(tǒng)的性能來講,是一個非常重要的指標,因此系統(tǒng)
設(shè)計者就設(shè)法盡可能的提高文件系統(tǒng)的性能。這樣,人們就設(shè)計了磁盤訪問緩沖來達到
這個目的,這樣,使用緩沖的讀寫方法就稱為異步(async)訪問方法,相應(yīng)的不采用緩
沖的磁盤讀寫方法就稱為同步(sync)訪問方法。
顯然,異步方法具有更高的讀寫性能,但是一旦發(fā)生故障的時候,由于有很多數(shù)據(jù)還保
存在緩沖區(qū)中,就導致這一部分數(shù)據(jù)丟失。然而,如果是簡單的部分數(shù)據(jù)丟失倒還罷了
,但是某些重要的數(shù)據(jù)丟失,就導致整個文件系統(tǒng)遭到破壞。為什么會發(fā)生這樣的情況
呢?
因為,在文件系統(tǒng)中,有兩種不同的數(shù)據(jù),一種為簡單的文件內(nèi)容數(shù)據(jù),這些數(shù)據(jù)丟失
僅僅導致某個文件出現(xiàn)錯誤數(shù)據(jù),不會影響其他文件的內(nèi)容。另一種數(shù)據(jù)則比較重要,
例如文件系統(tǒng)本身的I節(jié)點或者目錄數(shù)據(jù),假如I節(jié)點的數(shù)據(jù)塊出現(xiàn)錯誤,就會導致大量
文件丟失,甚至導致文件系統(tǒng)整個受到破壞。這些對文件系統(tǒng)完整性非常重要的數(shù)據(jù)被
稱為元數(shù)據(jù)(metadata)。
對于普通的文件系統(tǒng)來講,并不能在緩沖區(qū)中區(qū)分出普通數(shù)據(jù)和元數(shù)據(jù),這樣就會發(fā)生
普通數(shù)據(jù)的更新比它對應(yīng)的元數(shù)據(jù)更新的時間要早,這樣一旦發(fā)生故障,文件系統(tǒng)的破
壞是不可避免的。對于日志文件系統(tǒng)來講,由于日志是順序發(fā)生的,因而緩沖區(qū)向磁盤
寫的順序也是順序的,這樣,元數(shù)據(jù)的更新總是順序的在數(shù)據(jù)更新之前被保存,這樣就
使得即使發(fā)生故障,元數(shù)據(jù)也不會發(fā)生特別嚴重的錯誤,某些元數(shù)據(jù)的錯誤只能導致部
分文件丟失,而不會影響整個文件系統(tǒng)。
由于日志文件系統(tǒng)的這個順序特性,使得系統(tǒng)不會因為故障出現(xiàn)嚴重的錯誤,而且在出
現(xiàn)錯誤時,還具備更短的文件系統(tǒng)修復時間(fsck),系統(tǒng)修復時間對于存儲量非常大
的文件系統(tǒng)非常重要。這樣一旦出現(xiàn)錯誤,系統(tǒng)重新啟動并恢復提供服務(wù)的時間也很短
暫。
對于FreeBSD系統(tǒng)來講,則沿著另一個類似的方式來解決這個問題。由于FreeBSD更關(guān)心
系統(tǒng)的穩(wěn)定性、可靠性,F(xiàn)reeBSD系統(tǒng)并不推薦使用異步的方法來訪問磁盤,但是這樣磁
盤性能就比較差。為了解決這個問題,F(xiàn)reeBSD改善了文件系統(tǒng),將普通數(shù)據(jù)和元數(shù)據(jù)分
開,這樣就可以對普通數(shù)據(jù)進行緩沖,而對元數(shù)據(jù)不進行緩沖,這樣的方法就可以大大
改善文件系統(tǒng)性能,并且對文件系統(tǒng)的安全性也沒有太大的影響。
然而即使如此,文件系統(tǒng)的性能比起全部異步的方法還有一些差距,如何達到全部異步
訪問的目的呢?FreeBSD研究者提出了softupdate的方法,softupdate的主要目的是將元
數(shù)據(jù)的改變按照它們之間的依賴關(guān)系,元數(shù)據(jù)對普通數(shù)據(jù)的依賴關(guān)系進行重新排序,保
證元數(shù)據(jù)的更新按照安全的數(shù)據(jù)順序更新,這樣即使出現(xiàn)故障,也如同日志文件系統(tǒng)類
似,只會出現(xiàn)最終改變的一些文件錯誤或丟失,而不會出現(xiàn)嚴重錯誤。
從這個本質(zhì)角度出發(fā),softupdate其實是和日志文件系統(tǒng)用來解決同一類問題的兩種不
同方法,只不過日志文件系統(tǒng)是使用日志的方法來解決依賴關(guān)系的順序問題,而softup
date則需要重新排序元數(shù)據(jù),softupdate功能上非常類似于元數(shù)據(jù)日志文件系統(tǒng)。有了
softupdate,系統(tǒng)就可以全面支持異步的磁盤讀寫,提供更好的文件系統(tǒng)性能。
此外,F(xiàn)reeBSD目前還提供了諸如后臺磁盤檢查,就是說可以在后臺執(zhí)行磁盤檢查,而不
影響前臺執(zhí)行磁盤訪問,這樣就使得系統(tǒng)出現(xiàn)故障時更短的時間恢復正常服務(wù)。目前Fr
eeBSD系統(tǒng)甚至可以提供包括快照(snapshot)在內(nèi)的高級文件系統(tǒng)功能。
因此,雖然FreeBSD 下目前沒有日志文件系統(tǒng),但事實上已經(jīng)提供了類似日志文件系統(tǒng)
的功能,因此完全可以滿足不同的高端需求。

2. FreeBSD的磁盤讀寫性能差,不適合大量存儲數(shù)據(jù)的情況

很多來自網(wǎng)上的文章都告訴讀者,F(xiàn)reeBSD雖然在其他方面具備一定的優(yōu)勢,但磁盤讀寫
速度差,特別是在使用IDE磁盤的時候。
如果把這個觀點放在FreeBSD 2.2.x之前,也許還有些道理,那個時候FreeBSD為了保證
文件系統(tǒng)的安全性,是使用同步的方法訪問磁盤,顯然要比linux等以異步的方法訪問磁
盤要慢的多。但在FreeBSD 3.x之后,系統(tǒng)已經(jīng)全面支持softupdate,那么性能的改善就
可想而知了。
當然,為了保證數(shù)據(jù)安全,F(xiàn)reeBSD缺省還關(guān)閉一些硬件的性能選項,例如IDE磁盤通常
有一個內(nèi)部的緩沖區(qū),具備在磁盤設(shè)備本身對數(shù)據(jù)進行緩沖的功能,原則上,這個功能
是非常危險的,因為它在磁盤內(nèi)部實現(xiàn),系統(tǒng)無法告訴它那些數(shù)據(jù)是元數(shù)據(jù),不能緩沖
或者必須順序?qū)懭氲鹊龋行└叨舜疟P通常具備電池,保證磁盤內(nèi)部的緩沖能在突然掉
電的情況下寫回磁盤,但普通的磁盤顯然沒有這個能力。因此,F(xiàn)reeBSD實際上缺省是關(guān)
閉這樣的功能的,并不推薦使用,但是,如果是追求性能的話,打開這些功能也是可以
的,只不過就要冒丟失數(shù)據(jù)的風險了。
很多FreeBSD用戶還注意到,安裝FreeBSD的時候,磁盤讀寫性能的確比較慢,尤其是在
安裝Ports Collection部分的時候。這是因為目前FreeBSD的安裝系統(tǒng)還沒有立即支持s
oftupdate,沒有充分發(fā)揮這個性能優(yōu)勢,對于Ports Collection這個包含大量小文件,
需要巨大數(shù)量的I節(jié)點元數(shù)據(jù)改變的磁盤訪問需要,速度慢一些是正常的。未來的安裝系
統(tǒng)將缺省支持softupdate,安裝速度會得到改善。
安裝系統(tǒng)的磁盤訪問慢還有一個更深層次的原因,就是安裝系統(tǒng)的打包方式與普通方式
不同,例如一個多級子目錄aa/bb/cc/dd,普通的打包數(shù)據(jù)方法是先打包aa,接著是aa/
bb,aa/bb/cc,最后是aa/bb/cc/dd,這樣在解開的時候就順序進行,但安裝系統(tǒng)的打包
方式卻與此相反,那么,這樣再解開的時候就需要額外的處理,子目錄層次越多,需要
的額外磁盤訪問就越多。FreeBSD系統(tǒng)采用這種打包方法,主要是確保升級時的文件展開
的正確性,雖然使用正常的打包順序在絕大多數(shù)情況下也不會有問題。
即便如此,在最新一次FreeBSD和Linux的對比測試中(FreeBSD 4.3對Linux 2.4.10),
使用同樣的硬件并進行優(yōu)化之后,F(xiàn)reeBSD在提供靜態(tài)HTML方面要比Linux差幾個百分點
,而在提供動態(tài)CGI方面要比Linux高幾個百分點。原則上,這就表明在磁盤I/O方面,F(xiàn)
reeBSD還是有幾個百分點的差距。
對于這一點,首先需要指出的是,F(xiàn)reeBSD的softupdate異步方式,和Linux的ext2fs的
普通異步方式是不同的,所實現(xiàn)的功能差異很大。
第二點,我想這個對比測試也展示了FreeBSD和Linux在內(nèi)存管理方面的策略上的差異。
眾所周知,F(xiàn)reeBSD和Linux都是采用的將虛擬內(nèi)存頁面和磁盤緩沖區(qū)統(tǒng)一管理的方式,
根據(jù)需要,將物理內(nèi)存動態(tài)的分配給磁盤緩沖或者用作虛擬內(nèi)存頁面。這樣的統(tǒng)一管理
方式,就使得系統(tǒng)可以使用不同的分配策略,是緩沖優(yōu)先,還是虛擬內(nèi)存優(yōu)先?
顯然,F(xiàn)reeBSD要傾向于后者,這就使得Linux在內(nèi)存足夠大,需要緩沖的磁盤內(nèi)容相對
小的時候,文件系統(tǒng)的訪問性能會比較好。而FreeBSD在進程數(shù)量較多的重負載情況下,
仍然會高效的提供服務(wù)。這個也就能夠解釋一個朋友曾經(jīng)給我的一個他自己使用apache
的類似測試結(jié)果,在他的測試中,Linux在重負載的條件下很容易達到100%的處理器占用
,而FreeBSD雖然略有百分之幾的差距,但是處理器占用卻一直位于50%以下。我的這位
朋友希望我能告訴他如何擠壓出處理器的的剩余處理能力,達到更高的性能,但我得說
,這就涉及到內(nèi)存管理的細節(jié)了,要做到這一點并不簡單。事實上,保留一定的處理器
空余,能夠使得系統(tǒng)進程切換更平滑,服務(wù)更穩(wěn)定,要知道,性能并不是唯一的因素。

以我的看法,除了測試在緩沖區(qū)中能找到數(shù)據(jù)的情況,也要測試不能找到數(shù)據(jù)的情況,
才更符合真實的服務(wù)世界,正常的磁盤訪問測試通常包括順序讀、順序?qū)憽㈦S機讀、隨
機寫等多種情況。例如可以使用數(shù)千個隨機選擇的URL,而不是一個固定的URL來執(zhí)行隨
機讀測試,或許結(jié)果就會有所不同的吧!

3.由于wind river已經(jīng)解聘了一些制作FreeBSD發(fā)行的員工,因此FreeBSD前景不妙

就在最近,原本制作FreeBSD正式發(fā)行版本的wind river將他們負責制作FreeBSD發(fā)行光
盤的員工解聘,并且聲明未來不再負責FreeBSD的光盤發(fā)行和技術(shù)支持。因此,一些朋友
和我聊天的時候,就笑談FreeBSD前景不妙。
如果僅僅是看這一件事情,或許可以得到這樣的結(jié)論,但是如果我們注意到wind river
與FreeBSD的關(guān)系,以及他們其實是剛剛購買了BSDI的這種情況,可能結(jié)論就不是這樣簡
單了。
事實上,最早FreeBSD的發(fā)行版本是由cdrom.com來負責制作光盤和發(fā)行的,cdrom是一家
出版制作公司,而不是一個嚴格意義的IT公司。后來BSDI,制作BSD/OS的公司,購買了
cdrom,因而也擁有了FreeBSD的制作和發(fā)行部門,直到wind river公司購買了BSDI。現(xiàn)
在可以看到,作為一個方向為嵌入式系統(tǒng)的公司,wind river僅僅需要BSD/OS來填補其
產(chǎn)品系列的空白,在目前IT行業(yè)普遍不景氣的條件下,wind river沒有興趣在非主營的
出版領(lǐng)域做工作,作為一個商業(yè)企業(yè)這是非常正常,也非常正確的策略。
然而,wind river放棄FreeBSD的意義和某個linux公司放棄linux的意義顯然是截然不同
的。因為FreeBSD一直是以一種出版業(yè)務(wù)的形式在cdrom出現(xiàn)的,而不象Linux公司,以L
inux操作系統(tǒng)本身作為主營業(yè)務(wù)。即使是BSDI購買了cdrom,BSDI也只是將FreeBSD作為
他們的BSD/OS的商業(yè)補充,也可能他們有將FreeBSD作為他們的主營業(yè)務(wù)的愿望,但是他
們本身還擁有BSD/OS,并且他們購買cdrom的時候,IT行業(yè)已經(jīng)風光不再,因此,F(xiàn)reeB
SD對于BSDI,仍然是作為出版業(yè)務(wù)而主要存在。
因此,與其作為一個非主營業(yè)務(wù)存在于IT公司,還不如回到其本身的情況,由一家以出
版、媒體為主的公司來負責FreeBSD光盤的出版和制作,這樣必然可以減少出版發(fā)行光盤
的成本,即使從商業(yè)上考慮,想BSDI、wind river是無法從FreeBSD光盤制作和發(fā)行方面
盈利的,但一家專業(yè)出版發(fā)行公司則完全不同。當前,daemonnews,一個以BSD Unix為
主要對象的媒體公司承擔了這個任務(wù)。
因此,wind river放棄FreeBSD與否,與FreeBSD本身的發(fā)展并沒有太大的關(guān)系,F(xiàn)reeBS
D不是依靠商業(yè)方式發(fā)展的,而是依賴其本身的實力得到認可的一個系統(tǒng),未來也將繼續(xù)
這樣發(fā)展下去。也許受影響的只是那幾個離開wind river的員工,然而,以他們的資歷
,即使在如此不景氣的今天,再找一份工作也不是特別困難的事情。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 定边县| 沁源县| 无棣县| 平陆县| 汾阳市| 伊金霍洛旗| 来凤县| 寿光市| 云和县| 康定县| 禄丰县| 灵川县| 扶沟县| 高淳县| 贵德县| 钟山县| 滕州市| 搜索| 夹江县| 万载县| 广河县| 汝南县| 青川县| 民乐县| 敦化市| 商洛市| 新平| 吴江市| 江西省| 南丹县| 政和县| 清流县| 定襄县| 蒙自县| 平江县| 准格尔旗| 华蓥市| 江达县| 大足县| 江达县| 宝山区|