Fajar, yep, that is helpful. Thanks.
On 12 October 2017 at 10:42, Fajar A. Nugraha <l...@fajar.net> wrote: > On Tue, Sep 19, 2017 at 11:20 AM, Ivan Kurnosov <zer...@zerkms.ru> wrote: > >> >> But if I clear the system caches on the host >> >> echo 3 > /proc/sys/vm/drop_caches >> >> >> the container memory consumption drops to the expected <100mb. >> >> So the question, how to monitor the memory consumption from the container >> reliably? >> > > As in 'know what the kernel thinks the container is using? You're doing it > already. > > If you use lxcfs (which should be the case on ubuntu), /proc entries > inside containers are fake, created using data from the relevant cgroups. > > > >> And why does `free` count caches as used memory inside container? >> >> >> > > From https://www.kernel.org/doc/Documentation/cgroup-v2.txt: > " > Memory > ------ > > The "memory" controller regulates distribution of memory. Memory is > stateful and implements both limit and protection models. Due to the > intertwining between memory usage and reclaim pressure and the > stateful nature of memory, the distribution model is relatively > complex. > > While not completely water-tight, all major memory usages by a given > cgroup are tracked so that the total memory consumption can be > accounted and controlled to a reasonable extent. Currently, the > following types of memory usages are tracked. > > - Userland memory - page cache and anonymous memory. > > - Kernel data structures such as dentries and inodes. > > - TCP socket buffers. > > The above list may expand in the future for better coverage. > > ... > Memory Ownership > ~~~~~~~~~~~~~~~~ > > A memory area is charged to the cgroup which instantiated it and stays > charged to the cgroup until the area is released. Migrating a process > to a different cgroup doesn't move the memory usages that it > instantiated while in the previous cgroup to the new cgroup. > > A memory area may be used by processes belonging to different cgroups. > To which cgroup the area will be charged is in-deterministic; however, > over time, the memory area is likely to end up in a cgroup which has > enough memory allowance to avoid high reclaim pressure. > > If a cgroup sweeps a considerable amount of memory which is expected > to be accessed repeatedly by other cgroups, it may make sense to use > POSIX_FADV_DONTNEED to relinquish the ownership of memory areas > belonging to the affected files to ensure correct memory ownership. > " > > > > An interesting question would be "can you exclude page cache from cgroup > memory accounting". I don't think that's possible though. > > -- > Fajar > > _______________________________________________ > lxc-users mailing list > lxc-users@lists.linuxcontainers.org > http://lists.linuxcontainers.org/listinfo/lxc-users > -- With best regards, Ivan Kurnosov
_______________________________________________ lxc-users mailing list lxc-users@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-users