亚洲午夜无码久久,今天高清视频免费观看,欧美一夜爽爽爽爽爽爽,在线亚洲欧美日韩精品专区

行業(yè)資訊

  • 首頁
  • 新聞中心
  • 行業(yè)資訊

怎么樣調(diào)動(dòng)Linux系統(tǒng)的io性能-宇眾網(wǎng)絡(luò)


2021年01月30日

一 機(jī)械磁盤的io的速度主要受“尋道速度”的限制,所以在訪問小文件時(shí)io性能會(huì)極差。如果不在乎成本,可以通過使用固態(tà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%

百縱科技慶慶帶大家來看一下有哪些辦法可以減少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)化方案來提升磁盤訪問速度。但這些優(yōu)化方案需求在我們的服務(wù)器設(shè)計(jì)中進(jìn)行配合才能得到充分發(fā)揮。

文件系統(tǒng)緩存

linux內(nèi)核會(huì)將大部分空閑內(nèi)存交給虛擬文件系統(tǒng),來作為文件緩存,叫做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程序來做緩存。

很小分配

當(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排序來進(jìn)一步提升性能,一般需求在主板中進(jìn)行配置才能啟動(dòng)磁盤內(nèi)置io排序。linux的io排序是根據(jù)LBA進(jìn)行的,但LBA是一個(gè)一維線性地址,無法完全反應(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)求。


客服