首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rethinkdb容器: rethinkdb进程比整个容器占用更少的RAM

Rethinkdb容器: rethinkdb进程比整个容器占用更少的RAM
EN

Stack Overflow用户
提问于 2015-11-07 13:42:39
回答 1查看 379关注 0票数 1

我正在Kubernetes集群中运行rethinkdb容器。以下是我注意到的情况:

在主机(即top )中运行CoreOS,rethinkdb进程大约需要3Gb:

代码语言:javascript
复制
$ top
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  981 root      20   0   53.9m  34.5m  20.9m S  15.6  0.4   1153:34 hyperkube
51139 root      20   0 4109.3m 3.179g  22.5m S  15.0 41.8 217:43.56 rethinkdb
  579 root      20   0  707.5m  76.1m  19.3m S   2.3  1.0 268:33.55 kubelet

但是运行docker stats来检查rethinkdb容器,它大约需要7Gb!

代码语言:javascript
复制
$ docker ps | grep rethinkdb
eb9e6b83d6b8        rethinkdb:2.1.5                             "rethinkdb --bind al   3 days ago          Up 3 days                               k8s_rethinkdb-3.746aa_rethinkdb-rc-3-eiyt7_default_560121bb-82af-11e5-9c05-00155d070266_661dfae4

$ docker stats eb9e6b83d6b8
CONTAINER           CPU %               MEM USAGE/LIMIT     MEM %               NET I/O
eb9e6b83d6b8        4.96%               6.992 GB/8.169 GB   85.59%              0 B/0 B

$ free -m
         total       used       free     shared    buffers     cached
Mem:          7790       7709         81          0         71       3505
-/+ buffers/cache:       4132       3657
Swap:            0          0          0

有人能解释为什么容器比rethinkdb进程本身占用更多的内存吗?

我运行的是dockerv1.7.1,CoreOS v773.1.0,内核4.1.5

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-07 18:14:37

top命令中,您将查看物理内存量。在stats命令中,这还包括磁盘缓存的ram,因此它总是大于ram的物理数量。当您确实需要更多的RAM时,缓存的磁盘将被释放供应用程序使用。

实际上,内存使用是通过cgroup memory.usage_in_bytes提取的,您可以在/sys/fs/cgroup/memory/docker/long_container_id/memory.usage_in_bytes中访问它。并引用linux https://www.kernel.org/doc/Documentation/cgroups/memory.txt第5.5节:

5.5 usage_in_bytes 为了提高效率,与其他内核组件一样,内存cgroup使用了一些优化,以避免不必要的缓存错误共享。usage_in_bytes受该方法的影响,不显示内存(和交换)使用的“确切”值,它是有效访问的模糊值。(当然,在必要时,它是同步的。)如果您想知道更准确的内存使用情况,应该在RSS+CACHE(+交换)值中使用memory.stat(参见5.2)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33583407

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档