Slide 1

Slide 1 text

低優先度処理を指定可能な リアルタイム処理向け I/Oスケジューラ 髙村成道,鵜川始陽,岩崎英哉 電気通信大学 2014年 3月 7日

Slide 2

Slide 2 text

リアルタイムサービスの普及 •  リアルタイム性を必要とするWebサービスの例 •  ソーシャルゲーム,チャット,SNS... •  定期的なメンテナンスが必須 ⇒ サービスを継続したままメンテナンスを行う 2 オンラインメンテナンス

Slide 3

Slide 3 text

オンラインメンテナンス •  問題点 •  作業負荷によるサービス品質の低下 ⇒ 本研究では I/O 負荷に着目 •  I/O 負荷を伴うオンラインメンテナンスの例 •  データベースサーバ上の巨大なログファイルの削除 3

Slide 4

Slide 4 text

オンラインメンテナンスの例 (1) 巨大なログの削除 (緊急性がない作業) データベース プロセス メンテナンス プロセス 4

Slide 5

Slide 5 text

オンラインメンテナンスの例 (2) データベース プロセス メンテナンス プロセス メンテナンス処理により 本来優先すべき処理が 妨げられてしまう データベース処理の スループットが減少 5

Slide 6

Slide 6 text

I/O スケジューラ •  I/O 要求を適切に並び替えるソフトウェア •  Linux カーネルに組み込まれている リアルタイム処理 I/O 優先度指定 CFQ スケジューラ Deadline スケジューラ 6 ⇒リアルタイム処理向きであり,かつ,優先度指定可 能な I/O スケジューラは無い ☓

Slide 7

Slide 7 text

目的・方針 目的 オンラインメンテナンスによるサービスの品質低下を防ぐ 方針 •  低優先度処理が指定可能なリアルタイム向けの I/O スケジューラの実装 ⇒ Deadline スケジューラを拡張 7

Slide 8

Slide 8 text

物理 デバイス ファイルシステム VFS ディスク キャッシュ 汎用ブロック層 I/O スケジューラ層 デバイス ドライバ カーネル空間 プロセス ユーザ空間 ファイル I/O の概略 デバイス ドライバ 物理 デバイス 8

Slide 9

Slide 9 text

汎用ブロック層 I/O スケジューラ サブキュー ディスパッチキュー デバイスドライバ 物理 デバイス I/O スケジューラの動作概要 9 要求の並び替え   処理する順に   要求を格納   処理順序の制御は   要求がサブキューに   ある場合に可能

Slide 10

Slide 10 text

Deadline スケジューラの動作 時間 サブキュー ディスパッチ キュー メンテナンス処理の要求 データベース処理の要求 1 1 1 1 2 2 2 2 3 3 10

Slide 11

Slide 11 text

Deadline スケジューラの拡張 •  処理性能の維持 •  低優先度処理の追加 •  低優先度処理のスループット制限 •  I/O 帯域の有効活用 11

Slide 12

Slide 12 text

低優先度処理のスループット制限(1) データベース プロセス メンテナンス プロセス 低優先度処理の スループットを抑え, メインの処理に多くの スループットを割り当てる 12

Slide 13

Slide 13 text

低優先度処理のスループット制限(2) •  通常(データベース処理)の要求はそのまま 処理する •  低優先度要求は一定時間ごとに保留する •  保留の処理はサブキューを用いる 13

Slide 14

Slide 14 text

低優先度処理のスループット制限(3) 時間 1 1 1 1 2 2 2 2 3 3 α α 14 サブキュー ディスパッチ キュー メンテナンス処理の要求 データベース処理の要求

Slide 15

Slide 15 text

I/O 帯域の有効活用(1) データベース プロセス メンテナンス プロセス 一定時間,メインの処理 が行われない場合, 低優先度処理の スループット制限を解除 15

Slide 16

Slide 16 text

I/O 帯域の有効活用(2) 時間 1 1 1 1 2 2 3 3 4 4 5 5 β α 16 サブキュー ディスパッチ キュー α

Slide 17

Slide 17 text

I/O 帯域の有効活用(3) 時間 5 17 サブキュー ディスパッチ キュー 6 6 2 2 7 α 7 β 8 9 8 9

Slide 18

Slide 18 text

2つのモード •  通常モード •  低優先度処理のスループット制限をして処理する •  バッチモード •  低優先度処理のスループット制限をせずに処理する 18

Slide 19

Slide 19 text

タイマによるディスパッチ制御 •  カーネルタイマを利用 •  α 時間後に1つの低優先度要求をディスパッチ •  β 時間後にバッチモードへ切り替え,すべての低 優先度要求をディスパッチ 19

Slide 20

Slide 20 text

実験環境 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

Slide 21

Slide 21 text

評価: 低優先度処理の影響 (1) 実験内容 •  データベースサーバ(MySQL)を利用 •  低優先度処理がある場合は,ない場合と比 較して何%の性能が出るかを測定 •  通常の処理: データベース処理 •  低優先度処理: Sequential Read •  α = 200ms, β = 500 ms 21

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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  %  以上の性能が低下した

Slide 24

Slide 24 text

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  %  未満の性能低 下に抑えることができた

Slide 25

Slide 25 text

評価: スループットの推移 実験内容 •  5GB のファイル読み込み •  2つの処理に対して,1秒ごとにスループット を測定し,変化を確認 •  通常の処理: Sequential Read •  低優先度処理: Sequential Read •  α = 200 ms, β = 5000 ms 25

Slide 26

Slide 26 text

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  での低優先度処理 低優先度処理が通常 の処理を妨げている

Slide 27

Slide 27 text

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 本機構での通常の処理 通常の処理がすぐに完了し, その後スループットを有効 活用している 本機構での低優先度処理 β

Slide 28

Slide 28 text

評価: 拡張によるオーバーヘッド 実験内容 •  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  スケジューラと   本機構との性能差はほぼない

Slide 29

Slide 29 text

関連研究(1) •  汎用向けの高性能スケジューラ •  CFQスケジューラの高性能化 [Lunde, 2009] •  各種スケジューラの高性能化 [Seelam, 2005] •  高速デバイス向けのスケジューラ •  SSD 向けのスケジューラの実装 [Dunnら, 2009] •  Fusion-io 向けのスケジューラの実装 [Robin, 2013] ⇒高速化が目的でありオンラインメンテナンスに 配慮したスケジューラを実現する研究ではない 29

Slide 30

Slide 30 text

関連研究(2) •  cgroups [Linux 準拠 (v2.6.24 以降)] •  スケジューラに依存することなく,スループットの 上限を指定可能 •  プロセスごとに設定が必要 ⇒本研究では,I/O スケジューラを拡張した 30

Slide 31

Slide 31 text

まとめ •  低優先度を指定可能なリアルタイム処理向け の I/O スケジューラの設計・実装を行った •  提案機構の評価を行い有効性を確認した •  既存のものでは性能低下が70 % 以上であるのに 対し、本機構では 1% 未満に抑えることができた 31

Slide 32

Slide 32 text

32

Slide 33

Slide 33 text

α の設定値によるスループットの変化 33 0 20 40 60 80 100 120 10 50 100 150 200 250 300 Throughput ( Mbytes/sec ) Time ( sec )

Slide 34

Slide 34 text

物理 デバイス ファイルシステム VFS ディスク キャッシュ 汎用ブロック層 I/O スケジューラ層 デバイス ドライバ カーネル空間 プロセス ユーザ空間 ファイル I/O の概略 デバイス ドライバ 物理 デバイス 34

Slide 35

Slide 35 text

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

Slide 36

Slide 36 text

拡張後のスケジューラの動作 (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

Slide 37

Slide 37 text

拡張後のスケジューラの動作 (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

Slide 38

Slide 38 text

拡張後のスケジューラの動作 (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

Slide 39

Slide 39 text

拡張後のスケジューラの動作 (4) 39 並べ替えキュー 処理実行 期限付きキュー 低優先度キュー s: 77 t: 7

Slide 40

Slide 40 text

実装: カーネルタイマによる制御 時間 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)