web-dev-qa-db-ja.com

LXCコンテナはホストの完全なRAM量とCPUカウントを表示します

私はLXCコンテナを数年使用しており、最近、コンテナ環境内で実行されるアプリケーションのタイプを拡張しました。

次のような構成パラメーターを使用して、コンテナーレベルでリソースを制限し始めています。

lxc.cgroup.cpuset.cpus                 = 16-23
lxc.cgroup.memory.limit_in_bytes       = 30720M
lxc.cgroup.memory.memsw.limit_in_bytes = 32768M

「チューニング」ツール( pgtune )を使用してPostgresデータベースの構成を生成している開発者と協力していますLXC環境内で実行されます。このツールは古く、VMまたはコンテナー対応ではありません。これは、システムにRAM=に基づいて推奨サイズ設定を表示します。

これは、ホストシステムのすべてのRAM(96GB)がコンテナインスタンスに表示されることを確認すると、場合によっては有害である可能性があることを認識したときです。

これの回避策はありますか、それともLXCを使用する場合の回避策ですか?

4
ewwhite

現在、procファイルシステムはマウント名前空間で「コンテナ対応」ではないため、これに基づいたロジックは、コンテナ関連の値ではなくホスト関連の値を取得します。

しかし、作業は進行中であり、lxc-fsと呼ばれ、ほとんどのリリースは ここで入手可能 です。 。これは、/procへのバインドマウントを可能にし、コンテナー内で一貫性を保つことができるユーザー空間の回避策です。

8
Xavier Lucas

それを回避する方法はないようです。 LXCはcgroupを使用してRAM制限を行い、非仮想化対応ツールは/proc/meminfoのような統計を読み取ります。これはLXC内に含まれているnotであり、全体を出力しますRAM。コンテナー内で実行すると、freeまたはtopでもこの動作を確認できます。

ソース: http://fabiokung.com/2014/03/13/memory-inside-linux-containers/

4
Nathan C