Uso do cache de página listado no arquivo memory.stat do cgroup

Uso do cache de página listado no arquivo memory.stat do cgroup

O arquivo memory.stat de um cgroup lista o uso do cache de página para esse cgroup (nos campos cache e total_cache). Como é derivado o uso do cache de página?

Por exemplo, o arquivo a.txt é aberto pelos cgroups A e B. A e B mantêm seu próprio cache de a.txt? Ou o cache de a.txt é compartilhado entre A e B? Se for compartilhado, o uso do cache de página do memory.stat para A e B será incrementado na mesma quantidade (quantidade total)?

Além disso, por que memory.stat não inclui um campo para cache de buffer ou cache de troca?

A distribuição é Linux Mint 18.2.

Responder1

Isso é discutido na seção 2.3 dohttps://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt...

2.3 Contabilidade de Página Compartilhada

As páginas compartilhadas são contabilizadas com base na abordagem de primeiro toque. O cgroup que primeiro toca uma página é contabilizado na página. O princípio por trás desta abordagem é que um cgroup que usa agressivamente uma página compartilhada acabará sendo cobrado por isso (uma vez que ela seja descarregada do cgroup que a trouxe - isso acontecerá sob pressão de memória).

Quanto às outras questões...

Desde o Linux 2.4, o buffer foi adicionado ao cache (vejahttps://stackoverflow.com/a/14671569). Como tal, você não encontrará um campo separado para buffer em memory.stat.

Para que o swap seja listado em memory.stat, é provável que o kernel precise ser compilado com CONFIG_MEMCG_SWAP_ENABLED.

informação relacionada