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
Narimichi Takamura
September 12, 2014
Technology
1
940
【続編】その 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
850
インシデントキーメトリクスによるインシデント対応の改善 / Improving Incident Response using Incident Key Metrics
nari_ex
1
12k
組織的なインシデント対応を目指して〜成熟度評価と改善のステップ〜 / Towards an Organized Incident Response - Maturity Assessment and Improvement Steps -
nari_ex
7
9.1k
Waroomの開発モチベーションと今後のロードマップ / Waroom development motivation and roadmap
nari_ex
1
1.7k
Engineering with Business Impact
nari_ex
2
320
How We Foster Reliability in Diversity
nari_ex
14
13k
SRE Practices in Organizations
nari_ex
16
10k
Hardening におけるトラブルシューティング / Troubleshooting in Hardening
nari_ex
1
370
私が Engineering Manager になるまでに経験してきたこと、大切にしてきたこと / Lecture materials for Introduction to Venture Business at UEC
nari_ex
0
250
Other Decks in Technology
See All in Technology
ABEMAのCM配信を支えるスケーラブルな分散カウンタの実装
hono0130
4
960
[mercari GEARS 2025] Building Foundation for Mercari’s Global Expansion
mercari
PRO
1
140
Progressive Deliveryで支える!スケールする衛星コンステレーションの地上システム運用 / Ground Station Operation for Scalable Satellite Constellation by Progressive Delivery
iselegant
1
200
JavaScript パーサーに using 対応をする過程で与えたエコシステムへの影響
baseballyama
1
110
LINEギフト・LINEコマース領域の開発
lycorptech_jp
PRO
0
320
機密情報の漏洩を防げ! Webフロントエンド開発で意識すべき漏洩パターンとその対策
mizdra
PRO
10
3.6k
LINEヤフー バックエンド組織・体制の紹介
lycorptech_jp
PRO
0
810
入社したばかりでもできる、 アクセシビリティ改善の第一歩
unachang113
2
310
Lazy Constant - finalフィールドの遅延初期化
skrb
0
230
Perlの生きのこり - YAPC::Fukuoka 2025
kfly8
0
130
FFMとJVMの実装から学ぶJavaのインテグリティ
kazumura
0
130
[mercari GEARS 2025] なぜメルカリはノーコードを選ばなかったのか? 社内問い合わせ工数を60%削減したLLM活用の裏側
mercari
PRO
0
140
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
The Cult of Friendly URLs
andyhume
79
6.7k
Making Projects Easy
brettharned
120
6.5k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Code Reviewing Like a Champion
maltzj
527
40k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
670
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Rails Girls Zürich Keynote
gr2m
95
14k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
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 ϓϩηεۭؒ σΟεΫΩϟογϡ ཧσόΠε ΩϟογϡΛܦ༝ͤͣ σόΠεʹಡΈॻ͖͢Δ
࣭ίʔφʔ