DevilKing's blog

冷灯看剑,剑上几分功名?炉香无需计苍生,纵一穿烟逝,万丈云埋,孤阳还照古陵

0%

memory limit and oom

监控项 含义 备注
container_memory_cache Number of bytes of page cache memory. 高速缓存(cache)的使用量。cache是位于CPU与主内存间的一种容量较小但速度很高的存储器,是为了提高cpu和内存之间的数据交换速度而设计的。
container_memory_rss Size of RSS in bytes. RSS内存,即常驻内存集(Resident Set Size),是分配给进程使用实际物理内存,而不是磁盘上缓存的虚拟内存。RSS内存包括所有分配的栈内存和堆内存,以及加载到物理内存中的共享库占用的内存空间,但不包括进入交换分区的内存。
container_memory_swap Container swap usage in bytes. 虚拟内存使用量。虚拟内存(swap)指的是用磁盘来模拟内存使用。当物理内存快要使用完或者达到一定比例,就可以把部分不用的内存数据交换到硬盘保存,需要使用时再调入物理内存。
container_memory_usage_bytes Current memory usage in bytes, including all memory ``regardless of when it was accessed. 当前使用的内存量,包括所有使用的内存,不管有没有被访问。
container_memory_max_usage_bytes Maximum memory usage recorded in bytes. 最大内存使用量的记录。
container_memory_working_set_bytes Current working set in bytes. 当前内存工作集(working set)使用量。
container_memory_failcnt Number of memory usage hits limits. 申请内存失败次数计数。
container_memory_failures_total Cumulative count of memory allocation failures. 累计的内存申请错误次数。

一般情况下:

container_memory_max_usage_bytes > container_memory_usage_bytes >= container_memory_working_set_bytes > container_memory_rss

You might think that memory utilization is easily tracked with container_memory_usage_bytes, however, this metric also includes cached (think filesystem cache) items that can be evicted under memory pressure.The better metric is container_memory_working_set_bytes as this is what the OOM killer is watching for.

container_memory_usage_bytes还涉及到filesystem部分的使用的cache

Now what’s interesting is that the container is still not allowed to use more than the amount of memory at the container limit, but the OOMKiller does not kill the container until container_memory_working_set_bytes gets to the memory limit.

memory description