Файл memory.stat cgroup содержит данные об использовании кэша страниц для этой cgroup (в полях cache и total_cache). Как выводится использование кэша страниц?
Например, файл a.txt открыт обеими cgroup A и B. A и B поддерживают ли свои собственные кэши a.txt? Или кэш a.txt является общим для A и B? Если он является общим, будет ли использование кэша страниц memory.stat для A и B увеличиваться на одинаковую величину (общую величину)?
Кроме того, почему memory.stat не включает поле для буферного кэша или кэша подкачки?
Дистрибутив — Linux Mint 18.2.
решение1
Это обсуждается в разделе 2.3.https://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt...
2.3 Учет общих страниц
Общие страницы учитываются на основе подхода первого касания. Cgroup, которая первой касается страницы, учитывается для страницы. Принцип этого подхода заключается в том, что cgroup, которая агрессивно использует общую страницу, в конечном итоге будет платить за нее (как только она будет освобождена от cgroup, которая ее ввела, — это произойдет при нехватке памяти).
Что касается других вопросов...
Начиная с Linux 2.4 буфер был добавлен в кэш (см.https://stackoverflow.com/a/14671569). Таким образом, вы не найдете отдельного поля для буфера в memory.stat.
Для того чтобы swap был указан в memory.stat, скорее всего, ядро должно быть скомпилировано с CONFIG_MEMCG_SWAP_ENABLED.