dockerコマンドに
--memory-swappiness=0
を付けて起動する
--memory-swappiness=0
このオプションを付けておけば、バックグラウンドでメモリ消費の多い処理を実行しても、そのDockerプロセスはスワップアウトされない。他のプロセスがスワップ・アウトされる。応答時間が重要なWebサーバーなどに付けておくと、メンテナンス時にいい感じで動いてくれる。
参考文献:
デフォルトでは、コンテナのカーネルは、アノニマス・ページ・メモリ上の何パーセントかをスワップ・アウトします。コンテナ向けのこのパーセントを指定するには --memory-swappiness で 0 ~ 100 までの値を設定します。 docs.docker.jp
ただ、このやり方だとZram使用時にはうまく動かなさそうだ。Zramにも全くスワップされなくなってしまうだろう。