溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

云計(jì)算學(xué)習(xí)路線圖素材課件:Linux性能優(yōu)化IO子系統(tǒng)

發(fā)布時(shí)間:2020-02-24 23:27:48 來源:網(wǎng)絡(luò) 閱讀:171 作者:wx5e37c11a17f34 欄目:云計(jì)算

Linux是一個(gè)基于POSIX和Unix的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng),具有免費(fèi)使用和自由傳播的特性。隨著開源軟件的發(fā)展以及云計(jì)算技術(shù)的革新,Linux成為云計(jì)算人才必須要掌握的技能之一。下面給大家分享云計(jì)算學(xué)習(xí)路線圖素材課件:Linux性能優(yōu)化IO子系統(tǒng)的內(nèi)容。

很多同學(xué)聽過IO流,即以流的方式進(jìn)行輸入輸出,其中流是一種抽象的概念,它代表了數(shù)據(jù)的無結(jié)構(gòu)化傳遞。IO系統(tǒng),英文全稱為“Input output system”,中文全稱為“輸入輸出系統(tǒng)”,由輸入輸出控制系統(tǒng)和外圍設(shè)備兩部分組成,是計(jì)算機(jī)系統(tǒng)的重要組成部分。

作為Linux服務(wù)器來講,最大的兩個(gè)IO類型是磁盤IO和網(wǎng)絡(luò)IO。一個(gè)完整的IO系統(tǒng)過程如下:

1)一個(gè)用戶進(jìn)程通過write()系統(tǒng)調(diào)用發(fā)起寫請求;

2)內(nèi)核更新對應(yīng)的page cache;

3)pdflush內(nèi)核線程將page cache寫入至磁盤中;

4)文件系統(tǒng)層將每一個(gè)block buffer存放為一個(gè)bio結(jié)構(gòu)體,并向塊設(shè)備層提交一個(gè)寫請求;

5)塊設(shè)備層從上層接受到請求,執(zhí)行IO調(diào)度操作,并將請求放入IO請求隊(duì)列中;

6)設(shè)備驅(qū)動(dòng)(如SCSI或其他設(shè)備驅(qū)動(dòng))完成寫操作;

7)磁盤設(shè)備固件執(zhí)行對應(yīng)的硬件操作,如磁盤的旋轉(zhuǎn)、尋道等,數(shù)據(jù)被寫入到磁盤扇區(qū)中。

block layer處理bio請求,并將這些請求鏈接成一個(gè)隊(duì)列,稱作IO請求隊(duì)列,這個(gè)連接的操作就稱作IO調(diào)度(也叫IO elevator即電梯算法)。bio結(jié)構(gòu)體是file system layer到block layer的接口。

IO調(diào)度器的總體目標(biāo)是減少磁盤的尋道時(shí)間(因此調(diào)度器都是針對機(jī)械硬盤進(jìn)行優(yōu)化的),IO調(diào)度器通過兩種方式來減少磁盤尋道:合并和排序。

合并即當(dāng)兩個(gè)或多個(gè)IO請求的是相鄰的磁盤扇區(qū),通過合并請求,多個(gè)IO請求只需要向磁盤發(fā)送一個(gè)請求指令,減少了磁盤的開銷。

排序就是將不能合并的IO請求,根據(jù)請求磁盤扇區(qū)的順序,在請求隊(duì)列中進(jìn)行排序,使得磁頭可以按照磁盤的旋轉(zhuǎn)順序的完成IO操作,可以減小磁盤的尋道次數(shù)。

想要優(yōu)化IO系統(tǒng)性能,我們可以采用以下幾種方式:

1)調(diào)整buffer、提高性能,就是調(diào)整隊(duì)列數(shù)以及增加預(yù)讀數(shù)。

增加隊(duì)列長度:/sys/block/vda(特定某設(shè)備)/queue/nr_requests

增加預(yù)讀數(shù):/sys/block/vda(特定某設(shè)備)/queue/read_ahead_kb

2)修改CFQ,以調(diào)節(jié)其性能,涉及參數(shù)文件:/sys/block/vda/queue/iosched/。

比如對CFQ來講,有以下幾個(gè)值可以調(diào)整:

back_seek_max

反向?qū)さ揽赡苡胸?fù)面影響,負(fù)載小的時(shí)候可以啟用,否則不要使用反向?qū)さ捞嘀怠?/p>

back_seek_penal

反向?qū)さ雷鰬土P,如果不得不使用反向?qū)さ赖脑?,那么必須對其做出一定懲罰,一旦做完懲罰之后,必須要正向?qū)さ栏啻螖?shù)。

fifo_expire_async

用來控制異步請求等待時(shí)間長度,默認(rèn)是250毫秒,過期之后無法滿足的異步請求將會被移動(dòng)到調(diào)度隊(duì)列中,也就意味著要重新調(diào)度,通常這些值不需要調(diào)整。

除了以上方法,IO優(yōu)化的方法還有很多,大致思路是最好換SSD、調(diào)整raid級別、選擇IO調(diào)度器、根據(jù)場景選擇合適的文件系統(tǒng)、配置選定調(diào)度器的參數(shù)、使用工具進(jìn)行分析優(yōu)化結(jié)果是否理想、寫在開機(jī)啟動(dòng)項(xiàng)里。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI