El archivo Memory.stat de un cgroup enumera el uso de la caché de páginas para ese cgroup (en los campos cache y total_cache). ¿Cómo se deriva el uso de la caché de la página?
Por ejemplo, el archivo a.txt lo abren tanto el grupo A como el B. ¿A y B mantienen ambos su propio caché de a.txt? ¿O el caché de a.txt se comparte entre A y B? Si se comparte, ¿el uso de caché de la página de Memory.stat para A y B se incrementará en la misma cantidad (cantidad total)?
Además, ¿por qué Memory.stat no incluye un campo para caché de búfer o caché de intercambio?
La distribución es Linux Mint 18.2.
Respuesta1
Esto se analiza en la sección 2.3 dehttps://www.kernel.org/doc/Documentation/cgroup-v1/memory.txt...
2.3 Contabilidad de página compartida
Las páginas compartidas se contabilizan según el método del primer toque. El cgroup que toca por primera vez una página se contabiliza para la página. El principio detrás de este enfoque es que a un cgroup que usa agresivamente una página compartida eventualmente se le cobrará por ella (una vez que se descargue del cgroup que la trajo, esto sucederá debido a la presión de la memoria).
En cuanto a las otras preguntas...
Desde Linux 2.4, el búfer se ha agregado al caché (consultehttps://stackoverflow.com/a/14671569). Como tal, no encontrará un campo separado para el búfer en memoria.stat.
Para que el intercambio aparezca en memoria.stat, es probable que el kernel deba compilarse con CONFIG_MEMCG_SWAP_ENABLED.