
Предположим, что терминология 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_bytes здесьhttps://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Resource_Management_Guide/sec-memory.html
memory.limit_in_bytes устанавливает максимальный объем пользовательской памяти (включая файловый кэш).
Существование:
кэш: кэш страниц, включая tmpfs (shmem), в байтах
rss: анонимный и кэш подкачки, не включая tmpfs (shmem), в байтах