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
低優先度処理を指定可能なリアルタイム処理向け I/O スケジューラ / A Deadline...
Search
Narimichi Takamura
March 07, 2014
Technology
0
370
低優先度処理を指定可能なリアルタイム処理向け I/O スケジューラ / A Deadline IO Scheduler Equipped with Low Priority Assignment
学部時代の卒研を学会(SIGOS)で発表したときの資料です。
Narimichi Takamura
March 07, 2014
Tweet
Share
More Decks by Narimichi Takamura
See All by Narimichi Takamura
インシデントキーメトリクスによるインシデント対応の改善 / Improving Incident Response using Incident Key Metrics
nari_ex
1
7.1k
組織的なインシデント対応を目指して〜成熟度評価と改善のステップ〜 / Towards an Organized Incident Response - Maturity Assessment and Improvement Steps -
nari_ex
7
7.5k
Waroomの開発モチベーションと今後のロードマップ / Waroom development motivation and roadmap
nari_ex
1
1.3k
Engineering with Business Impact
nari_ex
2
290
How We Foster Reliability in Diversity
nari_ex
14
13k
SRE Practices in Organizations
nari_ex
16
9.1k
Hardening におけるトラブルシューティング / Troubleshooting in Hardening
nari_ex
1
320
私が Engineering Manager になるまでに経験してきたこと、大切にしてきたこと / Lecture materials for Introduction to Venture Business at UEC
nari_ex
0
220
運用技術者組織の設計と運用 / Design and operation of operational engineer organization
nari_ex
11
9.5k
Other Decks in Technology
See All in Technology
バックエンドエンジニアによるフロントエンドテスト拡充の具体的手法
kinosuke01
1
400
【ServiceNow SNUG Meetup LT deck】ServiceNow「検索性の進化」ZingからNow Assistまで
niwato
1
280
セマンティックレイヤー入門
ikkimiyazaki
7
2.2k
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
7
1.3k
「エンジニアマネージャー」の役割を担っている / 担ってみたい方へのキャリアパスガイド
coconala_engineer
1
210
非エンジニアにも伝えるメールセキュリティ / Email security for non-engineers
ykanoh
13
3.6k
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
260
SLI/SLO・ラプソディあるいは組織への適用の旅
nwiizo
4
1k
これからクラウドエンジニアになるために本当に必要なスキル 5選
hiyanger
1
440
IAMのマニアックな話 2025 ~40分バージョン ~
nrinetcom
PRO
4
400
Engineering Managementのグローバルトレンド #emoasis / Engineering Management Global Trend
kyonmm
PRO
5
900
AIが変えるソフトウェア開発__未来のアジャイルチームとは__.pdf
buchirei
0
350
Featured
See All Featured
Being A Developer After 40
akosma
89
590k
GraphQLの誤解/rethinking-graphql
sonatard
69
10k
Speed Design
sergeychernyshev
28
850
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
12
1.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Building an army of robots
kneath
304
45k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Gamification - CAS2011
davidbonilla
80
5.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
GraphQLとの向き合い方2022年版
quramy
45
14k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.9k
Faster Mobile Websites
deanohume
306
31k
Transcript
低優先度処理を指定可能な リアルタイム処理向け I/Oスケジューラ 髙村成道,鵜川始陽,岩崎英哉 電気通信大学 2014年 3月 7日
リアルタイムサービスの普及 • リアルタイム性を必要とするWebサービスの例 • ソーシャルゲーム,チャット,SNS... • 定期的なメンテナンスが必須 ⇒ サービスを継続したままメンテナンスを行う 2
オンラインメンテナンス
オンラインメンテナンス • 問題点 • 作業負荷によるサービス品質の低下 ⇒ 本研究では I/O 負荷に着目 •
I/O 負荷を伴うオンラインメンテナンスの例 • データベースサーバ上の巨大なログファイルの削除 3
オンラインメンテナンスの例 (1) 巨大なログの削除 (緊急性がない作業) データベース プロセス メンテナンス プロセス 4
オンラインメンテナンスの例 (2) データベース プロセス メンテナンス プロセス メンテナンス処理により 本来優先すべき処理が 妨げられてしまう データベース処理の
スループットが減少 5
I/O スケジューラ • I/O 要求を適切に並び替えるソフトウェア • Linux カーネルに組み込まれている リアルタイム処理 I/O
優先度指定 CFQ スケジューラ Deadline スケジューラ 6 ⇒リアルタイム処理向きであり,かつ,優先度指定可 能な I/O スケジューラは無い ☓
目的・方針 目的 オンラインメンテナンスによるサービスの品質低下を防ぐ 方針 • 低優先度処理が指定可能なリアルタイム向けの I/O スケジューラの実装 ⇒ Deadline
スケジューラを拡張 7
物理 デバイス ファイルシステム VFS ディスク キャッシュ 汎用ブロック層 I/O スケジューラ層 デバイス
ドライバ カーネル空間 プロセス ユーザ空間 ファイル I/O の概略 デバイス ドライバ 物理 デバイス 8
汎用ブロック層 I/O スケジューラ サブキュー ディスパッチキュー デバイスドライバ 物理 デバイス I/O スケジューラの動作概要
9 要求の並び替え 処理する順に 要求を格納 処理順序の制御は 要求がサブキューに ある場合に可能
Deadline スケジューラの動作 時間 サブキュー ディスパッチ キュー メンテナンス処理の要求 データベース処理の要求 1 1
1 1 2 2 2 2 3 3 10
Deadline スケジューラの拡張 • 処理性能の維持 • 低優先度処理の追加 • 低優先度処理のスループット制限 • I/O
帯域の有効活用 11
低優先度処理のスループット制限(1) データベース プロセス メンテナンス プロセス 低優先度処理の スループットを抑え, メインの処理に多くの スループットを割り当てる 12
低優先度処理のスループット制限(2) • 通常(データベース処理)の要求はそのまま 処理する • 低優先度要求は一定時間ごとに保留する • 保留の処理はサブキューを用いる 13
低優先度処理のスループット制限(3) 時間 1 1 1 1 2 2 2 2
3 3 α α 14 サブキュー ディスパッチ キュー メンテナンス処理の要求 データベース処理の要求
I/O 帯域の有効活用(1) データベース プロセス メンテナンス プロセス 一定時間,メインの処理 が行われない場合, 低優先度処理の スループット制限を解除
15
I/O 帯域の有効活用(2) 時間 1 1 1 1 2 2 3
3 4 4 5 5 β α 16 サブキュー ディスパッチ キュー α
I/O 帯域の有効活用(3) 時間 5 17 サブキュー ディスパッチ キュー 6 6
2 2 7 α 7 β 8 9 8 9
2つのモード • 通常モード • 低優先度処理のスループット制限をして処理する • バッチモード • 低優先度処理のスループット制限をせずに処理する 18
タイマによるディスパッチ制御 • カーネルタイマを利用 • α 時間後に1つの低優先度要求をディスパッチ • β 時間後にバッチモードへ切り替え,すべての低 優先度要求をディスパッチ
19
実験環境 OS CentOS release 6.5 (Final) Linux カーネル 3.12.7 CPU
Intel Core i7-3770 @ 3.40GHz 4 コア メモリ 8 GiB 物理デバイス 1 SSD 240GB (Intel SSDSC2CT240A4) 物理デバイス 2 HDD 320 GB, 7200 rpm (Hitachi HDP72503) ベンチマーク ツール sysbench 20
評価: 低優先度処理の影響 (1) 実験内容 • データベースサーバ(MySQL)を利用 • 低優先度処理がある場合は,ない場合と比 較して何%の性能が出るかを測定 •
通常の処理: データベース処理 • 低優先度処理: Sequential Read • α = 200ms, β = 500 ms 21
0 10 20 30 40 50 60 70 80 90
100 110 HDD SSD Normal I/O TPS / Low Prio I/O TPS [%] 評価: 低優先度処理の影響 (2) 0 10 HDD SSD Deadline Our Scheduler 0 10 HDD SSD Deadline Our Scheduler 22
0 10 20 30 40 50 60 70 80 90
100 110 HDD SSD Normal I/O TPS / Low Prio I/O TPS [%] 評価: 低優先度処理の影響 (2) 0 10 HDD SSD Deadline Our Scheduler 0 10 HDD SSD Deadline Our Scheduler 23 既存のDeadline スケジューラでは, 70 % 以上の性能が低下した
0 10 20 30 40 50 60 70 80 90
100 110 HDD SSD Normal I/O TPS / Low Prio I/O TPS [%] 評価: 低優先度処理の影響 (2) 0 10 HDD SSD Deadline Our Scheduler 0 10 HDD SSD Deadline Our Scheduler 24 本機構では,1 % 未満の性能低 下に抑えることができた
評価: スループットの推移 実験内容 • 5GB のファイル読み込み • 2つの処理に対して,1秒ごとにスループット を測定し,変化を確認 •
通常の処理: Sequential Read • 低優先度処理: Sequential Read • α = 200 ms, β = 5000 ms 25
0 50 100 150 200 250 0 5 10 15
20 25 30 35 40 45 Throughput ( Mbytes/sec ) Time ( sec ) Deadline Normal I/O 評価: スループットの推移 26 Deadline での通常処理と Deadline での低優先度処理 低優先度処理が通常 の処理を妨げている
0 50 100 150 200 250 0 5 10 15
20 25 30 35 40 45 Throughput ( Mbytes/sec ) Time ( sec ) Deadline Normal I/O 評価: スループットの推移 27 本機構での通常の処理 通常の処理がすぐに完了し, その後スループットを有効 活用している 本機構での低優先度処理 β
評価: 拡張によるオーバーヘッド 実験内容 • 1 分間のファイルアクセスを実行 • スループット (Mbytes/sec) を比較
0 10 20 30 40 50 60 70 80 90 100 110 SeqRead RndRead SeqWrite RndWrite Our Scheduler / Deadline [%] 28 通常のI/O要求を処理する上で, 既存のDeadline スケジューラと 本機構との性能差はほぼない
関連研究(1) • 汎用向けの高性能スケジューラ • CFQスケジューラの高性能化 [Lunde, 2009] • 各種スケジューラの高性能化 [Seelam,
2005] • 高速デバイス向けのスケジューラ • SSD 向けのスケジューラの実装 [Dunnら, 2009] • Fusion-io 向けのスケジューラの実装 [Robin, 2013] ⇒高速化が目的でありオンラインメンテナンスに 配慮したスケジューラを実現する研究ではない 29
関連研究(2) • cgroups [Linux 準拠 (v2.6.24 以降)] • スケジューラに依存することなく,スループットの 上限を指定可能
• プロセスごとに設定が必要 ⇒本研究では,I/O スケジューラを拡張した 30
まとめ • 低優先度を指定可能なリアルタイム処理向け の I/O スケジューラの設計・実装を行った • 提案機構の評価を行い有効性を確認した • 既存のものでは性能低下が70
% 以上であるのに 対し、本機構では 1% 未満に抑えることができた 31
32
α の設定値によるスループットの変化 33 0 20 40 60 80 100 120
10 50 100 150 200 250 300 Throughput ( Mbytes/sec ) Time ( sec )
物理 デバイス ファイルシステム VFS ディスク キャッシュ 汎用ブロック層 I/O スケジューラ層 デバイス
ドライバ カーネル空間 プロセス ユーザ空間 ファイル I/O の概略 デバイス ドライバ 物理 デバイス 34
Deadline スケジューラの動作 (1) 35 セクタ番号順 I/O 要求の 発行順 末尾 先頭
処理実行 s: セクタ番号 t: 発行要求時刻 並べ替えキュー 期限付きキュー s: 41 t: 5 s: 41 t: 5 s: 98 t: 2 s: 98 t: 2 s: 23 t: 3 s: 23 t: 3
拡張後のスケジューラの動作 (1) 36 処理実行 低優先度キュー s: 77 t: 7 低優先度
要求の追加 s: 64 t: 6 並べ替えキュー 期限付きキュー s: 98 t: 2 s: 41 t: 5 s: 23 t: 3 s: 23 t: 3 s: 98 t: 2 s: 41 t: 5 s: 64 t: 6
拡張後のスケジューラの動作 (2) 37 処理実行 低優先度キュー s: 77 t: 7 s:
64 t: 6 並べ替えキュー 期限付きキュー s: 98 t: 2 s: 41 t: 5 s: 23 t: 3 s: 23 t: 3 s: 98 t: 2 s: 41 t: 5 s: 64 t: 6
拡張後のスケジューラの動作 (3) 38 処理実行 低優先度キュー s: 77 t: 7 s:
64 t: 6 並べ替えキュー 期限付きキュー s: 98 t: 2 s: 41 t: 5 s: 98 t: 2 s: 41 t: 5 s: 64 t: 6
拡張後のスケジューラの動作 (4) 39 並べ替えキュー 処理実行 期限付きキュー 低優先度キュー s: 77 t:
7
実装: カーネルタイマによる制御 時間 Sub Q Dispatch Q 1 1 1
1 2 2 3 3 4 4 5 5 β α 40 set(β) set(α) set(α) dispatch() dispatch() dispatch() dispatch() mode(normal) mode(batch)