Linuxのプロセスに適用されたすべてのcgroupを照会するためのAPI

Linuxのプロセスに適用されたすべてのcgroupを照会するためのAPI

私は独自の最大アクセス可能メモリを知る必要があるいくつかのソフトウェアを開発しています。 Linuxでは、cgroupによって異なります。私が収集したところ、プロセスは/proc/self/cgroup現在のメモリcgroupの1つを読み取って自分のメモリcgroupを決定できます。しかし、実際にはcgroup階層があり、プロセスはすべてのcgroupによって制限されます。現在のプロセスのすべてのcgroupに適用される最小空きメモリを決定する方法は?

たとえば、Slurm を使用している場合は、cat /proc/self/cgroup次を返します。

[...]
5:memory:/slurm/uid_3119/job_13759394/step_batch/task_0
[...]

/sys/fs/cgroup/memory/slurm/uid_3119/job_13759394/step_batch/task_0/memory.limit_in_bytesしたがって、これが適用可能なメモリ制限を示すと思うかもしれません。ただし、この場合は/sys/fs/cgroup/memory/slurm/uid_3119/job_13759394/memory.limit_in_bytesより制限的であるため、関連はcgroupです。この場合、最も厳しいメモリ制限を見つけるためにどのワークフローを適用できますか?

cgroup関連のユーティリティがたくさんあるようですが、systemd私のアプリケーションは可能なすべてのLinuxシステムで実行する必要があるため、システムへの外部依存関係や仮定を避けたいと思います。

関連情報