• 検索結果がありません。

マルチコアシステムにおけるLinuxカーネル2.6のリアルタイム性評価

N/A
N/A
Protected

Academic year: 2021

シェア "マルチコアシステムにおけるLinuxカーネル2.6のリアルタイム性評価"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 73 回全国大会. 6G-2 マルチコアシステムにおける Linux カーネル 2.6 のリアルタイム性評価 徳丸. 潤一† 攝津. 敦† 落合. 真一† 松本. 利夫†. 情報技術総合研究所†. 三菱電機(株) 1. はじめに. 3.2.測定方法. デジタル家電や携帯電話などの組込み機器では、高機能 化に伴いハードウェアのマルチコア化が進んでいる。その 為の制御用 OS として Linux の採用が増加しており、近年 では 1 ミリ秒以下のオーダの応答性を必要とする領域に 対しても適用が広がってきている。Linux カーネル 2.6 で は、リアルタイム優先度の導入やプリエンプション機能な ど、Linux カーネル単体でのリアルタイム性の向上が図ら れてきており、また従来からマルチプロセッサのサポート を考慮した Symmetric Multiprocessing (以下 SMP)機能を 実装しマルチコアとの親和も高い。しかしながらマルチコ アとリアルタイム性との整合性については評価できてい ない。そこで今回、マルチコアシステムにおける Linux カーネル 2.6 のリアルタイム性について評価を実施した。 本稿ではその結果について述べる。. リアルタイム性評価として、低優先度プロセスで負荷を かけた状態における高優先度プロセスの周期起動遅延時 間を、プロセス応答遅延時間として測定した。 負荷プログラムはカーネル負荷(共有メモリ、スケジュ ーラ、タイマ、メモリ)と I/O 負荷(ハードディスクに対す る読出し書込み)で構成している。. 2. Linux のマルチコア/リアルタイム機能 2.1.Linux のマルチコア機能 Linux は複数のコアが対等な立場で処理分担する SMP の 構成で動作することが可能である。SMP では、複数のコア で 1 つのメモリ空間を使用し情報を共有している。一方 SMP に対して、コアごとに役割を固定化し、複数のコアが 独 立 し た メ モ リ 空 間 を 確 保 し 動 作 す る Asymmetric Multiprocessing(以下 AMP)という構成があるが、Linux ではこの構成をとることは出来ない。しかし Linux では、 プロセスを特定のコアに割付ける CPU アフィニティ機能 を有しており、これを用いることで擬似的な AMP を構成す る事が可能である。この CPU アフィニティを設定するのは、 Control Group(以下 cgroup)機能を用いる。cgroup は、複 数のプロセスが所属するグループ単位で、管理する CPU コアを指定することができる機能である。. 2.2.Linux のリアルタイム機能 Linux カーネル 2.6 のリアルタイム機能として、O(1)ス ケジューラを用いた固定優先度のサポート、システムコー ルの途中であっても実行中のプロセスをプリエンプトし、 優先度の高いプロセスを実行できるプリエンプション機 能などを備えている。. 3. 評価方法 3.1.測定環境 評価対象の構成を表 1 に示す。 表 1 ハードウェア CPU メモリ ファイルシステム ソフトウェア カーネル. ユーザランド. 評価対象の構成. Xeon(R) CPU X5355 2.66GHz(8 コア) 4GB ハードディスク ext3:40GB Linux Kernel 2.6.34 CONFIG_SMP=y CONFIG_HZ=1000 CONFIG_PREEMPT=y など CentOS 5. 3.3.評価の観点 以下の観点で評価を行った (1) 動作コア数とリアルタイム性の関係 動作コア数の増減が、リアルタイム性に与える影響を 評価するために、Linux カーネルの動作 CPU コア数(1, 4,8)を変化させ測定を行った。 (2) アフィニティとリアルタイム性の関係 CPU アフィニティの設定が、リアルタイム性に与える 影響を評価するため、cgroup 機能を利用し高優先度 のプロセスと低優先度のプロセス(及びデーモン)を 別々のコアに割付け、測定を行った。 (3) I/O 系の負荷とリアルタイム性の関係 I/O 系の負荷が、リアルタイム性に与える影響を評価 するため、ハードディスクに対する読出し書込みの負 荷を追加し、測定を行った。. 4. 測定結果 3.3(1)~(3)の測定結果をそれぞれ次ページの図 1~図 3 に示す。これらの結果から以下のことが判明した。 4.1.動作コア数とリアルタイム性の関係(図 1) プロセス応答時間の最大値について、1コアの場合では 90 マイクロ秒、4 コア 540 マイクロ秒、8 コアで 600 マイ クロ秒の遅延が発生し、シングルコアかマルチコアかで顕 著な差が見られた。プロセス応答時間の分布については、 1 コアの場合は 10 マイクロ秒付近にサンプル数の 98%が集 中している。同様に 4 コアでは 0 マイクロ秒~60 マイク ロ秒の間、8 コアの場合は 0 マイクロ秒~110 マイクロ秒 の間となっており、コア数に応じて分布が広がっているこ とが判明した。 4.2.アフィニティとリアルタイム性の関係(図 2) CPU アフィニティを設定することによって最大遅延時 間は 4 コアの場合では 90 マイクロ秒、8 コアの場合で 140 マイクロ秒と改善が見られた。プロセス応答時間のばらつ きについても小さくなり 4 コアの場合 0~40 マイクロ秒の 間に 98%以上のサンプルが集中した。また、8 コアの場合 も同様に 0~90 マイクロ秒の間に集中するようになった。 4.3.I/O 系の負荷とリアルタイム性の関係(図 3) ハードディスクに対して負荷をかけた場合、非常に大き なプロセス応答時間の遅延が発生し、1 コアで 720 マイク ロ秒、4 コアで 1,350 マイクロ秒、8 コアで 3,440 マイク ロ秒となった。また、遅延時間のばらつきも大きくなった。. 4.4.測定結果まとめ 以上の結果より次の 3 点が判明した。 ・ コア数が少ない方が、プロセス応答性能の最大遅延 が小さく、遅延のばらつきも少ない。 ・ 周期起動プログラムに CPU アフィニティを設定す. 1-41. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 73 回全国大会. ることでプロセス応答性のばらつきが少なくなり、 プロセス応答性が改善される。 I/O に対して負荷をかけることでプロセス応答性 の最大遅延時間が増大する。. ・ 1000000. 100000. 8コア 4コア. 10000. 1コア. 5.2.アフィニティ効果による応答性向上の要因. サンプル数. 1000. 100. 10. 1 0. 図 1. 100. 200 300 400 プロセス応答時間(マイクロ秒). 500. 600. 測定結果(CPU アフィニティ設定:無、ハードディ スク負荷:無). 1000000. 100000. 8コア. 10000. 4コア. サンプル数. 100. 10. 1 0. 図 2. 100. 200 300 400 プロセス応答時間(マイクロ秒). 500. 600. 測定結果(CPU アフィニティ設定:有、ハードディ スク負荷:無). 1000000. 100000 8コア. 10000. 4コア 1コア. 1000. サンプル数. CPU アフィニティを設定することで以下の効果が得ら れたと考えられる。 ・「資源の獲得解放時のロックによる遅延」の減少 利用できるコアを制限することで、スケジューラなど のカーネル資源競合が減っているため、割り込み処理や プロセス処理が短くなったと考えられる。 ・「キャッシュフラッシュによる処理遅延」の減少 特定コアに周期起動プロセスのみを割付けているこ とにより、そのコアが管理しているキャッシュに周期起 動プロセスのデータが常に取り込まれている状態で動 作できるため、プロセス動作が速くなったと考えられる。 これらの効果によりプロセス応答性が向上したと考え られる。. 5.3.I/O 系の負荷による応答性劣化の要因. 1000. I/O 系負荷を設定したことで以下のような要因が発生 し、プロセス応答性が劣化したと考えられる。 ・資源の獲得解放時のロックによる遅延 カーネル資源の獲得解放に加えて I/O 資源の獲得解 放が加わることで、割り込み処理やプロセス処理が大幅 に遅延していると考えられる。 ・割込み/プロセススイッチのロックによる遅延 ディスク I/O の完了を受取るコアと割込み処理を実 行するコアが異なる場合、割込み処理実行側のコアで I/O 獲得解放待ちが発生していると、割込み処理に切替 わらず、割込み処理が遅延すると考えられる。 要因としては 5.1.で述べた要因に加えて上記のような ディスク I/O 待ちが発生しているためプロセス応答時間 が劣化していると考えられる。. 6. おわりに. 100. 10. 1 0. 図 3. られる。 ・キャッシュフラッシュによる処理の遅延 メモリ負荷の影響によりキャッシュ上のデータが頻 繁に排出される。周期起動プロセスが動作するときにキ ャッシュのデータ取込み、キャッシュの同期などが発生 しプロセス動作が遅延すると考えられる。 これらの要因がコア数の増加により大きくなりプロセ ス応答時間の劣化に影響したと思われる。. 500. 1000. 1500 2000 プロセス応答時間(マイクロ秒). 2500. 3000. 3500. 測定結果(CPU アフィニティ設定:無、ハードディ スク負荷:有). 5. 考察 5.1.コア数増加による応答性劣化の要因 今回の測定結果から判明したコア数増加による応答性 劣化の要因として、以下のような事が考えられる。 ・資源の獲得解放時のロックによる遅延 カーネル負荷によって各コアがカーネル資源を頻繁 に獲得解放している。周期起動プロセスが動作するとき に、資源獲得待ちが発生することで、割込み処理やプロ セス処理が遅延すると考えられる。 ・割込み/プロセススイッチのロックによる遅延 周期起動プログラムが動作するコアとは別のコアに タイマ割込みが上げられるような場合、割込み処理実行 側のコアでクリティカルな処理が実行されていると、割 込み処理に切換わらず、割り込み処理が遅延すると考え. 1-42. 本稿では、マルチコアシステムにおける Linux カーネル 2.6 のリアルタイム性評価結果について述べた。評価の結 果、マルチコアシステムではコア数が増えるにしたがって リアルタイム性が低下していることが判明した。マルチコ アシステムにおいてリアルタイム性を向上させるために は、動作プログラムに CPU に対するアフィニティを設定す る、I/O 負荷を取り除く、コア数を少なくするなどの設定 を行う必要があると考える。 今後は更なるリアルタイム性の向上を目指し、プロセス 応答時間が遅延する要因の調査を続けていく予定である。 参考文献 [1] 出原章雄,攝津 敦,伊藤孝之,落合真一:組込み機 器における Linux カーネル 2.6 のリアルタイム性評価(情 報処理学会第 68 回全国大会) Evaluation of Linux Kernel 2.6 as a “realtime” Operating System for Multi-core System † Junichi Tokumaru ,Atsushi Settsu , Shinichi Ochiai , Toshio Matsumoto, Information Technology R&D Center , Mitsubishi Electric Corporation. Copyright 2011 Information Processing Society of Japan. All Rights Reserved..

(3)

参照

関連したドキュメント

3 軸の大型車における解析結果を図 -1 に示す. IRI

(2)主応力ベクトルに着目した解析の結果 図 10 に示すように,主鉄筋表面から距離 d だけ離れ たコンクリートの主応力に着目し、section1

計算で求めた理論値と比較検討した。その結果をFig・3‑12に示す。図中の実線は

以上の結果について、キーワード全体の関連 を図に示したのが図8および図9である。図8

を塗っている。大粒の顔料の成分を SEM-EDS で調 査した結果、水銀 (Hg) と硫黄 (S) を検出したこと からみて水銀朱 (HgS)

Robertson-Seymour の結果により,左図のように disjoint

次に我々の結果を述べるために Kronheimer の ALE gravitational instanton の構成 [Kronheimer] を復習する。なお,これ以降の section では dual space に induce され

これらの実証試験等の結果を踏まえて改良を重ね、安全性評価の結果も考慮し、図 4.13 に示すプロ トタイプ タイプ B