【问题标题】:how to clear cache memory inside docker container如何清除docker容器内的缓存
【发布时间】:2017-09-18 11:14:19
【问题描述】:

我在 EC2 中有一个 docker swarm CE 设置。 我有两个节点。 1名经理和1名工人。 主机实例类型为 Alpine Linux。

在 Manager 主机中,内存使用情况为:

~ $ free -m
                    total       used       free     shared    buffers     cached
Mem:                 7972       4996       2975        715        178       2857
-/+ buffers/cache:   1960       6011
Swap:                 0          0          0

~$

现在当我登录容器时,

~ $ docker exec -it c7cc255aca1f /bin/bash
 [root@c7cc255aca1f /]# 

And see the memory utilization:

[root@c7cc255aca1f /]# free -m
              total        used        free      shared  buff/cache   available
Mem:           7972        1654        2970         715        3347        5269
Swap:             0           0           0
[root@c7cc255aca1f /]#

请帮助我如何清除缓冲区/缓存或缓存?

【问题讨论】:

    标签: caching memory docker alpine swarm


    【解决方案1】:

    要清除缓存,请参阅https://unix.stackexchange.com/questions/17936/setting-proc-sys-vm-drop-caches-to-clear-cache

    顺便问一下,为什么要删除缓存?我确定您不想删除缓存(除非您正在执行一些读取基准测试,例如 dd)。

    只要进程需要内存,您的缓存就会被释放。它旨在使用所有可用内存。在 Linux 下,只要你有足够的available(或total-- buffers/cache 就足够了),在没有“空闲”内存(free 称为“空闲”)的情况下运行是完全可以的。

    还强烈建议添加 SWAP(即使您不想交换)以防止 OOM 情况。只需在某处创建一个交换文件,并将vm.swappinesssysctl 参数设置为0,这样如果仍有可用的 RAM 内存,它将不会被使用。

    【讨论】:

    • @tamerlaha:很多人,包括我(如果你愿意,我可以链接一些文章,但你可以自己轻松地谷歌它)。 通常最好避免 OOM 杀手并牺牲一些性能,但与 YMMW 一样(我见过一些系统因为缺少 SWAP 而崩溃)。但请详细说明您的评论,也许您有我遗漏的一点。无论如何,最初的问题是关于缓冲区/缓存的,如果您想问另一个问题,请发布一个,或者如果您有反驳,请发布更详细和建设性的评论。
    • 我在容器 A 内有活动(文件)内存在增长。如果容器 B 内存不足会怎样?容器 A 中的缓存是否可以被释放来为容器 B 提供内存?
    猜你喜欢
    • 1970-01-01
    • 2011-05-10
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2017-11-15
    相关资源
    最近更新 更多