ablog

不器用で落着きのない技術者のメモ

"Reducing Memory Access Latency" が素晴らしすぎる

Reducing Memory Access Latency by Satoru Moriya (Hitachi LTC)
が素晴らしすぎるのでメモ。

まとめ

  • vm.swappiness = 0 により、解放可能なページキャッシュがあるうちはプロセスのメモリ(anon page)をスワップアウトしないようにできる*1
    • swappines=0 にしても 解放可能なページキャッシュがあるのにプロセスのメモリがスワップアウトされる問題があったが、この資料を書いた守屋さんのパッチが Kernel 3.5 にマージされている → mm: avoid swapping out with swappiness==0
  • extra_free_kbytes で kswapd がページ回収を開始する閾値を上げ、direct reclaim が発生しにくくできる
  • Kernel 3.2 以降、direct reclaim ではクリーンなページキャッシュを回収対象としている
  • Preallocation + mlock(2)/mlockall(2) で重要なプロセスは物理メモリを最初に割当て、かつページアウト対象外とできる。ただし、アプリケーションをそういう作りにする必要がある。
  • cgroup の memory.limit_in_bytes で特定のプロセスのページキャッシュ使用量を制限できる。


REDUCING MEMORY ACCESS LATENCY | Hitachi Vantara Community も同じ資料のようです。

*1:正確にはページアウトしない