cgroupを考慮した利用可能なメモリ

cgroupを考慮した利用可能なメモリ

一連の呼び出しが多くのメモリを使用するビルドプロセスの並列性を正確に拡張したいと思います。

cgroup制限を含む現在のプロセスに実際に利用可能なメモリ量を確認するための良いツールはありますか?

CPUの場合、nproc合理的な作業を行います。

$ docker run --rm -it debian nproc
8
$ docker run --cpuset-cpus 1 --rm -it debian nproc
1

私は現在、cgroupで実際に利用可能なメモリ量を見つけるための同等の方法を探しています(誰かが私のビルドプロセスを制限したい場合は、cgroupを共有する必要はないと仮定しています)。これまでに見つけた最高の方法です。試行錯誤です。

$ docker run --memory-swap 512M -m 512M --rm debian dd if=/dev/zero of=/dev/null bs=100M count=1
1+0 records in
1+0 records out
$ docker run --memory-swap 512M -m 512M --rm debian dd if=/dev/zero of=/dev/null bs=1G count=1
geier@lime:~$ echo $?
137

理想的には、cgroupが実際の制限を適用せずに物理メモリのみを使用しても、どこでも機能します。目標は、巨大なプロセスによってシステムに過負荷がかかるのを防ぐことです。

ベストアンサー1

おすすめ記事