-
互聯(lián)網(wǎng)安全法,互聯(lián)網(wǎng)凈網(wǎng)行動(dòng)
-
”凈網(wǎng)2020”落實(shí)好維護(hù)網(wǎng)絡(luò)安全責(zé)任
-
關(guān)于端午節(jié)放假通知-宇眾網(wǎng)絡(luò)
-
宇眾網(wǎng)絡(luò)春節(jié)放假通知
-
關(guān)于公司收款銀行賬戶變更通知函-宇眾網(wǎng)絡(luò)
-
關(guān)于網(wǎng)上有人冒充我公司名義進(jìn)行詐騙的公告。
-
關(guān)于端午節(jié)放假通知,節(jié)日放假,但是我們業(yè)務(wù)不“放假”-宇眾網(wǎng)絡(luò)
-
工信部進(jìn)一步加強(qiáng)未備案網(wǎng)站管理工作的通知-宇眾網(wǎng)絡(luò)
-
關(guān)于東莞市宇眾網(wǎng)絡(luò)科技有限公司香港數(shù)據(jù)中心(香港機(jī)房)路由優(yōu)化通知
-
宇眾網(wǎng)絡(luò)慶祝五·一勞動(dòng)節(jié)快樂
-
東莞東城機(jī)房網(wǎng)絡(luò)升級(jí)通知
-
臨近過年,互聯(lián)網(wǎng)IDC貴圈也有被騙的,請(qǐng)認(rèn)準(zhǔn)宇眾網(wǎng)絡(luò)公司官方聯(lián)系方式
-
我司已獲得ISP/ICP/IDC三證資格,更好的為客戶服務(wù)
-
關(guān)于浙江金華高防機(jī)房網(wǎng)絡(luò)線路切割通知
-
工信部近日下發(fā)關(guān)于進(jìn)一步規(guī)范域名備案工作的通知
行業(yè)資訊
- 首頁(yè)
- 新聞中心
- 行業(yè)資訊
怎么樣調(diào)動(dòng)Linux系統(tǒng)的io性能-宇眾網(wǎng)絡(luò)
一 機(jī)械磁盤的io的速度主要受“尋道速度”的限制,所以在訪問小文件時(shí)io性能會(huì)極差。如果不在乎成本,可以通過使用固態(tài)硬盤來(lái)解決這個(gè)問題。
二 linux的主流文件系統(tǒng)(如ext4等),在文件系統(tǒng)持續(xù)比較滿,且需求經(jīng)常刪改文件時(shí),會(huì)產(chǎn)生大量文件碎片。在我啟發(fā)的一款代理服務(wù)器中,磁盤長(zhǎng)期滿負(fù)荷運(yùn)轉(zhuǎn),運(yùn)行一個(gè)月后文件碎片大約會(huì)讓io性能降低至只剩20%-30%
百縱科技慶慶帶大家來(lái)看一下有哪些辦法可以減少linux下的文件碎片。另外有一個(gè)小技巧,針對(duì)互聯(lián)網(wǎng)圖片服務(wù)器,可以將io性能提升數(shù)倍。
在現(xiàn)有文件系統(tǒng)下進(jìn)行優(yōu)化
linux內(nèi)核和各個(gè)文件系統(tǒng)采用了幾個(gè)優(yōu)化方案來(lái)提升磁盤訪問速度。但這些優(yōu)化方案需求在我們的服務(wù)器設(shè)計(jì)中進(jìn)行配合才能得到充分發(fā)揮。
文件系統(tǒng)緩存
linux內(nèi)核會(huì)將大部分空閑內(nèi)存交給虛擬文件系統(tǒng),來(lái)作為文件緩存,叫做page cache。在內(nèi)存不足時(shí),這部分內(nèi)存會(huì)采用lru算法進(jìn)行淘汰。
通過free命令查看內(nèi)存,顯示為cached的部分就是文件緩存了。
如何針對(duì)性優(yōu)化:
lru并不是一個(gè) 優(yōu)異淘汰算法,lru很大的優(yōu)勢(shì)是普適性好,在各種使用場(chǎng)景下都能起到一定的效果。
如果能找到當(dāng)前使用場(chǎng)景下,文件被訪問的統(tǒng)計(jì)特征,針對(duì)性的寫一個(gè)淘汰算法,可以大幅提升文件緩存的命中率。
如果不打算寫一個(gè)新的淘汰算法,一般不需求在應(yīng)用層再搭一個(gè)文件cache程序來(lái)做緩存。
很小分配
當(dāng)文件擴(kuò)大,需求分配磁盤空間時(shí),大部分文件系統(tǒng)不會(huì)僅僅只分配當(dāng)前需求的磁盤空間,而是會(huì)多分配一些磁盤空間。這樣下次文件擴(kuò)大時(shí)就可以使用已經(jīng)分配好的空間,而不會(huì)頻繁的去分配新空間。
例如ext3下,每次分配磁盤空間時(shí),很小是分配8KB。
很小分配的副作用是會(huì)浪費(fèi)一些磁盤空間(分配了但是又沒有使用)
如何針對(duì)性優(yōu)化:
我們?cè)趓eiserfs下將很小分配空間從8KB改大到128K后提升了30%的磁盤io性能。
在同時(shí)有多個(gè)io訪問時(shí),linux內(nèi)核可以對(duì)這些io訪問按LBA進(jìn)行合并和排序,這樣磁頭在移動(dòng)時(shí),可以“順便”讀出移動(dòng)過程中的數(shù)據(jù)。
內(nèi)核有四種不同的排序算法,有些側(cè)重于io性能很大化,也有一些側(cè)重于調(diào)度的公平性,大致上的原理都類似于電梯排序。
SATA等磁盤甚至在磁盤中內(nèi)置了io排序來(lái)進(jìn)一步提升性能,一般需求在主板中進(jìn)行配置才能啟動(dòng)磁盤內(nèi)置io排序。linux的io排序是根據(jù)LBA進(jìn)行的,但LBA是一個(gè)一維線性地址,無(wú)法完全反應(yīng)出二維的圓形磁盤,所以磁盤的內(nèi)置io排序能達(dá)到更好的效果。
如何針對(duì)性優(yōu)化:
io訪問調(diào)度能大幅提升io性能,前提是應(yīng)用層同時(shí)發(fā)起了足夠的io訪問供linux去調(diào)度。
怎樣才能從應(yīng)用層同時(shí)向內(nèi)核發(fā)起多個(gè)io訪問呢?
方案一是用aio_read異步發(fā)起多個(gè)文件讀寫請(qǐng)求。
方案二是使用磁盤線程池同時(shí)發(fā)起多個(gè)文件讀寫請(qǐng)求。