銝 擐隞蝝寧′蝣 I/O Scheduler
# o" o A0 E' s, P( p
+ C' I$ M# |1 A8 {% \8 }9 H0 R6 G$ }3 b+ R ^8 e1 f: W4 d
I/O Scheduler臭暻潘Wiki隤芣:
) P* Y2 ~5 N' N/ A/ fInput / Output Scheduling or I/O Scheduling is a term used to describe the method computer operating systems decide the order that block I/O operations will be submitted to storage volumes. I/O Scheduling is sometimes called 'disk scheduling'.
, ?$ o3 v" |4 V& g2 }$ x- H* _* T! M5 e' }+ _
0 f6 g2 j+ P2 B W' E# T蝪∪桃隤迎撠望航臭誑蝬曹閮剖嚗靘啗矽渡蝣摮(I/O)璅∪銝蝔株身摰撌亙瑯1 ^8 {4 o# {0 l
; K" R e7 i, K }! l+ B6 O
2 [* n7 M" u. i& G桀Linux舀游蝔埋/O Schedule璅∪嚗亦:/ |* x9 y# c2 G- W Y
; S; t' p! V$ O% Y, G# V3 d' p! Y: |8 O4 ^
Noop Scheduler (蝪∠迂noop) -- RIAD SSD 撱箄降雿輻 noop
0 l8 }. `9 b# R/ y# L臭誑蝞舀箸砌蝪∪Scheduler嚗銝餉冽潔鈭頛箇孵亦頠擃蝖祇剝雿啣銝哨銝鈭頠/蝖祇撌脩瑕芸楛I/O摮璈塚銝撠潛頂蝯望詨閬瘙頛撠嚗璅Scheduler瘥頛拙典典亙啣蝟餌絞銝准
1 M: u- i" }1 f4 b
& x0 R0 t6 u# ^1 A) g9 M; y! B& R; c% T9 k; E0 P" {6 l$ b
Completely Fair Queuing (蝪∠迂cfq)3 L7 O" t' M1 Z+ [& s% L4 ?$ ?' o
憿批蝢抬撠蝖祉蝟餌絞冽閬I/O隞餃嚗蝯衣詨雿摨(Queuing)嚗璅Scheduler拙冽潔砌蝙刻獢銝餉衣雿啣嚗芸2006撟12Linux Kernel 2.6.18銝渲喃伐CFQ Scheduler銝湔烊inux詨閮剔 I/O scheduler: g* ~( x6 J6 t9 z: ~
5 k$ g! w3 `5 k4 M8 c' t
. Y! w$ r1 N4 xAnticipatory Scheduling (蝪∠迂anticipatory)
/ z8 t4 [, I$ E* }曄銝摨行烊inux 2.6 Kernel 閮 I/O Scheduler 嚗婢nticipatory (/) 摮閫靘嚗憒蝚砌I/O箇橘銝亦蝟餌絞蝚砌I/O隢瘙雿嚗Anticipatory Scheduling撠Y銝閮剝閬6瘥怎"皜"()嚗皜穿臬函皜祉洵鈭I/O隢瘙航隞暻潛函嚗璅皜祇單芋撘函撣豢折脰冽摮蝟餌絞扳頛憭抒撱園莎撠文嗆臬鞈摨恍璅蝟餌絞啣嚗雿銋嚗Anticipatory Scheduling撠澆蝬脤隡箸券璅蝟餌絞銵函曄貊嗅末 C2 H y' n) ^- z; E: a/ D1 Q
) k4 F, d: |) y9 Q$ r
( Z, ^, K2 K$ E. sDeadline Scheduler (蝪∠迂deadline) -- SATA 撱箄降雿輻 deadline) }- i$ D- z( a. i
銝餉Scheduler撠望舫撠Anticipatory Scheduling蝻粹靘脰孵嚗摰撠蝤蝣銝剔撣賊剖啣銝函撘嚗閮銝西ˊ雿蝚血撠撱園脫雿摨嚗璅蝯撠潸摨怎頂蝯梯賣靘游摮
3 A2 y# U- a& K* h6 V! S
* z1 l2 s' m; m; D! O$ k+ A0 Q6 B+ }+ U! \# p5 w/ e* n0 Q
銝爹ed Hat Enterprise Linux 4 (2.6 Kernel) 剝Oracle10G鞈摨怨蝔埋/O Scheduler皜祈岫蝯 (鞈靘皞撅昱edhat砍豢)
# [5 R3 {# e- \! c2 B) T
! E+ v, d% F% N& C* u; K7 U
0 E1 V, r+ g" N) J3 X r蝪∪桃閫鈭I/O Scheduler璅∪撌桃啣嚗臭誑撠銝脣閮剖靘剝銝I/O Scheduler脰賭隤踵∴擐曉啁恣I/O Scheduler蝟餌絞瑼獢嚗瑼獢舐牢at孵靘霈:
$ p6 E8 i/ p0 p, V, ]
8 o7 C3 A" Q, x+ z8 \$ s0 F2 a
' M, ]) n$ Z. e% v c: `7 T5 M( A5 i#cat /sys/block/sda/queue/scheduler
( V# r: @- O% {" @/ U[noop] anticipatory deadline cfq Q( [- \% z6 }1 G
' f. I- W- o9 s6 o* b; _" _- V' F
! w' M4 Z6 `: z8 W3 F' H敺銝靘嚗臭誑仿桀I/O Scheduler璅∪摸oop. (獢 [ ] )
4 |- v& a! |/ m2 r7 e
) p1 @( t6 a# }8 p2 z |/ w8 M3 o0 k0 I' ^
仿閬脰靽格寡矽湛雿瘜拍車:
, Z1 l' T1 z6 f, B( y5 J6 Y( ^' n. r% O( e' k( d5 r4 O( J" }2 |
+ k' i4 B! h. [9 I7 _' z1. 格活隤踵湛唾矽游喟嚗蝬庸cho隞支湔遐/O Scheduler璅∪$ g5 @8 J. P9 I$ v
. q8 M; K2 u. n _& j6 H; q
8 P0 c6 o `5 L- w; @0 ` z5 j. c% Z. a#echo Deadline>/sys/block/sda/queue/scheduler
# w1 I/ |/ Q$ b. w& @
8 E* T- d6 z! Q$ w) s3 u
( {5 F7 ?8 i7 M @銝靘箏桀sda憿蝖祉I/O Scheduler湔寧慣eadline璅∪嚗孵典喟嚗雿圈璈敺啁頂蝯望詨暺隤I/O Scheduler璅∪$ y$ {! u6 W- z$ m
$ ~% v% p0 F/ c8 c0 Z/ Q+ }2 f M. G$ |9 T: a/ J: K
2. 刻蝟餌絞璈脰隤踵渡:
7 F2 `4 \1 R9 ]" A5 Z隞乩21
. u$ t, A9 `) J! w6 G' Z /etc/rc.local 批乩銵: echo anticipatory > /sys/block/sdb/queue/scheduler 函頂蝯梁GRUB璈瑼獢銝哨敺銝銵銝elevator=deadline嚗喳舀潭甈⊿璈敺賭Deadline Scheduler雿璅∪嚗憒銝靘:# q, S$ D3 I) D# r' u, X% W j0 @
( G) i2 K' t- v& I' o
% \ u- A' Q5 T. _
蝺刻摩 /boot/grub/grub.conf4 I% T" r! P* U" m
; p) E8 i4 |: M' e w( q( I) S" m: O, S4 z
title Fedora Core (2.6.9-5.0.3.EL_lustre.1.4.2custom)& T F2 t8 j) L) |0 A/ E4 i
root (hd0,0)
* Q+ F9 ~% S7 D$ ]; wkernel /vmlinuz-2.6.9-5.0.3.EL_lustre.1.4.2custom ro
! Z* S+ P X1 I) B4 N- Q% |6 V/ |root=/dev/VolGroup00/LogVol00 rhgb noapic quiet elevator=deadline
0 Z; N: ]2 H0 p: E/ \0 r+ F u, x/ ^. Y
* [( T6 x& D2 t# h
1 A1 W2 ^9 C. I2 N8 i$ m& O9 o, s0 ^( y8 H$ p
鈭 乩靘舐′蝣 Readahead 敹怠
. f% r' O2 {; b% I4 C( t3 X9 J" P
6 W' a l- g0 Z) ?其遢撠望頛摰寞閫嚗蝬梁頂蝯梁蝣霈閮剖靘霈踝蝬梯矽嵇eadahead Sectors憭批靘憓脩頂蝯梁蝣霈賢榆堆撠望航矽∠銝餉桃* p7 c+ I' O6 ^5 ~
& p8 u, c& W3 A' ^0 C, ?( A
: y' w3 P7 g8 B+ w9 |蝬尉inux蝟餌絞隞: blockdev 靘瑼Z桀sda蝖祉Readahead Sectors憭批嚗蝭靘憒銝
/ c- p1 D# a# D1 H5 s0 L" } {7 o# n7 {0 o ]* e0 R3 c: [
- l2 A& B* |$ q1 q& C5 I
#blockdev --getra /dev/sda (蝟餌絞閮剜256M)
# D g% y9 u0 L- Q7 m* V! O512
, }3 A& I, n) b+ |; U" \, x1 z3 |2 s& R9 H. q
8 b: m4 {4 E7 F" {蝬梯矽游訾蒂撣嗅兄ectors憭批嚗靘脰質矽湛蝭靘憒銝:
/ w" W7 D% E. N
$ j8 T2 k, s$ d/ B; I: V) B% ^* A) `) @9 B- i5 w) y3 b& a/ H
#blockdev --setra 4096 /dev/sda
! v/ g4 Z# l( V. Y T, y0 f4 A1 I( o4 p0 L$ D
" L# d Z4 d$ U7 H, w
#blockdev --getra /dev/sda4 n8 C; A8 R1 N' u
4096
: k' Z% g- [3 j @% F3 a; J0 _
2 ?' X" N2 z/ A3 g" k% \6 B刻蝟餌絞璈芸閮剖: e& U! B [- F
/etc/rc.local 批乩銵:
& e) x7 p1 j% @blockdev --setra 4096 /dev/sda
^# j. C: G+ j) ~. c& t& T
" \7 }# G$ C( t! w% u/ m# I4 M蝬拍車蝖祉質矽∠撠寞嚗舀賢典祈賢停瘥頛撌桃蝖祇啣銋銝嚗憭憯璁典箔鈭霈賬2 W9 c; z0 l! T* G- E! h4 n" |( S1 t
撖虫:隞亙鈕erver敺憭撌乩,靘憒 ffmpeg, php(move_uploaded_file)銝喳之瑼獢 ,tar , mv 憭抒瑼獢,雿撟曆∩,摰典銝鈭,蝬銝餈啁隤踵,憿摰刻圾瘙
& g, U7 Q( I; D( D4 i
# F6 [( g; F% ~: q血,sysctl.conf隤踵銋舀撟怠拍
/ @. p8 t4 i1 v
6 d" P3 B6 T7 q, U. s: G! v8 u# e# i$ C: p t: E
靘皞:
3 E% q& _" f4 Q" }/ W
6 o6 Y9 e- ~5 @/ O- ^. Ehttp://itstorage.storageforum.tw ... eadahead-cache.html
& F; z: I. v X |
|