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

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

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

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

Takamura Narimichi

March 07, 2014
Tweet

More Decks by Takamura Narimichi

Other Decks in Technology

Transcript

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

    View Slide

  2. リアルタイムサービスの普及
    •  リアルタイム性を必要とするWebサービスの例
    •  ソーシャルゲーム,チャット,SNS...

    •  定期的なメンテナンスが必須
    ⇒ サービスを継続したままメンテナンスを行う


    2
    オンラインメンテナンス

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    7

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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  スケジューラと  
    本機構との性能差はほぼない

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  32. 32

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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)

    View Slide