
假設「top」實用程式使用 VIRT/RES/SHM 術語:
cgroup 是否memory.limit_in_bytes
適用於 VIRT 或 RES 記憶體大小?我問這個問題是因為在 Fedora 23 中,在我看來 RES(常駐)記憶體受到 cgroup 的限制。然後我安裝了 Fedora 25,突然間我遇到了以前從未發生過的頻繁進程終止(底部包含一些 dmesg 輸出來說明問題)。我有預感,在 Fedora 23 和 25 之間,cgroup 改變了行為,現在似乎限制 VIRT 而不是 RES 記憶體使用。
有人能證實我的懷疑嗎?有沒有辦法恢復舊有的行為?我在 cgroup 內核文件中進行了搜索,但沒有找到任何內容,可能是因為我搜尋的術語不正確。
dmesg 輸出:
Tue Jun 20 01:46:12 2017: Memory cgroup out of memory: Kill process 787 (Web Content) score 204 or sacrifice child
Tue Jun 20 01:46:12 2017: Killed process 787 (Web Content) total-vm:14151032kB, anon-rss:5000940kB, file-rss:6132kB, shmem-rss:115956kB
答案1
它適用於用戶內存,包括文件緩存。
在這裡檢查 memory.limit_in_byteshttps://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html
memory.limit_in_bytes 設定使用者記憶體的最大數量(包括檔案快取)。
存在:
cache:頁面緩存,包括tmpfs(shmem),以位元組為單位
rss:匿名和交換緩存,不包括 tmpfs (shmem),以位元組為單位