小雪尝禁果又粗又大的视频,人妻中文乱码在线网站,江苏少妇性BBB搡BBB爽爽爽,AV片在线观看免费

行業(yè)資訊

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

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


2021年01月30日

一 機(jī)械磁盤的io的速度主要受“尋道速度”的限制,所以在訪問小文件時(shí)io性能會極差。如果不在乎成本,可以通過使用固態(tài)硬盤來解決這個(gè)問題。

二 linux的主流文件系統(tǒng)(如ext4等),在文件系統(tǒng)持續(xù)比較滿,且需求經(jīng)常刪改文件時(shí),會產(chǎn)生大量文件碎片。在我啟發(fā)的一款代理服務(wù)器中,磁盤長期滿負(fù)荷運(yùn)轉(zhuǎn),運(yùn)行一個(gè)月后文件碎片大約會讓io性能降低至只剩20%-30%

百縱科技慶慶帶大家來看一下有哪些辦法可以減少linux下的文件碎片。另外有一個(gè)小技巧,針對互聯(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)核會將大部分空閑內(nèi)存交給虛擬文件系統(tǒng),來作為文件緩存,叫做page cache。在內(nèi)存不足時(shí),這部分內(nèi)存會采用lru算法進(jìn)行淘汰。

通過free命令查看內(nèi)存,顯示為cached的部分就是文件緩存了。

如何針對性優(yōu)化:

lru并不是一個(gè) 優(yōu)異淘汰算法,lru很大的優(yōu)勢是普適性好,在各種使用場景下都能起到一定的效果。

如果能找到當(dāng)前使用場景下,文件被訪問的統(tǒng)計(jì)特征,針對性的寫一個(gè)淘汰算法,可以大幅提升文件緩存的命中率。

如果不打算寫一個(gè)新的淘汰算法,一般不需求在應(yīng)用層再搭一個(gè)文件cache程序來做緩存。

很小分配

當(dāng)文件擴(kuò)大,需求分配磁盤空間時(shí),大部分文件系統(tǒng)不會僅僅只分配當(dāng)前需求的磁盤空間,而是會多分配一些磁盤空間。這樣下次文件擴(kuò)大時(shí)就可以使用已經(jīng)分配好的空間,而不會頻繁的去分配新空間。

例如ext3下,每次分配磁盤空間時(shí),很小是分配8KB。

很小分配的副作用是會浪費(fèi)一些磁盤空間(分配了但是又沒有使用)

如何針對性優(yōu)化:

我們在reiserfs下將很小分配空間從8KB改大到128K后提升了30%的磁盤io性能。

在同時(shí)有多個(gè)io訪問時(shí),linux內(nèi)核可以對這些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á)到更好的效果。

如何針對性優(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è)文件讀寫請求。

方案二是使用磁盤線程池同時(shí)發(fā)起多個(gè)文件讀寫請求。


客服