Upgrade to Pro — share decks privately, control downloads, hide ads and more …

低優先度処理を指定可能なリアルタイム処理向け I/O スケジューラ / A Deadline...

低優先度処理を指定可能なリアルタイム処理向け I/O スケジューラ / A Deadline IO Scheduler Equipped with Low Priority Assignment

学部時代の卒研を学会(SIGOS)で発表したときの資料です。

Narimichi Takamura

March 07, 2014
Tweet

More Decks by Narimichi Takamura

Other Decks in Technology

Transcript

  1. オンラインメンテナンス •  問題点 •  作業負荷によるサービス品質の低下 ⇒ 本研究では I/O 負荷に着目 • 

    I/O 負荷を伴うオンラインメンテナンスの例 •  データベースサーバ上の巨大なログファイルの削除 3
  2. I/O スケジューラ •  I/O 要求を適切に並び替えるソフトウェア •  Linux カーネルに組み込まれている リアルタイム処理 I/O

    優先度指定 CFQ スケジューラ Deadline スケジューラ 6 ⇒リアルタイム処理向きであり,かつ,優先度指定可 能な I/O スケジューラは無い ☓
  3. 物理 デバイス ファイルシステム VFS ディスク キャッシュ 汎用ブロック層 I/O スケジューラ層 デバイス

    ドライバ カーネル空間 プロセス ユーザ空間 ファイル I/O の概略 デバイス ドライバ 物理 デバイス 8
  4. 汎用ブロック層 I/O スケジューラ サブキュー ディスパッチキュー デバイスドライバ 物理 デバイス I/O スケジューラの動作概要

    9 要求の並び替え   処理する順に   要求を格納   処理順序の制御は   要求がサブキューに   ある場合に可能
  5. 低優先度処理のスループット制限(3) 時間 1 1 1 1 2 2 2 2

    3 3 α α 14 サブキュー ディスパッチ キュー メンテナンス処理の要求 データベース処理の要求
  6. I/O 帯域の有効活用(2) 時間 1 1 1 1 2 2 3

    3 4 4 5 5 β α 16 サブキュー ディスパッチ キュー α
  7. 実験環境 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
  8. 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
  9. 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  %  以上の性能が低下した
  10. 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  %  未満の性能低 下に抑えることができた
  11. 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  での低優先度処理 低優先度処理が通常 の処理を妨げている
  12. 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 本機構での通常の処理 通常の処理がすぐに完了し, その後スループットを有効 活用している 本機構での低優先度処理 β
  13. 評価: 拡張によるオーバーヘッド 実験内容 •  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  スケジューラと   本機構との性能差はほぼない
  14. 関連研究(1) •  汎用向けの高性能スケジューラ •  CFQスケジューラの高性能化 [Lunde, 2009] •  各種スケジューラの高性能化 [Seelam,

    2005] •  高速デバイス向けのスケジューラ •  SSD 向けのスケジューラの実装 [Dunnら, 2009] •  Fusion-io 向けのスケジューラの実装 [Robin, 2013] ⇒高速化が目的でありオンラインメンテナンスに 配慮したスケジューラを実現する研究ではない 29
  15. 32

  16. α の設定値によるスループットの変化 33 0 20 40 60 80 100 120

    10 50 100 150 200 250 300 Throughput ( Mbytes/sec ) Time ( sec )
  17. 物理 デバイス ファイルシステム VFS ディスク キャッシュ 汎用ブロック層 I/O スケジューラ層 デバイス

    ドライバ カーネル空間 プロセス ユーザ空間 ファイル I/O の概略 デバイス ドライバ 物理 デバイス 34
  18. 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
  19. 拡張後のスケジューラの動作 (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
  20. 拡張後のスケジューラの動作 (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
  21. 拡張後のスケジューラの動作 (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
  22. 実装: カーネルタイマによる制御 時間 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)