スケジューラの比較と リアルタイムスレッド調査

Slides:



Advertisements
Similar presentations
ゲームプログラミング講習 第2章 関数の使い方
Advertisements

サービス管理責任者等研修テキスト 分野別講義    「アセスメントと        支援提供の基本姿勢」 <児童発達支援管理責任者> 平成27年10月1日.
ヒトの思考プロセスの解明を目的とするワーキングメモリの研究
第27講 オームの法則 電気抵抗の役割について知る オームの法則を使えるようにする 抵抗の温度変化を理解する 教科書P.223~226
コラッツ予想の変形について 東邦大学 理学部 情報科 白柳研究室 山中 陽子.
コンパイラ 第3回 字句解析 ― 決定性有限オートマトンの導出 ―
第5章 家計に関する統計 ー 経済統計 ー.
公共財 公共経済論 II no.3 麻生良文.
VTX alignment D2 浅野秀光 2011年12月15日  放射線研ミーティング.
冷却フランシウム原子を用いた 電子の永久電気双極子能率探索のための ルビジウム磁力計の研究
生命情報学 (8) スケールフリーネットワーク
前半戦 「史上最強」風 札上げクイズ.

認知症を理解し 環境の重要性について考える
フッ化ナトリウムによる洗口 2010・9・13 宮崎市郡東諸県郡薬剤師会 学校薬剤師  日高 華代子.
食品の安全性に関わる社会システム:総括 健康弱者 ハイリスク集団 HACCP (食肉処理場・食品工場) 農場でのQAP 一般的衛生管理
規制改革とは? ○規制改革の目的は、経済の活性化と雇用の創出によって、   活力ある経済社会の実現を図ることにあります。
地域保健対策検討会 に関する私見(保健所のあり方)
公共政策大学院 鈴木一人 第8回 専門化する政治 公共政策大学院 鈴木一人
医薬品ネット販売規制について 2012年5月31日 ケンコーコム株式会社.
平成26年8月27日(水) 大阪府 健康医療部 薬務課 医療機器グループ
平成26年度 呼吸器学会からの提案結果 (オレンジ色の部分が承認された提案) 新規提案 既収載の変更 免疫組織化学染色、免疫細胞化学染色
エナジードリンクの危険性 2015年6月23日 経営学部市場戦略学科MR3195稲沢珠依.
自動吸引は 在宅を変えるか 大分協和病院 院長         山本 真.
毎月レポート ビジネスの情報 (2016年7月号).
医療の歴史と将来 医療と医薬品産業 個人的経験 3. 「これからの医療を考える」 (1)医薬品の研究開発 -タクロリムスの歴史-
社会福祉調査論 第4講 2.社会調査の概要 11月2日.
2015年12月28日-2016年3月28日 掲載分.
2010度 民事訴訟法講義 補論 関西大学法学部教授 栗田 隆.
腫瘍学概論 埼玉医科大学国際医療センター 包括的がんセンター 緩和医療科/緩和ケアチーム 奈良林 至
“企業リスクへの考え方に変化を求められています。 トータルなリスクマネジメント・サービスをプロデュースします。“
情報漏えい 経済情報学科 E  西村 諭 E  釣 洋平.
金融班(ミクロ).
第11回 2009年12月16日 今日の資料=A4・4枚+解答用紙 期末試験:2月3日(水)N2教室
【ABL用語集】(あいうえお順) No 用語 解説 12 公正市場価格 13 債権 14 指名債権 15 事業収益資産 16 集合動産 17
基礎理論(3) 情報の非対称性と逆選択 公共政策論II No.3 麻生良文.
浜中 健児 昭和42年3月27日生まれ 東京都在住 株式会社ピー・アール・エフ 代表取締役 (学歴) 高 校:千葉県立東葛飾高校 卒業
COPYRIGHT(C) 2011 KYUSHU UNIVERSITY. ALL RIGHTS RESERVED
Blosxom による CMS 構築と SEO テクニック
記入例 JAWS DAYS 2015 – JOB BOARD 会社名 採用職種 営業職/技術職/その他( ) 仕事内容 待遇 募集数
ネットビジネスの 企業と特性 MR1127 まさ.
Future Technology活用による業務改革
ネットビジネス論(杉浦) 第8回 ネットビジネスと情報技術.
g741001 長谷川 嵩 g740796 迫村 光秋 g741000 西田 健太郎 g741147 小井出 真聡
自然独占 公共経済論 II no.5 麻生良文.
Autonomic Resource Provisioning for Cloud-Based Software
Webショップにおける webデザイン 12/6 08A1022 甲斐 広大.
物理的な位置情報を活用した仮想クラウドの構築
ハイブリッドクラウドを実現させるポイントと SCSKのOSSへの取組み
寺尾 敦 青山学院大学社会情報学部 第12回 情報デザイン(4) 情報の構造化と表現 寺尾 敦 青山学院大学社会情報学部
【1−1.開発計画 – 設計・開発計画】 システム開発計画にはシステム開発を効率的、効果的に実行する根拠(人員と経験、開発手順、開発・導入するシステム・アプリケーション・サービス等)を記述すること。 システム開発の開始から終了までの全体スケジュールを記載すること。 アプリケーション機能配置、ソフトウェア、インフラ構成、ネットワーク構成について概要を示すこと。
6 日本のコーポレート・ガバナンス 2008年度「企業論」 川端 望.
急成長する中国ソフトウェア産業 中国ソフトウェアと情報サービス産業の規模 総売上高は5年間で約5.3倍の成長
米国ユタ州LDS病院胸部心臓外科フェローの経験
公益社団法人日本青年会議所 関東地区埼玉ブロック協議会 JCの情熱(おもい)育成委員会 2011年度第1回全体委員会
次世代大学教育研究会のこれまでの活動 2005年度次世代大学教育研究大会 明治大学駿河台校舎リバティタワー9階1096教室
子どもの本の情報 大阪府内の協力書店の情報 こちらをクリック 大阪府内の公立図書館・図書室の情報
第2回産業調査 小島浩道.
〈起点〉を示す格助詞「を」と「から」の選択について
広東省民弁本科高校日語専業骨幹教師研修会 ①日本語の格助詞の使い分け ②動詞の自他受身の選択について   -日本語教育と中日カルチャーショックの観点から- 名古屋大学 杉村 泰.
■5Ahバッテリー使用報告 事例紹介/東【その1】 ■iphon4S(晴れの昼間/AM8-PM3) ◆約1時間で68%⇒100%
『ワタシが!!』『地域の仲間で!!』 市民が始める自然エネルギー!!
ポイントカードの未来形を形にした「MUJI Passport」
SAP NetWeaver を支える Microsoft テクノロジーの全貌 (Appendix)
ガイダンス(内業) 測量学実習 第1回.
Python超入門 久保 幹雄 東京海洋大学.
熱力学の基礎 丸山 茂夫 東京大学大学院 工学系研究科 機械工学専攻
京都民医連中央病院 CHDF学習推進委員会
資料2-④ ④下水道.
Accessによる SQLの操作 ~実際にテーブルを操作してみよう!~.
Presentation transcript:

スケジューラの比較と リアルタイムスレッド調査 東芝情報システム株式会社 中嶋健一郎 k-nakajima( at mark )tjsys.co.jp 2006/05/26

Agenda 背景 実験の目的 実験環境 対象スケジューラの紹介 実行したベンチマークの紹介 考察 まとめ

背景 組込みとエンタープライズで同じスケジューラ? →アプリケーションの特性や、 走っているプロセスの量は違うはず 万能なスケジューラは存在しないのでは? 組込み向けのスケジューラというのはどうだろうか? 御意見募集中 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

実験の目的 スケーラビリティをある程度犠牲にしても、 軽量高速なデジタル家電向けのスケジューラが作れないか検討する スケーラビリティをある程度犠牲にしても、 軽量高速なデジタル家電向けのスケジューラが作れないか検討する 手始めに各スケジューラの性能を比較 Non-RTスレッドとRTスレッドの扱いの違いを 確認する Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

実験環境 RBTX4400 TX4937 300MHz 128MB SDRAM Kernel 2.6.17-rc1 (linux-mips ツリー) Glibc-2.4 (mips ports) Root FS は PCI カードから繋がっている HDD 上 Plugsched-6.3.2 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

Plugsched はどんなもの? スケジューラをドライバ化して、起動時に差し替えられるようにするパッチ cpusched={ingosched, ingo_ll ,nicksched, staircase} スケジューリングに使用するパラメータのチューニングを sysfs からできるように echo 500 > /sys/cpusched/<sched_name>/<param> 更に拡張して動的に差し替えられるようにしたDynsched もある Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

各スケジューラの特徴紹介 Plugsched-6.3.2付属のもの ingosched ingo_ll nicksched staircase Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

ingosched 標準の O(1) スケジューラ sleep時間に基づいて、優先度にボーナス、ペナルティを設定 タイムスライスはnice値に基づいて計算 sprioはnice値を100..139にマッピングしたもの 𝑚𝑖𝑛𝑠𝑙𝑖𝑐𝑒=𝑚𝑎𝑥 5∗𝐻𝑍 1000, 1 𝑡𝑖𝑚𝑒𝑠𝑙𝑖𝑐𝑒= 𝑚𝑎𝑥 5∗𝐻𝑍 1000 ∗140−𝑠𝑝𝑟𝑖𝑜,𝑚𝑖𝑛𝑠𝑙𝑖𝑐𝑒 𝑛𝑖𝑐𝑒≥0 𝑚𝑎𝑥 20∗𝐻𝑍 1000 ∗140−𝑠𝑝𝑟𝑖𝑜,𝑚𝑖𝑛𝑠𝑙𝑖𝑐𝑒 𝑛𝑖𝑐𝑒0 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

ingo_ll レイテンシを改善した ingosched 高負荷状態では? 現在は開発されていない(はず) Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

nicksched Nick Piggin が ingosched のインタラクティブ性をチューニングしたスケジューラ これも現在は開発されていない(はず。Kernel-2.6.4くらいで出てこなくなった) sleepの履歴に基づいて優先度を決定 動的優先度とexpiredキューの中も含めた最高優先度によって、タイムスライスを獲得 dprioは動的優先度、minprioは自分とexpiredに入っている中の最小優先度  60 𝑑𝑝𝑟𝑖𝑜−𝑚𝑖𝑛𝑝𝑟𝑖𝑜2  2 ∗  40 170−𝑚𝑖𝑛𝑖𝑝𝑟𝑖  2 ∗ 𝐻𝑍 1000  4 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

staircase Con Kolivas によるインタラクティブ性重視の スケジューラ Ckツリーで開発中 sleep時間で優先度にボーナスを設定 実行時間で優先度にペナルティを設定 静的優先度ベースでタイムスライス獲得 𝑚𝑖𝑛𝑠𝑙𝑖𝑐𝑒=  6∗𝐻𝑍 1001 1𝑛𝑖𝑐𝑒≥0  6∗𝐻𝑍 1001 1−𝑛𝑖𝑐𝑒𝑛𝑖𝑐𝑒0 𝑡𝑖𝑚𝑒𝑠𝑙𝑖𝑐𝑒=𝑚𝑖𝑛𝑠𝑙𝑖𝑐𝑒∗119−𝑛𝑖𝑐𝑒 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

ベンチマーク Interbench Hackbench 独自ベンチマーク Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

Interbench Con Kolivas による、インタラクティブ性を 計るためのベンチマーク Xやゲームをエミュレートした負荷をかけて、 スケジュールによるレイテンシを計測 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

Interbench 結果 (non-RT) 結果から抜粋すると load : X window, task : Video Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

Interbench 結果 (RT) Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

Interbench考察 Staircase の性能がやたらいいのが目立つ 欲しい CPU 使用量を請求してから、得られるまでの時間をここでは Latency として定義 RT はあんまりどれも変わらない その他の結果も見てみると、 I/O が発生してもDeadLines Met などが高いのでおかしいかも? Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

Hackbench 各スケジューラで Hackbench を実行してみた Hackbench はスケーラビリティを計るためのベンチ(らしい) 多数のプロセスがパイプを使って通信する fork() なのでかなり重い プロセス数は約1000個 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

Hackbench 結果 ./hackbench 30 を実行 かかった時間 (sec) Ingosched 38.620 Ingo_ll 78.689 Nicksched 45.717 Staircase 43.845 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

Hackbench 考察 同じ量のタスクを終わらせる速度という点でIngosched は 優れているようだ Ingo_ll はちょっと… 他の二つもそうは悪くない成績 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

オリジナルベンチマーク RT スレッドから RT、 non-RT スレッドを起床させ、時刻のずれを計測する 負荷スレッドとして Interbench 由来の Hackbench を group 10 として使用 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

pthread_cond_broadcast()で起床 ベンチマークの構成 時間計測スレッド pthread_cond_broadcast()で起床 RT(Non-RT)スレッド 起こされるまで pthread_cond_wait() hackbench 10 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

実験結果 RT の場合 Non-RTの場合 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

RTスレッドの場合 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

NonRTスレッドの場合 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

実験結果 (RT) 単位は usec 平均 最小 最大 標準偏差 Ingosched 575.03 3 7 44826 2 1417 1 Ingo_ll 386.66 3 3 8275 0 400 0 Nicksched 119.31 3 4 101 3 12 0 staircase 167.15 3 6 6627 7 209 5 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

実験結果 (non-RT) 単位は usec 平均 最小 最大 標準偏差 Ingosched 1840.22 3 8 12932 8 1130 4 Ingo_ll 214211.99 15 2 155475 5 19233 4 Nicksched 117.19 3 4 118 3 11 5 staircase 162.75 3 8 184 9 17 7 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

実験結果 修正 1000 個中 1-4 個程 2 桁程度違う値が混ざるので、6σ を超えるデータを弾いてみる 実験結果 修正 1000 個中 1-4 個程 2 桁程度違う値が混ざるので、6σ を超えるデータを弾いてみる Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

実験結果 (RT) 単位は usec 平均 最小 最大 標準偏差 Ingosched 126.38 3 7 41 0 12 5 Ingo_ll 169.79 3 3 46 8 14 2 Nicksched 116.09 3 4 47 3 11 0 staircase 101.03 3 6 109 2 11 7 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

実験結果 (non-RT) 単位は usec 平均 最小 最大 標準偏差 Ingosched 776.66 3 8 4582 8 374 2 Ingo_ll 212868.76 15 2 96878 1 18768 8 Nicksched 116.12 3 4 40 6 11 0 staircase 155.49 3 8 122 1 14 5 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

オリジナルベンチマーク考察 RT と Non-RT のタスクの扱いの違い fork() した時の動作 yield()したプロセスの評価 得られるタイムスライスの違い Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

RTとNon-RTの扱いの違い 実は Nicksched はRT の方が結果が悪い バグの匂いが… 状況によっては、かなり大きなタイムスライスを得ることができる nicksched 平均 最小 最大 標準偏差 R T 119.31 3 4 101 3 12 0 Non- RT 116.12 3 4 40 6 11 0 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

fork() した時の動作 スレッドも内部的には do_fork() が呼ばれる Ingosched は fork() すると親子でタイムスライスをシェアする fork() するたびに親のタイムスライスは1/2になっていく→ schedule() されれば戻る (瞬間的な大量の fork() の阻止) 子には sleep 評価にペナルティ Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

fork() した時の動作2 Nicksched は fork() すると親の sleep 評価を悪化 させる → 親が選ばれにくくなることで fork() を遅延させ る? Staircase は 子には一切のボーナスを加えない が、親には何もしない →子の動的優先度は単調減少するため結果とし て最低のタイムスライスしか取得できなくなる fork()した場合親は次にactivate()されるまでボー ナスを得られなくなる Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

sys_yield() された時の動作 Ingosched, Nicksched は特に何も Staircase はRTでなければ動的優先度を最高にする → yield() するタスクはいいタスク Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

NICE値に応じた タイムスライスの変化 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

NICE値に応じた タイムスライスの変化2 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

NICE値に応じた タイムスライスの変化3 Ingosched, Ingo_llは一次関数なので予想通り。 Staircaseも高々NICE値の2乗なのでそれなり。 Nickschedは、直接にはNICE値ではなく動的優先度ベースとなる。 最高優先度が1上がると他のタスクのタイムスライスが約半分になる。 最も優先されるタスク以外にはかなり厳しい。 →負荷タスクの優先度は下がる一方に対して、計測スレッドは上がる一方なので、負荷タスクがほぼ動けなっていたのかも? Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

まとめ スケーラビリティ以外の面でも Ingosched は性能がいい。しかし、 non-RT のスレッドを起床させるときの遅延が結構ある。 →fork()された負荷スレッドの子プロセスの評価がそれほど落ちないことに起因? 寝ないプロセスの場合、動的優先度は落ちるが、nice値さえよければそれなりのタイムスライスを獲得できるのは問題ではないのか? (事故はあるけれども) RTスレッドにすれば、1ms以下の応答性は確保できそう。 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

今後の計画(妄想?) 新しいスケジューラを作るには 優先度の増減 動的優先度は本当に必要なの? →固定優先度のスケジューラを作ってみる? →KFT等でスケジュール関連の関数にかかっている時間を計ってみる →SCHED_INTERACTIVEの導入とか タイムスライスの割り当て NICE値ベースの妥当性の確認 動的に設定することの複雑さ fork() の制御 fork bombを避けるためには yield() の評価 動的優先度をいつでも見られる方法が欲しい Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

イメージ DPRIO 500ms 1500ms 100 PID 324 468 531 140 動的優先度の可視化 533 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

おまけ その他の話 Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

最初は… 定期的に起床させたかったので、sleep 系 API は使えなかった → 最低でも指定した時間寝られてしまう 例. usleep(330000) とすると、次に起きるのは… 33msec + 1/HZ sec + 実行が回ってくるまで Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

pthread… MIPS では、 pthread_cond_signal() を呼んでも寝ているスレッドが起きてくれない (glibc-portsのバグ) Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

I/O scheduler 実験してみたがあまり面白くなかったので、 今回は見送り 実験してみたがあまり面白くなかったので、 今回は見送り Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

優先度が変化するとき Ingosched 寝た時 (+, -) Ingo_ll Nicksched Staircase 実行されたとき (+) 寝た時 (-) Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved

参考 PlugSched https://sourceforge.net/projects/cpuse/ Hackbench http://developer.osdl.org/craiger/hackbench/ Interbench http://members.optusnet.com.au/ckolivas/interbench/ Copyright©2006 Toshiba Information Systems(JAPAN) Corp. All Rights Reserved