私たちはLXCを使用していくつかのITサービスを実行するProxmox VE(カーネル5.3)クラスタを持っています。そのうちの1つはイントラネット全体のゲートウェイとして機能します。設定にはDebianイメージを使用し、転送とNATにはiptablesを使用します。私たちはしばしばこのコンテナでとんでもなく高いメモリ使用量を見ることができます。
htop
合計メモリ使用量が報告されますが、リストされているプロセス(RES列)の合計は100MiB未満です。
ホストcgroupコントローラは、次の完全な使用を報告しますmemory.usage_in_bytes
。
root@proxmox:/sys/fs/cgroup/memory/lxc/100# cat memory.kmem.usage_in_bytes
47140864
root@proxmox:/sys/fs/cgroup/memory/lxc/100# cat memory.usage_in_bytes
1066528768
ホストに3を書き込むと、/proc/sys/vm/drop_caches
コンテナに顕著な影響はありません。
「追加」メモリはどこにありますか?この問題を解決するには?
答え1
同様の問題が発生しました。
私のLXDコンテナで実行されているすべてのcronjobは、次の新しい一時的なユーザースライスを作成します。
● session-c48037.scope - Session c48037 of user apache
Loaded: loaded (/run/systemd/transient/session-c48037.scope; transient)
Transient: yes
Active: active (abandoned) since Tue 2023-05-02 16:24:02 CEST; 13min ago
Tasks: 0
Memory: 352.0K
CGroup: /user.slice/user-48.slice/session-c48037.scope
May 02 16:24:02 pos34 systemd[1]: Started Session c48037 of user apache.
まだ理解できないため、cronjobが完了した後にセッションはクリーンアップされません。で説明した
ように、時間の経過とともにキロバイトのメモリが増え、カーネル自体が非常に多くのメモリを消費します。したがって、これは「この問題をどのように解決しますか?」への答えではありませんが、「追加のメモリはどこにありますか?」への答えかもしれません。SUnreclaim
/proc/meminfo
これは、RockyLinux 8.7 LXDゲストを搭載したUbuntu 20.04ホストシステムで観察されました。 Snap経由でLXDバージョン4.0.9をインストールします。