3

我在 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 /]#

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

4

1 回答 1

2

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

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

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

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

于 2018-02-15T16:37:06.637 回答