内存占用统计
working_set和 Rss
RSS(Resident Set Size)是进程使用的物理内存大小,也就是进程在内存中占用的空间大小。
WSS(Working Set Size)是进程使用的内存大小,也就是进程正在使用的内存空间大小。
总的来说,RSS更加关注的是进程的物理内存使用情况,而WSS则关注的是进程的内存使用情况。
working set 仍然表示在一定时间内,容器内的进程实际上正在使用的内存页的集合。
RSS映射的物理内存
真实环境中两种表示相差不大,但更推荐使用working_set作为容器内存真实使用量(kubelt 判断 OOM 的依据)
阿里云解释
相关指标:
- anno_rss(RSan):所有类型资源的独占内存。
- file_rss(RSfd):File-backed资源占用的所有内存。
- shmem_rss(RSsh):Anonymous资源的共享内存。
命令 | 查询指标 | 说明 | 计算公式 |
top | VIRT | 虚拟地址空间。 | 无 |
ㅤ | RES | RSS映射的物理内存。 | anno_rss + file_rss + shmem_rss |
ㅤ | SHR | 共享内存。 | file_rss + shmem_rss |
ㅤ | MEM% | 内存使用率。 | RES / MemTotal |
ps | VSZ | 虚拟地址空间。 | 无 |
ㅤ | RSS | RSS映射的物理内存。 | anno_rss + file_rss + shmem_rss |
ㅤ | MEM% | 内存使用率。 | RSS / MemTotal |
smem | USS | 独占内存。 | anno_rss |
ㅤ | PSS | 按比例分配内存。 | anno_rss + file_rss/m + shmem_rss/n |
ㅤ | RSS | RSS映射的物理内存。 | anno_rss + file_rss + shmem_rss |
说明
WSS(Memoy Working Set Size)指标:一种更为合理评估进程内存真实使用内存的计算方式。但是受限于Linux Page Reclaim机制,这个概念目前还只是概念,并没有哪一个工具可以正确统计出WSS,只能是趋近。
Docker和K8s中的内存统计
Docker和K8s中的内存统计即Linux memcg进程统计,但两者内存使用率的定义不同。
进程组生态 | 计算公式 |
Memcg | rss + cache(active cache + inactive cache) |
Docker | rss |
K8s | rss + active cache |
Loading...