成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

調(diào)整Linux I/O調(diào)度器優(yōu)化系統(tǒng)性能

系統(tǒng) Linux
Linux I/O 調(diào)度器是Linux內(nèi)核中的一個(gè)組成部分,用戶(hù)可以通過(guò)調(diào)整這個(gè)調(diào)度器來(lái)優(yōu)化系統(tǒng)性能。本文首先介紹Linux I/O 調(diào)度器的結(jié)構(gòu),然后介紹如何根據(jù)不同的存儲(chǔ)器來(lái)設(shè)置Linux I/O 調(diào)度器從而達(dá)到優(yōu)化系統(tǒng)性能。

前言

Linux I/O 調(diào)度器是Linux內(nèi)核中的一個(gè)組成部分,用戶(hù)可以通過(guò)調(diào)整這個(gè)調(diào)度器來(lái)優(yōu)化系統(tǒng)性能。本文首先介紹Linux I/O 調(diào)度器的結(jié)構(gòu),然后介紹如何根據(jù)不同的存儲(chǔ)器來(lái)設(shè)置Linux I/O 調(diào)度器從而達(dá)到優(yōu)化系統(tǒng)性能。

調(diào)整Linux I/O調(diào)度器優(yōu)化系統(tǒng)性能

Linux I/O 系統(tǒng)簡(jiǎn)介

Linux I/O調(diào)度器(Linux I/O Scheduler)是LinuxI/O體系的一個(gè)組件,它介于通用塊層和塊設(shè)備驅(qū)動(dòng)程序之間。如圖 1 所示。

圖1 Linux I/O調(diào)度器介于通用塊層和塊設(shè)備驅(qū)動(dòng)程序之間

調(diào)整Linux I/O調(diào)度器優(yōu)化系統(tǒng)性能

當(dāng)Linux內(nèi)核組件要讀寫(xiě)一些數(shù)據(jù)時(shí),并不是請(qǐng)求一發(fā)出,內(nèi)核便立即執(zhí)行該請(qǐng)求,而是將其推遲執(zhí)行。當(dāng)傳輸一個(gè)新數(shù)據(jù)塊時(shí),內(nèi)核需要檢查它能否通過(guò)。Linux IO調(diào)度程序是介于通用塊層和塊設(shè)備驅(qū)動(dòng)程序之間,所以它接收來(lái)自通用塊層的請(qǐng)求,試圖合并請(qǐng)求,并找到最合適的請(qǐng)求下發(fā)到塊設(shè)備驅(qū)動(dòng)程序中。之后塊設(shè)備驅(qū)動(dòng)程序會(huì)調(diào)用一個(gè)函數(shù)來(lái)響應(yīng)這個(gè)請(qǐng)求。

Linux整體I/O體系可以分為七層,它們分別是:

  1. VFS虛擬文件系統(tǒng):內(nèi)核要跟多種文件系統(tǒng)打交道,內(nèi)核抽象了這VFS,專(zhuān)門(mén)用來(lái)適配各種文件系統(tǒng),并對(duì)外提供統(tǒng)一操作接口。
  2. 磁盤(pán)緩存:磁盤(pán)緩存是一種將磁盤(pán)上的一些數(shù)據(jù)保留著RAM中的軟件機(jī)制,這使得對(duì)這部分?jǐn)?shù)據(jù)的訪問(wèn)可以得到更快的響應(yīng)。磁盤(pán)緩存在Linux中有三種類(lèi)型:Dentry cache ,Page cache , Buffer cache。
  3. 映射層:內(nèi)核從塊設(shè)備上讀取數(shù)據(jù),這樣內(nèi)核就必須確定數(shù)據(jù)在物理設(shè)備上的位置,這由映射層(Mapping Layer)來(lái)完成。
  4. 通用塊層:由于絕大多數(shù)情況的I/O操作是跟塊設(shè)備打交道,所以Linux在此提供了一個(gè)類(lèi)似vfs層的塊設(shè)備操作抽象層。下層對(duì)接各種不同屬性的塊設(shè)備,對(duì)上提供統(tǒng)一的Block IO請(qǐng)求標(biāo)準(zhǔn)。
  5. I/O調(diào)度層:大多數(shù)的塊設(shè)備都是磁盤(pán)設(shè)備,所以有必要根據(jù)這類(lèi)設(shè)備的特點(diǎn)以及應(yīng)用特點(diǎn)來(lái)設(shè)置一些不同的調(diào)度器。
  6. 塊設(shè)備驅(qū)動(dòng):塊設(shè)備驅(qū)動(dòng)對(duì)外提供高級(jí)的設(shè)備操作接口。
  7. 物理硬盤(pán):這層就是具體的物理設(shè)備。

5種類(lèi)型的Linux I/O調(diào)度器

Linux 從2.4內(nèi)核開(kāi)始支持I/O調(diào)度器,到目前為止有5種類(lèi)型:Linux 2.4內(nèi)核的 Linus Elevator、Linux 2.6內(nèi)核的 Deadline、 Anticipatory、 CFQ、 Noop,其中Anticipatory從Linux 2.6.33版本后被刪除了。目前主流的Linux發(fā)行版本使用Deadline、 CFQ、 Noop三種I/O調(diào)度器。下面依次簡(jiǎn)單介紹:

1 Linus Elevator

在2.4 內(nèi)核中它是***種I/O調(diào)度器。它的主要作用是為每個(gè)設(shè)備維護(hù)一個(gè)查詢(xún)請(qǐng)求,當(dāng)內(nèi)核收到一個(gè)新請(qǐng)求時(shí),如果能合并就合并。如果不能合并,就會(huì)嘗試排序。如果既不能合并,也沒(méi)有合適的位置插入,就放到請(qǐng)求隊(duì)列的***。

2 Anticipatory

Anticipatory的中文含義是"預(yù)料的,預(yù)想的",顧名思義有個(gè)I/O發(fā)生的時(shí)候,如果又有進(jìn)程請(qǐng)求I/O操作,則將產(chǎn)生一個(gè)默認(rèn)的6毫秒猜測(cè)時(shí)間,猜測(cè)下一個(gè)進(jìn)程請(qǐng)求I/O是要干什么的。這個(gè)I/O調(diào)度器對(duì)讀操作優(yōu)化服務(wù)時(shí)間,在提供一個(gè)I/O的時(shí)候進(jìn)行短時(shí)間等待,使進(jìn)程能夠提交到另外的I/O。Anticipatory算法從Linux 2.6.33版本后被刪除了,因?yàn)槭褂肅FQ通過(guò)配置也能達(dá)到Anticipatory的效果。

3 DeadLine

Deadline翻譯成中文是截止時(shí)間調(diào)度器,是對(duì)Linus Elevator的一種改進(jìn),它避免有些請(qǐng)求太長(zhǎng)時(shí)間不能被處理。另外可以區(qū)分對(duì)待讀操作和寫(xiě)操作。DEADLINE額外分別為讀I/O和寫(xiě)I/O提供了FIFO隊(duì)列。Deadline的工作流程如圖 2 所示。

圖2 Deadline的工作流程

調(diào)整Linux I/O調(diào)度器優(yōu)化系統(tǒng)性能

調(diào)整Linux I/O調(diào)度器優(yōu)化系統(tǒng)性能

4 CFQ

CFQ全稱(chēng)Completely Fair Scheduler ,中文名稱(chēng)完全公平調(diào)度器,它是現(xiàn)在許多 Linux 發(fā)行版的默認(rèn)調(diào)度器,CFQ是內(nèi)核默認(rèn)選擇的I/O調(diào)度器。它將由進(jìn)程提交的同步請(qǐng)求放到多個(gè)進(jìn)程隊(duì)列中,然后為每個(gè)隊(duì)列分配時(shí)間片以訪問(wèn)磁盤(pán)。對(duì)于通用的服務(wù)器是***的選擇,CFQ均勻地分布對(duì)I/O帶寬的訪問(wèn)。CFQ為每個(gè)進(jìn)程和線(xiàn)程,單***建一個(gè)隊(duì)列來(lái)管理該進(jìn)程所產(chǎn)生的請(qǐng)求,以此來(lái)保證每個(gè)進(jìn)程都能被很好的分配到I/O帶寬,I/O調(diào)度器每次執(zhí)行一個(gè)進(jìn)程的4次請(qǐng)求。該算法的特點(diǎn)是按照I/O請(qǐng)求的地址進(jìn)行排序,而不是按照先來(lái)后到的順序來(lái)進(jìn)行響應(yīng)。簡(jiǎn)單來(lái)說(shuō)就是給所有同步進(jìn)程分配時(shí)間片,然后才排隊(duì)訪問(wèn)磁盤(pán),CFQ的工作流程如圖 3 所示 。

圖3 CFQ的工作流程

調(diào)整Linux I/O調(diào)度器優(yōu)化系統(tǒng)性能

調(diào)整Linux I/O調(diào)度器優(yōu)化系統(tǒng)性能

5 NOOP

NOOP全稱(chēng)No Operation,中文名稱(chēng)電梯式調(diào)度器,該算法實(shí)現(xiàn)了最簡(jiǎn)單的FIFO隊(duì)列,所有I/O請(qǐng)求大致按照先來(lái)后到的順序進(jìn)行操作。NOOP實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的FIFO隊(duì)列,它像電梯的工作主法一樣對(duì)I/O請(qǐng)求進(jìn)行組織。它是基于先入先出(FIFO)隊(duì)列概念的 Linux 內(nèi)核里最簡(jiǎn)單的I/O 調(diào)度器。此調(diào)度程序最適合于固態(tài)硬盤(pán)。NOOP的工作流程如圖4 所示。

圖4 NOOP的工作流程

I/O調(diào)度器的選擇

目前主流Linux發(fā)行版本使用三種I/O調(diào)度器:DeadLine、CFQ、NOOP,通常來(lái)說(shuō)Deadline適用于大多數(shù)環(huán)境,特別是寫(xiě)入較多的文件服務(wù)器,從原理上看,DeadLine是一種以提高機(jī)械硬盤(pán)吞吐量為思考出發(fā)點(diǎn)的調(diào)度算法,盡量保證在有I/O請(qǐng)求達(dá)到最終期限的時(shí)候進(jìn)行調(diào)度,非常適合業(yè)務(wù)比較單一并且I/O壓力比較重的業(yè)務(wù),比如Web服務(wù)器,數(shù)據(jù)庫(kù)應(yīng)用等。CFQ 為所有進(jìn)程分配等量的帶寬,適用于有大量進(jìn)程的多用戶(hù)系統(tǒng),CFQ是一種比較通用的調(diào)度算法,它是一種以進(jìn)程為出發(fā)點(diǎn)考慮的調(diào)度算法,保證大家盡量公平,為所有進(jìn)程分配等量的帶寬,適合于桌面多任務(wù)及多媒體應(yīng)用。NOOP 對(duì)于閃存設(shè)備和嵌入式系統(tǒng)是***的選擇。對(duì)于固態(tài)硬盤(pán)來(lái)說(shuō)使用NOOP是***的,DeadLine次之,而CFQ效率***。

查看Linux系統(tǒng)的 I/O調(diào)度器

查看Linux系統(tǒng)的I/O調(diào)度器一般分成兩個(gè)部分,一個(gè)是查看Linux系統(tǒng)整體使用的I/O調(diào)度器,另一個(gè)是查看某磁盤(pán)使用的I/O調(diào)度器。

查看當(dāng)前系統(tǒng)支持的I/O調(diào)度器,使用如下命令:

清單 1. 查看當(dāng)前系統(tǒng)支持的I/O調(diào)度器

 

  1. # dmesg | grep -i scheduler 
  2. [    1.508820] io scheduler noop registered 
  3. [    1.508827] io scheduler deadline registered 
  4. [    1.508850] io scheduler cfq registered (default

清單1的代碼顯示cfq是目前的I/O調(diào)度器。

查看某塊硬盤(pán)的IO調(diào)度算法I/O調(diào)度器,使用如下命令:

清單2. 查看一個(gè)硬盤(pán)使用的I/O調(diào)度器

 

  1. # cat /sys/block/sda/queue/scheduler 
  2. noop deadline [cfq] 

清單2顯示當(dāng)前使用的調(diào)度器是cfq,就是括號(hào)括起來(lái)的那一個(gè)。

修改Linux系統(tǒng)的 I/O調(diào)度器

修改Linux系統(tǒng)的 I/O調(diào)度器有三種方法,分別是使用shell命令、使用grubby命令或者修改grub配置文件。下面依次介紹:

使用shell命令

Linux下更改的I/O調(diào)度器很簡(jiǎn)單。不需要更新內(nèi)核,可以使用shell命令修改:

清單3. 查使用shell命令

  1. #echo noop > /sys/block/sdb/queue/scheduler 

清單3的命令把noop設(shè)置為一個(gè)磁盤(pán)的I/O調(diào)度器,你可以隨時(shí)更改而無(wú)需重啟計(jì)算機(jī)。

***修改默認(rèn)的I/O調(diào)度器

使用shell命令修改I/O調(diào)度器,只是臨時(shí)修改,系統(tǒng)重啟后,修改的調(diào)度器就會(huì)失效,要想修改默認(rèn)的調(diào)度器,有兩種方法使用grubby命令或者直接編輯grub配置文件。

使用grubby命令

例如需要把I/O調(diào)度器從cfq調(diào)整成 DeadLine ,命令如下:

清單4.使用grubby命令

  1. # grubby --grub --update-kernel=ALL --args="elevator=deadline" 

清單4的命令,通過(guò)設(shè)置內(nèi)核加載參數(shù), 這樣當(dāng)機(jī)器重啟的時(shí)候,系統(tǒng)自動(dòng)把所有設(shè)備的 I/O調(diào)度器變成 DeadLine 。

使用編輯器修改配置文件

也可以直接編輯grub的配置文件 ,通過(guò)修改grub配置文件,系統(tǒng)自動(dòng)把所有設(shè)備的 I/O調(diào)度器變成cfq。操作過(guò)程如下:

清單5 使用vi編輯器修改grub配置文件

 

  1. #vi cat /etc/default/grub 
  2. #修改第五行,在行尾添加# 
  3. elevator= cfq  
  4. 然后保存文件,重新編譯配置文件, 
  5. #grub2-mkconfig -o /boot/grub2/grub.cfg 

重新啟動(dòng)計(jì)算機(jī)系統(tǒng)即可。

總結(jié)

Linux I/O調(diào)度器是 Linux 內(nèi)核中的一個(gè)組成部分,用戶(hù)可以通過(guò)根據(jù)不同的存儲(chǔ)器來(lái)設(shè)置 Linux I/O 調(diào)度器從而達(dá)到優(yōu)化系統(tǒng)性能。 一般來(lái)說(shuō) NOOP 調(diào)度器最適合于固態(tài)硬盤(pán),DeadLine 調(diào)度器適用于寫(xiě)入較多的文件服務(wù)器,比如Web服務(wù)器,數(shù)據(jù)庫(kù)應(yīng)用等,而CFQ 調(diào)度器適合于桌面多任務(wù)及媒體應(yīng)用。

責(zé)任編輯:未麗燕 來(lái)源: IBM developerWorks中國(guó)
相關(guān)推薦

2019-12-02 09:45:45

Linux IO系統(tǒng)

2017-02-09 09:00:14

Linux IO調(diào)度器

2010-04-23 11:44:34

Aix系統(tǒng)

2017-03-25 21:33:33

Linux調(diào)度器

2009-09-29 10:39:04

Linuxlinux系統(tǒng)性能檢測(cè)

2010-04-09 13:26:44

2022-04-23 16:30:22

Linux磁盤(pán)性能

2019-02-25 08:40:28

Linux磁盤(pán)IO

2011-05-25 13:55:02

Oracle

2022-07-26 10:28:00

Linux監(jiān)控命令

2011-01-05 13:48:55

Linux提高性能

2013-03-20 17:18:07

Linux系統(tǒng)性能調(diào)優(yōu)

2021-08-10 08:44:13

系統(tǒng)性能優(yōu)化

2009-10-10 10:10:29

服務(wù)器IO

2014-07-28 16:47:41

linux性能

2010-04-25 23:39:42

2015-12-17 14:32:46

NmonLinux性能

2013-03-12 17:33:17

Linux系統(tǒng)性能調(diào)優(yōu)

2017-08-11 19:13:01

LinuxNmon系統(tǒng)監(jiān)控工具

2019-01-04 13:30:58

系統(tǒng) 優(yōu)化 數(shù)據(jù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产日韩欧美中文 | 91久久北条麻妃一区二区三区 | 夜夜爽99久久国产综合精品女不卡 | 中文字幕专区 | 欧美日韩黄 | 国产精品视频久久久久久 | 男女av| 国产精品久久久久久久久久久久冷 | 免费看黄视频网站 | 亚洲欧美视频在线观看 | a在线观看| 久久国产精品久久 | 一道本在线 | 午夜一区二区三区在线观看 | 伦理二区 | 精品av天堂毛片久久久借种 | 激情六月丁香 | 亚洲第1页 | 国产精品乱码一区二区三区 | 一区二区三区中文字幕 | 成人综合在线视频 | 一区二区三区播放 | 亚洲成色777777在线观看影院 | 国产精品不卡 | 国产中文一区二区三区 | 欧美视频在线看 | 国产高清一区二区三区 | 成人精品毛片国产亚洲av十九禁 | 国产精品久久久久久久久久免费 | 欧美精品在线免费观看 | 久久久久久91 | 一区二区在线看 | 一级黄色片美国 | 暖暖成人免费视频 | 91久久久久 | 日韩美香港a一级毛片免费 国产综合av | 99re国产精品 | 一级片av | 男人阁久久| 欧美日韩视频在线第一区 | 精品欧美一区二区三区久久久 |