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

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

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

C236ca44c4fc873f80f97b5cf8a775df?s=128

Takamura Narimichi

March 07, 2014
Tweet

Transcript

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

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

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

    I/O 負荷を伴うオンラインメンテナンスの例 •  データベースサーバ上の巨大なログファイルの削除 3
  4. オンラインメンテナンスの例 (1) 巨大なログの削除 (緊急性がない作業) データベース プロセス メンテナンス プロセス 4

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

    スループットが減少 5
  6. I/O スケジューラ •  I/O 要求を適切に並び替えるソフトウェア •  Linux カーネルに組み込まれている リアルタイム処理 I/O

    優先度指定 CFQ スケジューラ Deadline スケジューラ 6 ⇒リアルタイム処理向きであり,かつ,優先度指定可 能な I/O スケジューラは無い ☓
  7. 目的・方針 目的 オンラインメンテナンスによるサービスの品質低下を防ぐ 方針 •  低優先度処理が指定可能なリアルタイム向けの I/O スケジューラの実装 ⇒ Deadline

    スケジューラを拡張 7
  8. 物理 デバイス ファイルシステム VFS ディスク キャッシュ 汎用ブロック層 I/O スケジューラ層 デバイス

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

    9 要求の並び替え   処理する順に   要求を格納   処理順序の制御は   要求がサブキューに   ある場合に可能
  10. Deadline スケジューラの動作 時間 サブキュー ディスパッチ キュー メンテナンス処理の要求 データベース処理の要求 1 1

    1 1 2 2 2 2 3 3 10
  11. Deadline スケジューラの拡張 •  処理性能の維持 •  低優先度処理の追加 •  低優先度処理のスループット制限 •  I/O

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

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

  14. 低優先度処理のスループット制限(3) 時間 1 1 1 1 2 2 2 2

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

    15
  16. I/O 帯域の有効活用(2) 時間 1 1 1 1 2 2 3

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

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

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

    19
  20. 実験環境 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
  21. 評価: 低優先度処理の影響 (1) 実験内容 •  データベースサーバ(MySQL)を利用 •  低優先度処理がある場合は,ない場合と比 較して何%の性能が出るかを測定 • 

    通常の処理: データベース処理 •  低優先度処理: Sequential Read •  α = 200ms, β = 500 ms 21
  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 22
  23. 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  %  以上の性能が低下した
  24. 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  %  未満の性能低 下に抑えることができた
  25. 評価: スループットの推移 実験内容 •  5GB のファイル読み込み •  2つの処理に対して,1秒ごとにスループット を測定し,変化を確認 • 

    通常の処理: Sequential Read •  低優先度処理: Sequential Read •  α = 200 ms, β = 5000 ms 25
  26. 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  での低優先度処理 低優先度処理が通常 の処理を妨げている
  27. 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 本機構での通常の処理 通常の処理がすぐに完了し, その後スループットを有効 活用している 本機構での低優先度処理 β
  28. 評価: 拡張によるオーバーヘッド 実験内容 •  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  スケジューラと   本機構との性能差はほぼない
  29. 関連研究(1) •  汎用向けの高性能スケジューラ •  CFQスケジューラの高性能化 [Lunde, 2009] •  各種スケジューラの高性能化 [Seelam,

    2005] •  高速デバイス向けのスケジューラ •  SSD 向けのスケジューラの実装 [Dunnら, 2009] •  Fusion-io 向けのスケジューラの実装 [Robin, 2013] ⇒高速化が目的でありオンラインメンテナンスに 配慮したスケジューラを実現する研究ではない 29
  30. 関連研究(2) •  cgroups [Linux 準拠 (v2.6.24 以降)] •  スケジューラに依存することなく,スループットの 上限を指定可能

    •  プロセスごとに設定が必要 ⇒本研究では,I/O スケジューラを拡張した 30
  31. まとめ •  低優先度を指定可能なリアルタイム処理向け の I/O スケジューラの設計・実装を行った •  提案機構の評価を行い有効性を確認した •  既存のものでは性能低下が70

    % 以上であるのに 対し、本機構では 1% 未満に抑えることができた 31
  32. 32

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

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

    ドライバ カーネル空間 プロセス ユーザ空間 ファイル I/O の概略 デバイス ドライバ 物理 デバイス 34
  35. 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
  36. 拡張後のスケジューラの動作 (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
  37. 拡張後のスケジューラの動作 (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
  38. 拡張後のスケジューラの動作 (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
  39. 拡張後のスケジューラの動作 (4) 39 並べ替えキュー 処理実行 期限付きキュー 低優先度キュー s: 77 t:

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