twitter icon   twitter icon   rss icon

Linux.com Japan

Home LinuxCon Japan 2012特集 LinuxCon Japan 2012を3倍楽しむための基礎知識 第6回Linux Kernelメモリ管理最新動向[その2]

LinuxCon Japan 2012を3倍楽しむための基礎知識 第6回Linux Kernelメモリ管理最新動向[その2]

 

LinuxCon Japan 2012を3倍楽しむための基礎知識

第6回 Linux Kernelメモリ管理最新動向[その2]

 

 

2012年6月6日~8日にLinuxCon Japan 2012 が開催されます。ここではLinux Kernelの最新技術の発表や議論がいろいろ行われるのですが,このカンファレンスを楽しむ手助けとなる記事を…ということで,最近のLinux Kernelのメモリ管理の以下のトピックについて,2回に分けて紹介しています。

第2回目の今回は,以下のテーマについて説明します。

  • ファイルシステム,デバイスと連携したエンハンス
  • メモリ資源管理機能(cgroup)
  • CleanCache

ファイルシステム・デバイスと連携したエンハンス

I/O less dirty throttling

Linuxでは「ファイルシステムに書き戻す必要のあるデータを持ったページ」をdirty pageと呼びます。これらのページはファイルシステムにデータを書くまでは破棄できませんから、メモリ回収前にI/Oを行う必要があります。しかし、I/Oをする際にもメモリが必要になることはよくあります。メモリの大部分がdirtyになってしまうとメモリ回収に悪影響がありますので,Linuxはdirtyページの総数を一定以下に保つようにしています。この一定以下に保つ処理をdirty throttleと呼び,dirty page管理の閾値をdirty limitと呼びます。この処理ではファイル等への書き込みの途中でdirty page量とdirty limitを比較し,dirty page量がdirty limitを超えないように書き込みを抑制します。

以前は,dirty pageの量がdirty limitを超えた場合,limitを超えたthreadが直接「ファイルシステムへの書き戻し」を呼び出していました。そうするとdirty page量が減るまではthreadは実行を止め,アプリケーションも進みません。この書き込みは,I/Oに対する酷い外乱要因となってファイルシステムのパフォーマンスを悪化させるため,アプリケーションが突然遅くなるという問題がありました。

この問題に対し,dirty pageがlimitに近くなった場合,実行中のthreadからは直接にはI/Oを出さないようにする修正がマージされました。新しい dirty throttling ではdirty page の量がシステムに設定されているdirty limitに近づくと,書き込みを行っているthreadの書き込み速度を抑制します(少し寝かせる)。

この抑制の仕方がポイントで,今までの実装ではdirty limitになった瞬間に突然遅くなっていた(書き戻しを始めるため)のに対して,新しい実装ではdirty limitに近づくと,徐々に書き込みを行うthreadのスピードが遅くなります。そのため,突然threadがブロックされて大量の書き戻しを開始する処理は無くなり,ファイルシステムへの外乱要因も減るというわけです。

この実装は非常に複雑で,筆者も理解しているとは言い難いのですが,幸いなことに実装者であるWu Fengguang氏(Intel)によるプレゼンテーションが LinuxCon Japan 2012で行われます。ユーザの中でもdirty_ratioをチューニングしている方がいらっしゃると思いますのでこ,の機会に聴講・質問されてみてはいかがでしょうか?

Swap

gihyo.jp の記事全文を読む

Linux Foundationメンバーシップ

30人のカーネル開発者

人気コンテンツ

  1. Today's Linux 2018/04/09 2018年 4月 08日
  2. Today's Linux 2018/04/11 2018年 4月 10日
  3. Today's Linux 2018/04/10 2018年 4月 09日
  4. Today's Linux 2018/04/16 2018年 4月 15日
  5. Today's Linux 2018/04/17 2018年 4月 17日

Linux Foundationについて

Linux Foundation はLinux の普及,保護,標準化を進めるためにオープンソース コミュニティに資源とサービスを提供しています

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

サイトに関するお問い合わせはこちらまで

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

Linux.com JAPANでは広く皆様の提案、要望、投稿を受け付ける予定です。

乞うご期待!