FreeBSD 13.0-RELEASE のスワップを観察2021年04月19日 12時12分41秒

MacOS 上の VMWare で動かしている FreeBSD 13.0-RELEASE i386 がある。CPU は Quad Core Intel Corei7 が 2.9 GHz で、メモリの割り当ては 2000MB、ディスクは SSD、スワップ領域は 12GB 割り当てている。スワップも 50MB/s はいけるようだ。なお、現時点では ZFS は使っていない。

このシステムでは Java の NetBeans を動かし、C++ を clang でコンパイルする。テンプレートを大量に駆使しているプログラムなので、一部のファイルはコンパイルにおよそ 3GB のメモリを必要とする。

2000 MB の物理メモリで 12GB のスワップスペース。プロセスが使うメモリを目視しているが、2.5 GB 以上のスワップスペースを使っているのを見たことはない。その辺りになると、大体 Java プロセスが殺されてしまう。Java はページアウト出来ない領域を作っているようで、clang プロセスよりもページアウトに耐性が無い。他にも 3GB clang プロセスが二つ、三つ同時に立ち上がってしまうとこちらも殺されてしまう。50 MB/s でページアウトをしていてスワップ領域も大量に残っているが、ここらへんが境界になっている。

sysctl で OOM の決定を遅らせる事が出来るものがあったはずだが、現時点では触っていない。手元にはこのスピードのでるスワップ領域を持つ機械がないので手元では比較できないが、ここら辺がスワップを使える閾値なのだろうか。