Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【続編】その ionice、ほんとに効いてますか?
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Narimichi Takamura
September 12, 2014
Technology
1
960
【続編】その ionice、ほんとに効いてますか?
2014/09/12 社内勉強会の資料です。前回の資料の続編です。
Narimichi Takamura
September 12, 2014
Tweet
Share
More Decks by Narimichi Takamura
See All by Narimichi Takamura
Observability — Extending Into Incident Response
nari_ex
2
1.1k
インシデントキーメトリクスによるインシデント対応の改善 / Improving Incident Response using Incident Key Metrics
nari_ex
1
13k
組織的なインシデント対応を目指して〜成熟度評価と改善のステップ〜 / Towards an Organized Incident Response - Maturity Assessment and Improvement Steps -
nari_ex
7
9.6k
Waroomの開発モチベーションと今後のロードマップ / Waroom development motivation and roadmap
nari_ex
1
1.8k
Engineering with Business Impact
nari_ex
2
340
How We Foster Reliability in Diversity
nari_ex
14
13k
SRE Practices in Organizations
nari_ex
16
11k
Hardening におけるトラブルシューティング / Troubleshooting in Hardening
nari_ex
1
390
私が Engineering Manager になるまでに経験してきたこと、大切にしてきたこと / Lecture materials for Introduction to Venture Business at UEC
nari_ex
0
270
Other Decks in Technology
See All in Technology
ADK + Gemini Enterprise で 外部 API 連携エージェント作るなら OAuth の仕組みを理解しておこう
kaz1437
0
180
「通るまでRe-run」から卒業!落ちないテストを書く勘所
asumikam
2
480
BFCacheを活用して無限スクロールのUX を改善した話
apple_yagi
0
120
SaaSに宿る21g
kanyamaguc
2
150
Phase12_総括_自走化
overflowinc
0
1.4k
プログラミング不要! テスト自動化における生成AI使いこなし術
magicpod
1
110
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
4
360
韓非子に学ぶAI活用術
tomfook
1
160
【AWS】CloudTrail LakeとCloudWatch Logs Insightsの使い分け方針
tsurunosd
0
120
Phase01_AI座学_基礎
overflowinc
0
3.7k
20260320_JaSST26_Tokyo_登壇資料.pdf
mura_shin
0
120
Goのerror型がシンプルであることの恩恵について理解する
yamatai1212
1
300
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
790
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
590
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
180
Raft: Consensus for Rubyists
vanstee
141
7.4k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Transcript
ʲଓฤʳͦͷ IONICE ɺ ΄Μͱʹޮ͍ͯ·͔͢ʁ גࣜձࣾϋʔτϏʔπ @nari_ex ߴଜಓ
͓͞Β͍ ionice ҎԼͷ ̎݅Λຬͨͨ࣌͠ʹͪΌΜͱ ಈ͘ I/O Scheduler ͕ CFQ ಛఆͷI/Oॲཧ
Ωϟογϡ͞Ε͍ͯͳ͍ϑΝΠϧͷRead ಛघϑϥάͷཱͬͨ Write
ΜɺͳΜͰ(ɾɾ)ʁ
CFQ ͡Όͳ͍ͱޮ͔ͳ͍ཧ༝
VFS Χʔωϧۭؒ γεςϜίʔϧ Ϣʔβۭؒ ཧ σόΠε ϑΝΠϧγεςϜ σΟεΫΩϟογϡ ൚༻ϒϩοΫ ཧ
σόΠε ϓϩηε I/Oεέδϡʔϥ σόΠε υϥΠό σόΠε υϥΠό I/Oεέδϡʔϥ I/O ͷ֓೦ਤ
I/O εέδϡʔϥ֓ཁ I/O
I/O εέδϡʔϥͷ αϒΩϡʔʹ
݁: CFQ Ҏ֎ɺ༏ઌΛߟྀͯ͠ ࣮͞Εͯͳ͍
දతͳI/Oεέδϡʔϥ • NOOP • DEADLINE • CFQʢCompletely Fair Queuingʣ
• ཁٻΛσΟεύονΩϡʔʹಥͬࠐΉ͚ͩ • No Operation NOOP I/O εέδϡʔϥ
NOOP I/O εέδϡʔϥ I/O
શ෦ೖΓͷFIFOΩϡʔ͕͋Δ͚ͩ
• ReadͱWriteͰΩϡʔ͕ผ • Read ༏ઌ • ظݶʢdeadlineʣ͖Ωϡʔ͕ಛ • ظݶ͕Εͨཁٻ࠷༏ઌͰॲཧ͢Δ DEADLINE
I/O εέδϡʔϥ
DEADLINE I/O εέδϡʔϥ I/O
READ ͱ WRITE ͷΩϡʔ͕͋Δ͚ͩ
• ϓϩηε͝ͱʹαϒΩϡʔΛ༻ҙ • ༏ઌΛߟྀͯ͠Ωϡʔ͝ͱͷॲཧ࣌ؒΛܾఆ • ̍ͭͷαϒΩϡʔΛΞΫςΟϒΩϡʔͱͯ͠ɺͦͷ ΩϡʔͷཁٻΛॲཧ࣌ؒͷൣғͰॲཧ͢Δ • ॲཧ͕࣌ؒऴΘΔͱΞΫςΟϒΩϡʔ͕ΓସΘΔ CFQ
I/O εέδϡʔϥ
CFQ I/O εέδϡʔϥ ϓϩηε͝ͱʹΩϡʔ͕͋Δ I/O
…"
CFQ I/O εέδϡʔϥ I/O
…" ΞΫςΟϒʹͳͬͨΩϡʔʹ͋Δ ཁٻ͕ॲཧ͞ΕΔ ༏ઌϓϩηεͷαϒΩϡʔ ΞΫςΟϒʹͳ͔ͳ͔ͳΒͳ͍ && ͳ͙ͬͯ͢ʹελϯόΠʹͳΔ
ಛఆͷI/O͡Όͳ͍ͱޮ͔ͳ͍ཧ༝
σΟεΫΩϟογϡͷޮ͍ͨREAD ϓϩηεۭؒ σΟεΫΩϟογϡ ཧσόΠε σΟεΫΩϟογϡͷ σʔλΛฦ͢
σΟεΫΩϟογϡͷͳ͍READ ϓϩηεۭؒ σΟεΫΩϟογϡ ཧσόΠε
σΟεΫΩϟογϡͷͳ͍READ ϓϩηεۭؒ σΟεΫΩϟογϡ ཧσόΠε σΟεΫΩϟογϡ࡞ σΟεΫΩϟογϡͷ σʔλΛฦ͢
ී௨ͷWRITEʢԆ WRITEʣ ϓϩηεۭؒ σΟεΫΩϟογϡ ཧσόΠε ޙͰॻ͖ࠐΈ σΟεΫΩϟογϡʹ ίϐʔΛͯ͠ऴྃ
ී௨ͷWRITEʢԆ WRITEʣ ϓϩηεۭؒ σΟεΫΩϟογϡ ཧσόΠε ޙͰॻ͖ࠐΈ σΟεΫΩϟογϡʹ ίϐʔΛͯ͠ऴྃ ୭͕Δͷʁ
ఆظతʹLINUX Χʔωϧ͕ॻ͖ࠐΜͰ·͢ɻ ※͔ͩΒ IONICE ͕ޮ͔ͳ͍
ఆظతͳಉظॲཧ
ಛघͳϑϥάͷཱͬͨI/O ϓϩηεۭؒ σΟεΫΩϟογϡ ཧσόΠε ΩϟογϡΛܦ༝ͤͣ σόΠεʹಡΈॻ͖͢Δ
࣭ίʔφʔ