本を読む

読書やコンピュータなどに関するメモ

第10回LFJS講演「メモリ管理の動向」を聞いた

 2月25日に、Linuxカーネル開発者のセミナーイベント第10回The Linux Foundation Japan Symposiumというのが開催された。

 海外から講演者を招いたりしていくつかの話がなされた中で、小崎資広氏の「メモリ管理の動向」についてメモ。間違いなどありましたらご指摘ください。

 「Linux Kernel Watch」のメモリ管理特集みたいなノリで、技術はもちろん、Linuxカーネルの開発における物事の決まり方や、そこにコミットしていくための心得を多めに入れて、カーネル開発者たちにアドバイスしていたと思います。

  • Split-LRU VMの共同開発者
    • 日本では「Linux Kernel Watch」でライターと思われちゃっているような(笑)
  • LKML
  • 英語の壁は気にしなくていいよ
    • Andrew Mortonのオーストラリア英語のニュアンスがイギリス人と通じないこともある
    • ちなみにAndrew Mortonはときどき寒いギャグを言うことでも知られている(笑)
  • 2008年トピック
  • -mm tree終了
    • mmotmに移行
    • Linux Nextの登場による
      • Andrewがいままで全部やっていたけど、メモリ管理に集中できるようになった
  • 大きなlockless pagecacheとSplitLRU VMがほぼ同時にマージ
    • パッチコンフリクトで-mm treeが壊れる
    • -mmとmmotmの差が広がる
    • みんなmmotmにマージ
    • -mmの更新頻度がさがる
  • SplitLRU VM
  • 2本だったページ管理用LRUを2→5
    • ページ回収の効率化
  • 管理用構造体のバランスが悪かった
  • 大規模DBと相性がよくなかった
    • DBMSは共有メモリを大量に使う
    • Linuxはメモリプレッシャーが低いうちは要Swap I/Oページは回収しない
      • 共有メモリは回収されない
    • いろいろな種類の回収ページが1つのリストにまじっている
    • 性質ごとに分ける
  • スワップアクセスは通常ファイルの3倍遅い
    • ランダムアクセス
    • スワップアウトよりファイルキャッシュ破棄を優先したい
    • 例外:tmpfs
  • Lockless pagecache
  • CPU数が増えればロック競合は増える
  • メニーコアがローエンドに
  • 巨大ファイルが一般的に
    • ファイル単位でロック→競合が発生しやすい
  • rwlock staration probrem
    • 複数のCPUがreadしあうとwriteのためにキャッシュを破棄できない
  • MMU notifier
  • KVM Guestのページのswap-outを可能に
  • Hostのswap-out時にKVMにspte (secondary pte) を無効にするための通知を送信する
  • 性能に大きく影響するが、メリットがあるのはKVMだけ、ということでモメた
    • 仮想化の流行
    • HPCにも必要との意見 (DMAとか)
  • spte: Guest Virtualメモリから物理アドレスの変換をキャッシュするテーブル
    • Hostで回収が発生して動くと不正参照に
    • callback関数でKVMに通知する
  • Mem-cgroup
    • 秋のLFJSでやってたので略
    • 秋のTodoは半分ぐらい解決された
  • Reclaim bail out
  • ページ回収しすぎるケース
  • 活発なworkloadを実行中は、ほとんどのpageに参照bit
    • ゲームとか
  • スキャン量を上げる→参照bitが落ちるとがんがん回収
    • 回収量によってもreclaimを中止するべき
  • が、Andrew MortonがNAK
    • 「昔同じパッチを入れたが、revertされている」
    • 「revertされた理由は忘れたが、なんかあったはず」
    • 全世界が驚愕(笑)
  • 議論のすえ、理由ないNAKはナシということでマージ
  • するとAndrewがpatch descriptionに大量に加筆 (歴史的グチ)
  • たまらず小崎さん、俺が過去MLを調べるとメール
  • Andrew、それを待っていたと返事(笑)
    • リーダークラスの人が他人に頼むのを遠慮していることもあるので、その空気を読むとコミットできちゃったりすることがある
  • Hackbenchで30% up
  • SLQB
  • いいかげんSLABを捨てたいというカーネル開発者たち
    • スパゲッティコード化していてメンテできない
    • が、SLUBはTPCCベンチで性能が落ちる
  • SLUBより新しいアロケータ登場
    • 高速というふれこみ
  • ベンチマーク競争
    • SLUBとSLQBともにどんどんコードが変わる
    • コーナーケースが見つかり、どんどん改善される
    • ユーザーにとって、いいこと
  • 「Q」は何の略、というツッコミ多数(笑)
    • 「Z」にしようというギャグも(笑)
  • High order allocation是非論争
    • 複数のページをくっつけてアロケーションする
    • 速くなるケースと遅くなるケースがある
    • 8Kぐらいをthresholdにするといいのではないかという結論
  • パッチは論理的に正しいだけではだめ、ベンチマーク重要
  • 最後に
  • Linus「みんなが使っているようなパッチであれば、マージしないということはない」
    • 実験的なパッチでなく、本当にみんなが使うものであれば、きっとマージされる
  • Q: LKMLのすべてに目をとおすコツは?
    • チェックしてもらうコツでもあるけど
    • 有名人
      • AndrewのAnnouceだったらみんな見るよね
    • 気をひくSubject
      • 機能より改善点
    • スレッドが伸びていて、メンテナが議論している
      • 過去ログ読め、とツッコまれているのはスルーされる
      • そいういう人と認識されると不利
  • Q: ベンチマークは人工的
    • ベンチマークのジャッジはする
    • 網羅的ではない
    • 定番のベンチはある

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://emasaka.blog65.fc2.com/tb.php/561-62b19ecb

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly


FC2Ad