青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Linux IO系統(tǒng)的架構圖


 

一.設備-------- 影響磁盤性能的因素

硬盤的轉速影響硬盤的整體性能。一般情況下轉速越大,性能會越好。

硬盤的性能因素主要包括兩個:1.平均訪問時間2傳輸速率。

 

平均訪問時間包括兩方面因素:

平均尋道時間(Average Seek Time)是指硬盤的磁頭移動到盤面指定磁道所需的時間。一般在3ms至15ms之間。

平均旋轉等待時間(Latency)是指磁頭已處于要訪問的磁道,等待所要訪問的扇區(qū)旋轉至磁頭下方的時間。一般在2ms至6ms之間。

 

傳輸速率(Data Transfer Rate) 硬盤的數(shù)據傳輸率是指硬盤讀寫數(shù)據的速度,單位為兆字節(jié)每秒(MB/s)。磁盤每秒能傳輸80M~320M字節(jié)。

 

傳輸速率包括內部傳輸速率和外部傳輸速率。

內部傳輸率(Internal Transfer Rate) 也稱為持續(xù)傳輸率(Sustained Transfer Rate),它反映了硬盤緩沖區(qū)未用時的性能。內部傳輸率主要依賴于硬盤的旋轉速度。

外部傳輸率(External Transfer Rate)也稱為突發(fā)數(shù)據傳輸率Burst Data Transfer Rate)或接口傳輸率,它標稱的是系統(tǒng)總線與硬盤緩沖區(qū)之間的數(shù)據傳輸率,外部數(shù)據傳輸率與硬盤接口類型硬盤緩存的大小有關。STAT2 的傳輸速率在300MB/s級別。

 

因此在硬件級上,提高磁盤性能的關鍵主要是降低平均訪問時間。

二.設備驅動

內存到硬盤的傳輸方式:poll,中斷,DMA

 

DMA:當 CPU 初始化這個傳輸動作,傳輸動作本身是由 DMA 控制器 來實行和完成。

DMA控制器獲得總線控制權后,CPU即刻掛起或只執(zhí)行內部操作,由DMA控制器輸出讀寫命令,直接控制RAM與I/O接口進行DMA傳輸。DMA每次傳送的是磁盤上相鄰的扇區(qū)。Scatter-gather DMA允許傳送不相鄰的扇區(qū)。

 

CPU性能與硬盤與內存的數(shù)據傳輸速率關系不大。

 

設備驅動內有一個結構管理著IO的請求隊列

structrequest_queue(include/linux/Blkdev.h

這里不僅僅有讀寫請求的數(shù)據塊,還有用于IO調度的回調函數(shù)結構。每次需要傳輸?shù)臅r候,就從隊列中選出一個數(shù)據塊交給DMA進行傳輸。

 

所以IO調度的回調函數(shù)這是降低平均訪問的時間的關鍵。

 

三.OS

IO調度器

Linux kernel提供了四個調度器供用戶選擇。他們是noop,cfq,deadline,as??梢栽谙到y(tǒng)啟動時設置內核參數(shù)elevator=<name>來指定默認的調度器。也可以在運行時為某個塊設備設置IO調度程序。

 

下面來簡要介紹這四個調度器的電梯調度算法。

Noop:最簡單的調度算法。新的請求總是被添加到隊頭或者隊尾,然后總是從隊頭中選出將要被處理的請求。

 

CFQ:(Complete FarinessQueueing)它的目標是在所有請求的進程中平均分配IO的帶寬。因此,它會根據進程創(chuàng)建自己的請求隊列,然后將IO請求放入相應的隊列中。在使用輪轉法從每個非空的隊列中取出IO請求。

 

Deadline:使用了四個隊列,兩個以磁盤塊序號排序的讀寫隊列,兩個以最后期限時間排序的讀寫隊列。算法首先確定下一個讀寫的方向,讀的優(yōu)先級高于寫。然后檢查被選方向的最后期限隊列:如果最后期限時間的隊列中有超時的請求,則將剛才的請求移動至隊尾,然后在磁盤號排序隊列中從超時請求開始處理。當處理完一個方向的請求后,在處理另一個方向的請求。(讀請求的超時時間是500ms,寫請求的超時時間是5s

 

Anticipatory:它是最復雜的IO調度算法。和deadline算法一樣有四個隊列。還附帶了一些啟發(fā)式策略。它會從當前的磁頭位置后的磁盤號中選擇請求。在調度了一個由P進程的IO請求后,會檢查下一個請求,如果還是P進程的請求,則立即調度,如果不是,同時預測P進程很快會發(fā)出請求,則還延長大約7ms的時間等待P進程的IO請求。

 

 

 

Write/Read函數(shù)

以ext3的write為例:

系統(tǒng)調用write()的作用就是修改頁高速緩存內的一些頁的內容,如果頁高速緩存內沒有所要的頁則分配并追加這些頁。

當臟頁達到一定數(shù)量或者超時后,將臟頁刷回硬盤。也可以執(zhí)行相關系統(tǒng)調用。

 

為什么要達到一定數(shù)量,是因為延遲寫能在一定層度上提高系統(tǒng)的性能,這也使得塊設備的平均讀請求會多于寫請求。

 

在程序中調用write函數(shù),將進入系統(tǒng)調用f_op->write。這個函數(shù)將調用ext3的do_sync_write。這個函數(shù)將參數(shù)封裝后調用generic_file_aio_write。由參數(shù)名可以看出同步寫變成了異步寫。如果沒有標記O_DIRECT,將調用函數(shù)generic_file_buffered_write將寫的內容寫進kernel的高速頁緩存中。Buffer是以page為單位即4k。之后當調用cond_resched()進行進程的調度,DMA會將buffer中的內容寫進硬盤。

所以當每次以4k為單位寫入硬盤時效率會達到最高。下面是UNIX環(huán)境高級編程的實驗結果:


下圖是linux 的塊設備的數(shù)據操作層次:

Sector扇區(qū):是設備驅動和IO調度程序處理數(shù)據粒度。

Block塊:是VFS和文件系統(tǒng)處理數(shù)據的粒度。其大小不唯一,可以是512,1024,2048,4096字節(jié)。內核操作的塊大小是4096字節(jié)。

Segment段:是DMA傳送的單位。每一個段包含了相鄰的扇區(qū),它能使DMA傳送不相鄰的扇區(qū)。


 

四.用戶程序

根據以上的分析,我們的write buffer一般設置為4K的倍數(shù)。

 

在程序中有意識的延遲寫。這個是os的策略,當然也可以應用到程序的設計中。當然也會有缺點:1.如果硬件錯誤或掉電,則會丟失內容(做額外的備份)2.需要額外的內存空間。(犧牲內存來提高IO的效率)

 

我們還需根據系統(tǒng)的IO調度器的調度策略,設計出不同的IO策略。盡量降低磁盤的平均訪問時間,降低請求隊列,提高數(shù)據傳輸?shù)乃俾省?/span>

 

 

 

五.監(jiān)控硬盤的工具和指標

Iostat–x –k 1

 -x顯示更多的消息 -k數(shù)據以KB為單位 1每秒顯示一次

輸出顯示的信息

Iowait:cpu等待未完成的IO請求而空閑的時間的比例。

Idle:cpu空閑且無IO請求的比例。

rrqm/s:每秒這個設備相關的讀取請求有多少被Merge了。

wrqm/s:每秒這個設備相關的寫入請求有多少被Merge了。

rsec/s:每秒讀取的扇區(qū)數(shù);

wsec/:每秒寫入的扇區(qū)數(shù)。

r/s:每秒完成的讀 I/O 設備次數(shù)。即 delta(rio)/s

w/s:每秒完成的寫 I/O 設備次數(shù)。即 delta(wio)/s

await:每一個IO請求的處理的平均時間(單位是毫秒)。包括加入請求隊列和服務的時間。

svctm:   平均每次設備I/O操作的服務時間。

avgrq-sz: 平均每次設備I/O操作的數(shù)據大小 (扇區(qū))。即 delta(rsect+wsect)/delta(rio+wio)
avgqu-sz:
平均I/O隊列長度。即 delta(aveq)/s/1000 (因為aveq的單位為毫秒)。

%util:在統(tǒng)計時間內所有處理IO時間,除以總共統(tǒng)計時間。例如,如果統(tǒng)計間隔1秒,該設備有0.8秒在處理IO,而0.2秒閑置,那么該設備的%util = 0.8/1 = 80%,所以該參數(shù)暗示了設備的繁忙程度。一般地,如果該參數(shù)是100%表示設備已經接近滿負荷運行了(當然如果是多磁盤,即使%util是100%,因為磁盤的并發(fā)能力,所以磁盤使用未必就到了瓶頸)。

 

下面我們做一個實驗來分析一下

我們使用命令

time dd if=/dev/zero of=/home/zhouyuan/mytest bs=1M count=3000

向mytest寫入數(shù)據,寫入3G。

截取部分的狀態(tài)監(jiān)控:




 

如圖2,當兩條數(shù)據 iowait 達到了 99% 以上,寫入的數(shù)據是0,這是因為DMA將內存的中的數(shù)據傳輸給設備。結合圖1的前兩條數(shù)據,利用率達到了99%+卻沒有寫入的磁盤塊。

如圖3,iowait下降,說明cpu開始執(zhí)行相關程序,而此時塊設備開始寫入的數(shù)據。這兩個操作是異步進行的。

 

Vmstat–k –n 1

Swap

  si: 從磁盤交換到內存的交換頁數(shù)量,單位:KB/

  so: 從內存交換到磁盤的交換頁數(shù)量,單位:KB/

IO

  bi: 從塊設備接受的塊數(shù),單位:塊/

  bo: 發(fā)送到塊設備的塊數(shù),單位:塊/



從圖中我們可以看出系統(tǒng)的延遲寫。

posted on 2011-08-26 20:04 Range 閱讀(17197) 評論(2)  編輯 收藏 引用
評論
  • # re: 服務器高性能程序 磁盤I/O篇
    糯米
    Posted @ 2011-08-26 22:23
    不錯,贊一個!  回復  更多評論   
  • # re: 服務器高性能程序 磁盤I/O篇
    飯中淹
    Posted @ 2011-08-26 23:29
    支持,以前從未關注過高性能磁盤IO。
      回復  更多評論   

統(tǒng)計

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美 日韩 国产精品免费观看| 99精品国产在热久久婷婷| 亚洲欧美在线网| 亚洲午夜一二三区视频| 国产精品女人久久久久久| 欧美一区日韩一区| 久久久精品网| 亚洲精品一区二区三区av| 亚洲精品一区在线观看| 国产精品成人一区二区艾草| 欧美在线观看视频一区二区| 久久精品人人做人人爽电影蜜月| 亚洲国产一区二区三区a毛片| 亚洲精品免费电影| 欧美日韩中文精品| 久久激情久久| 欧美国产先锋| 性做久久久久久久久| 久久视频免费观看| 一个色综合av| 久久久精品国产免大香伊| 亚洲九九爱视频| 亚洲男同1069视频| 最新精品在线| 亚洲嫩草精品久久| 99国产精品国产精品久久 | 亚洲天堂免费观看| 欧美一区二区性| 亚洲最新色图| 久久不见久久见免费视频1| 亚洲精品看片| 欧美在线高清视频| 亚洲一二三区在线观看| 久久久综合精品| 午夜精品在线| 欧美日韩二区三区| 美女露胸一区二区三区| 亚洲裸体在线观看| 久久综合给合| 欧美一区二区在线免费播放| 免费成人毛片| 小黄鸭视频精品导航| 欧美精品成人一区二区在线观看 | 999亚洲国产精| 在线播放精品| 翔田千里一区二区| 亚洲图片自拍偷拍| 欧美精品入口| 欧美激情一区二区三区在线视频观看| 国产精品亚洲综合色区韩国| 亚洲精品中文字幕有码专区| 亚洲第一视频| 久久久噜噜噜久噜久久| 久久国产精品99精品国产| 国产精品国产三级国产专区53| 亚洲高清在线观看| 亚洲国产一二三| 久久女同互慰一区二区三区| 久久精品国产一区二区电影 | 怡红院精品视频| 欧美在线三级| 久久久久久亚洲综合影院红桃 | 久久久久久久性| 久久人人97超碰人人澡爱香蕉 | 欧美国产日本| 亚洲欧洲三级| 一级日韩一区在线观看| 欧美精品一线| 9色精品在线| 亚洲欧美日韩国产中文在线| 国产精品久久久久91| 亚洲一区二区日本| 午夜在线观看免费一区| 国产日韩欧美精品一区| 校园春色综合网| 久久综合九色九九| 亚洲国产日韩欧美在线图片| 欧美成人精品影院| 一区二区精品在线| 欧美一区二区大片| 亚洲第一免费播放区| 欧美成熟视频| 亚洲一区二区av电影| 久久精品成人一区二区三区 | 欧美日韩国产免费| 亚洲一区二区三区三| 久久久久国产一区二区三区四区 | 欧美视频不卡中文| 亚洲免费影院| 麻豆av福利av久久av| 亚洲精品中文在线| 国产精品一二三视频| 久久影院午夜片一区| 亚洲精品国产精品国自产观看| 亚洲综合电影| 日韩视频在线一区| 最新国产成人av网站网址麻豆| 亚洲电影第1页| 欧美人与性动交cc0o| 亚洲男同1069视频| 欧美激情中文字幕乱码免费| 亚洲主播在线| 亚洲国产毛片完整版| 国产精品成人v| 欧美成人午夜| 欧美一区二区三区在线看 | 亚洲一区二区三区色| 极品日韩av| 国产精品免费在线| 欧美激情a∨在线视频播放| 亚洲欧美一区在线| 99精品欧美一区二区三区| 麻豆视频一区二区| 欧美一级久久久| 一区二区三区福利| 亚洲国产成人久久综合| 国产欧美精品在线播放| 欧美日韩精品国产| 欧美.日韩.国产.一区.二区| 欧美一级在线视频| 亚洲一级在线观看| 一本色道久久综合亚洲精品婷婷| 欧美 日韩 国产一区二区在线视频| 欧美一级大片在线免费观看| 日韩视频久久| 亚洲美女黄色片| 在线电影院国产精品| 国产婷婷成人久久av免费高清| 欧美色图天堂网| 欧美精品麻豆| 欧美高清视频| 免费亚洲一区二区| 另类成人小视频在线| 久久久久一区二区三区四区| 先锋资源久久| 午夜日韩视频| 先锋影院在线亚洲| 欧美一级欧美一级在线播放| 亚洲欧美美女| 小辣椒精品导航| 午夜在线视频观看日韩17c| 亚洲综合999| 欧美一区91| 久久久久久**毛片大全| 久久久久久久一区二区| 久久久欧美一区二区| 久久在线精品| 欧美激情久久久| 欧美日韩在线亚洲一区蜜芽| 欧美视频日韩视频在线观看| 欧美调教视频| 国产欧美一区在线| 韩国在线一区| 亚洲经典自拍| 中文在线不卡| 久久福利一区| 欧美3dxxxxhd| 亚洲日韩欧美视频一区| 中国av一区| 久久国产夜色精品鲁鲁99| 麻豆乱码国产一区二区三区| 欧美国产精品va在线观看| 欧美日韩亚洲国产精品| 国产乱码精品| 亚洲激情综合| 亚洲欧美日韩爽爽影院| 久久久最新网址| 亚洲精品日韩在线观看| 亚洲中无吗在线| 久久视频国产精品免费视频在线| 欧美黑人国产人伦爽爽爽| 国产精品久久久久久av福利软件| 国产一区二区三区丝袜| 亚洲精选大片| 欧美在线播放| 久久久最新网址| 国产午夜精品理论片a级大结局| 曰韩精品一区二区| 亚洲手机成人高清视频| 久久亚洲综合色一区二区三区| 亚洲高清成人| 欧美一区二区三区电影在线观看| 免费高清在线一区| 国产精品夜夜夜一区二区三区尤| 亚洲欧洲日夜超级视频| 欧美亚洲专区| 亚洲美女精品久久| 久久久久www| 国产精品久久久久999| 亚洲人成高清| 久久综合精品国产一区二区三区| 99国产一区| 欧美sm极限捆绑bd| 国产一区二区三区视频在线观看 | 亚洲少妇自拍| 亚洲第一综合天堂另类专| 欧美一区二区三区在线免费观看 | 欧美一级电影久久| 欧美视频四区| 一本久久a久久精品亚洲|