日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux系统硬盘使用过高,磁盘IO过高时的处理办法

發布時間:2025/5/22 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux系统硬盘使用过高,磁盘IO过高时的处理办法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉:

http://www.cnblogs.com/wjoyxt/p/4808024.html

針對系統中磁盤IO負載過高的指導性操作

主要命令:

echo deadline > /sys/block/sda/queue/scheduler

注:以下的內容僅是提供參考,

如果磁盤IO確實比較大的話,是數據庫,可以進行讀寫分離或者分庫操作,減小磁盤壓力,文件的話,可以利用raid來減輕壓力

一)I/O調度程序的總結:

1)當向設備寫入數據塊或是從設備讀出數據塊時,請求都被安置在一個隊列中等待完成.

2)每個塊設備都有它自己的隊列.

3)I/O調度程序負責維護這些隊列的順序,以更有效地利用介質.I/O調度程序將無序的I/O操作變為有序的I/O操作.

4)內核必須首先確定隊列中一共有多少個請求,然后才開始進行調度.

二)I/O調度的4種算法

1)CFQ(完全公平排隊I/O調度程序)

特點:

在最新的內核版本和發行版中,都選擇CFQ做為默認的I/O調度器,對于通用的服務器也是最好的選擇.

CFQ試圖均勻地分布對I/O帶寬的訪問,避免進程被餓死并實現較低的延遲,是deadline和as調度器的折中.

CFQ對于多媒體應用(video,audio)和桌面系統是最好的選擇.

CFQ賦予I/O請求一個優先級,而I/O優先級請求獨立于進程優先級,高優先級的進程的讀寫不能自動地繼承高的I/O優先級.

工作原理:

CFQ為每個進程/線程,單獨創建一個隊列來管理該進程所產生的請求,也就是說每個進程一個隊列,各隊列之間的調度使用時間片來調度,

以此來保證每個進程都能被很好的分配到I/O帶寬.I/O調度器每次執行一個進程的4次請求.

2)NOOP(電梯式調度程序)----

適用于SSD固態硬盤。

在新興的固態硬盤比如SSD、Fusion IO上,最簡單的NOOP反而可能是最好的算法,因為其他三個算法的優化是基于縮短尋道時間的,而固態硬盤沒有所謂的尋道時間且IO響應時間非常短。

特點:

在Linux2.4或更早的版本的調度程序,那時只有這一種I/O調度算法.

NOOP實現了一個簡單的FIFO隊列,它像電梯的工作主法一樣對I/O請求進行組織,當有一個新的請求到來時,它將請求合并到最近的請求之后,以此來保證請求同一介質.

NOOP傾向餓死讀而利于寫.

NOOP對于閃存設備,RAM,嵌入式系統是最好的選擇.

電梯算法餓死讀請求的解釋:

因為寫請求比讀請求更容易.

寫請求通過文件系統cache,不需要等一次寫完成,就可以開始下一次寫操作,寫請求通過合并,堆積到I/O隊列中.

讀請求需要等到它前面所有的讀操作完成,才能進行下一次讀操作.在讀操作之間有幾毫秒時間,而寫請求在這之間就到來,餓死了后面的讀請求.

3)Deadline(截止時間調度程序)

特點:

通過時間以及硬盤區域進行分類,這個分類和合并要求類似于noop的調度程序.

Deadline確保了在一個截止時間內服務請求,這個截止時間是可調整的,而默認讀期限短于寫期限.這樣就防止了寫操作因為不能被讀取而餓死的現象.

Deadline對數據庫環境(ORACLE RAC,MYSQL等)是最好的選擇.

4)AS(預料I/O調度程序)

特點:

本質上與Deadline一樣,但在最后一次讀操作后,要等待6ms,才能繼續進行對其它I/O請求進行調度.

可以從應用程序中預訂一個新的讀請求,改進讀操作的執行,但以一些寫操作為代價.

它會在每個6ms中插入新的I/O操作,而會將一些小寫入流合并成一個大寫入流,用寫入延時換取最大的寫入吞吐量.

AS適合于寫入較多的環境,比如文件服務器

AS對數據庫環境表現很差.

三)I/O調度方法的查看與設置

1)查看當前系統的I/O調度方法:

[root@test1 tmp]#

cat /sys/block/

sda

/queue/scheduler

noop anticipatory deadline

[cfq]

2)臨地更改I/O調度方法:

例如:想更改到noop電梯調度算法:

echo?deadline > /sys/block/

sda

/queue/scheduler

3)想永久的更改I/O調度方法: 如下

修改內核引導參數,加入elevator=調度程序名

[root@test1 tmp]#

vi /boot/grub/menu.lst

更改到如下內容:

kernel /boot/vmlinuz-2.6.18-8.el5 ro root=LABEL=/

elevator=deadline

rhgb quiet

重啟之后,查看調度方法:

[root@test1 ~]# cat /sys/block/sda/queue/scheduler

noop anticipatory

[deadline]

cfq

已經是deadline了

四)I/O調度程序的測試

本次測試分為只讀,只寫,讀寫同時進行.

分別對單個文件600MB,每次讀寫2M,共讀寫300次.

1)測試磁盤讀:

[root@test1 tmp]# echo deadline > /sys/block/sda/queue/scheduler

[root@test1 tmp]#

time dd if=/dev/sda1 f=/dev/null bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 6.81189 seconds, 92.4 MB/s

real??? 0m6.833s

user??? 0m0.001s

sys???? 0m4.556s

[root@test1 tmp]# echo noop > /sys/block/sda/queue/scheduler

[root@test1 tmp]# time dd if=/dev/sda1 f=/dev/null bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 6.61902 seconds, 95.1 MB/s

real??? 0m6.645s

user??? 0m0.002s

sys???? 0m4.540s

[root@test1 tmp]# echo anticipatory > /sys/block/sda/queue/scheduler

[root@test1 tmp]# time dd if=/dev/sda1 f=/dev/null bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 8.00389 seconds, 78.6 MB/s

real??? 0m8.021s

user??? 0m0.002s

sys???? 0m4.586s

[root@test1 tmp]# echo cfq > /sys/block/sda/queue/scheduler

[root@test1 tmp]# time dd if=/dev/sda1 f=/dev/null bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 29.8 seconds, 21.1 MB/s

real??? 0m29.826s

user??? 0m0.002s

sys???? 0m28.606s

結果:

第一 noop:用了6.61902秒,速度為95.1MB/s

第二 deadline:用了6.81189秒,速度為92.4MB/s

第三 anticipatory:用了8.00389秒,速度為78.6MB/s

第四 cfq:用了29.8秒,速度為21.1MB/s

2)測試寫磁盤:

[root@test1 tmp]# echo cfq > /sys/block/sda/queue/scheduler

[root@test1 tmp]#

time dd if=/dev/zero f=/tmp/test bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 6.93058 seconds, 90.8 MB/s

real??? 0m7.002s

user??? 0m0.001s

sys???? 0m3.525s

[root@test1 tmp]# echo anticipatory > /sys/block/sda/queue/scheduler

[root@test1 tmp]# time dd if=/dev/zero f=/tmp/test bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 6.79441 seconds, 92.6 MB/s

real??? 0m6.964s

user??? 0m0.003s

sys???? 0m3.489s

[root@test1 tmp]# echo noop > /sys/block/sda/queue/scheduler

[root@test1 tmp]# time dd if=/dev/zero f=/tmp/test bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 9.49418 seconds, 66.3 MB/s

real??? 0m9.855s

user??? 0m0.002s

sys???? 0m4.075s

[root@test1 tmp]# echo deadline > /sys/block/sda/queue/scheduler

[root@test1 tmp]# time dd if=/dev/zero f=/tmp/test bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 6.84128 seconds, 92.0 MB/s

real??? 0m6.937s

user??? 0m0.002s

sys???? 0m3.447s

測試結果:

第一 anticipatory,用了6.79441秒,速度為92.6MB/s

第二 deadline,用了6.84128秒,速度為92.0MB/s

第三 cfq,用了6.93058秒,速度為90.8MB/s

第四 noop,用了9.49418秒,速度為66.3MB/s

3)測試同時讀/寫

[root@test1 tmp]# echo deadline > /sys/block/sda/queue/scheduler

[root@test1 tmp]# dd if=/dev/sda1 f=/tmp/test bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 15.1331 seconds, 41.6 MB/s

[root@test1 tmp]# echo cfq > /sys/block/sda/queue/scheduler

[root@test1 tmp]# dd if=/dev/sda1 f=/tmp/test bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 36.9544 seconds, 17.0 MB/s

[root@test1 tmp]# echo anticipatory > /sys/block/sda/queue/scheduler

[root@test1 tmp]# dd if=/dev/sda1 f=/tmp/test bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 23.3617 seconds, 26.9 MB/s

[root@test1 tmp]# echo noop > /sys/block/sda/queue/scheduler

[root@test1 tmp]# dd if=/dev/sda1 f=/tmp/test bs=2M count=300

300+0 records in

300+0 records out

629145600 bytes (629 MB) copied, 17.508 seconds, 35.9 MB/s

測試結果:

第一 deadline,用了15.1331秒,速度為41.6MB/s

第二 noop,用了17.508秒,速度為35.9MB/s

第三 anticipatory,用了23.3617秒,速度為26.9MS/s

第四 cfq,用了36.9544秒,速度為17.0MB/s

五)ionice

ionice可以更改任務的類型和優先級,不過只有cfq調度程序可以用ionice.

有三個例子說明ionice的功能:

采用cfq的實時調度,優先級為7

ionice -c1 -n7? -ptime dd if=/dev/sda1 f=/tmp/test bs=2M count=300&

采用缺省的磁盤I/O調度,優先級為3

ionice -c2 -n3? -ptime dd if=/dev/sda1 f=/tmp/test bs=2M count=300&

采用空閑的磁盤調度,優先級為0

ionice -c3 -n0? -ptime dd if=/dev/sda1 f=/tmp/test bs=2M count=300&

ionice的三種調度方法,實時調度最高,其次是缺省的I/O調度,最后是空閑的磁盤調度.

ionice的磁盤調度優先級有8種,最高是0,最低是7.

注意,磁盤調度的優先級與進程nice的優先級沒有關系。

一個是針對進程I/O的優先級,一個是針對進程CPU的優先級。

總結:

1、CFQ和DEADLINE考慮的焦點在于滿足零散IO請求上。對于連續的IO請求,比如順序讀,并沒有做優化。為了滿足隨機IO和順序IO混合的場景,Linux還支持ANTICIPATORY調度算法。ANTICIPATORY的在DEADLINE的基礎上,為每個讀IO都設置了6ms的等待時間窗口。如果在這6ms內OS收到了相鄰位置的讀IO請求,就可以立即滿足。

IO調度器算法的選擇,既取決于硬件特征,也取決于應用場景。

在傳統的SAS盤上,CFQ、DEADLINE、ANTICIPATORY都是不錯的選擇;

對于專屬的數據庫服務器,DEADLINE的吞吐量和響應時間都表現良好

然而

在新興的固態硬盤比如SSD、Fusion IO上,最簡單的NOOP反而可能是最好的算法,因為其他三個算法的優化是基于縮短尋道時間的,而固態硬盤沒有所謂的尋道時間且IO響應時間非常短。

2、對于數據庫應用, Anticipatory Scheduler 的表現是最差的。Deadline 在 DSS 環境表現比 cfq 更好一點,而

cfq 綜合來看表現更好一些

。這也難怪 RHEL默認的 IO 調度器設置為 cfq

總結

以上是生活随笔為你收集整理的linux系统硬盘使用过高,磁盘IO过高时的处理办法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品久久久无码中文字幕边打电话 | 国产一区二区三区日韩 | 日本国产精品视频 | 中文字幕3区 | 超碰人人91 | 豆国产97在线 | 亚洲 | 丰满少妇被猛烈进入无码 | 国产网友自拍 | 亚洲天堂国产精品 | 精彩视频一区二区三区 | 夜夜骑夜夜操 | av福利在线免费观看 | 美女扒开下面让男人捅 | 在线观看中文字幕亚洲 | 日韩专区在线观看 | 亚洲三级在线 | 三a大片| 男人的天堂视频网站 | 亚洲中文字幕无码一区 | 国产高清视频免费在线观看 | 91九色蝌蚪91por成人 | 天天爽夜夜爽人人爽 | 伊人久久天堂 | 日本免费一区二区三区视频 | 精品人妻伦一二三区久久 | 污污的视频软件 | 波多野结衣在线播放视频 | 国产一级精品毛片 | 婷婷激情成人 | 边添小泬边狠狠躁视频 | av资源在线看 | 中文av网站 | 日韩欧美高清dvd碟片 | 中文字幕精品视频在线 | 欧美日韩国产一区 | 欧美日韩综合在线 | 日本在线观看网站 | 懂色av一区二区三区蜜臀 | 五月天婷婷久久 | 成人久久精品人妻一区二区三区 | 天天噜日日噜 | 国产xxx在线观看 | 国产做受入口竹菊 | 全黄毛片 | 久久久毛片 | 欧美福利视频在线观看 | jizz免费 | 日本在线视频一区二区 | 美女午夜激情 | 成人中文字幕在线观看 | 欧美色交 | 亚洲AV无码精品色毛片浪潮 | 一本大道熟女人妻中文字幕在线 | 99av国产精品欲麻豆 | 久久这里只有精品23 | 日韩中文字幕 | 亚洲www色 | 久久入| 台湾少妇xxxx做受 | av电影一区二区 | 精品人妻一区二区三区日产 | 亚洲国产91 | 神马影院午夜伦理 | 中文字幕91在线 | 九色精品视频 | 欧美日韩大片 | 日韩精品免费在线观看 | 国产精品一区在线免费观看 | av在线操 | 国产精品成人国产乱 | 欧美日韩黄色片 | 黄色一级片| 欧美日韩亚洲色图 | 啪啪中文字幕 | 乐播av一区二区三区 | 久久精品大片 | 日韩免费大片 | 成人一区二区精品 | 涩涩五月天 | 精品无码久久久久久久久果冻 | 尤物精品 | 午夜视频在线网站 | 亚州av综合色区无码一区 | 熟妇高潮一区二区高潮 | 视频二区在线 | 欧美一区二区三区电影 | 久久精品国产清自在天天线 | 亚洲永久免费观看 | 亚洲一卡二卡三卡 | 国产又粗又猛又色 | 中文字幕视频观看 | 亚洲免费视频一区二区 | 久久久久久网站 | 最新av在线网站 | 国产婷婷一区二区三区久久 | 天天射天天搞 | 午夜刺激视频 | 九九久久网| 宅男av |