cgroup memory.limit_in_bytes: ограничен ли VIRT или RES?

1421
reikred

Предположим, терминология 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 
5

1 ответ на вопрос

2
victorgp

Это относится к пользовательской памяти, включая файловый кеш.

Проверьте 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), в байтах