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人のカーネル開発者

人気コンテンツ


Linux Foundationについて

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

 

The Linux Foundation Japan

サイトマップ

問い合わせ先

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

Linux Foundation Japan

Linux Foundation

Linux Training

提案、要望

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

乞うご期待!