我在 EC2 中有一个 docker swarm CE 设置。
我有两个节点。 1名经理和1名 worker 。
主机实例类型为 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 /]#
请帮助我如何清除增益/缓存或缓存?
最佳答案
要清除缓存,请参阅 https://unix.stackexchange.com/questions/17936/setting-proc-sys-vm-drop-caches-to-clear-cache .
顺便说一句,你为什么要删除缓存?我确定您不想删除缓存(除非您正在执行一些读取基准测试,例如 dd
)。
一旦进程需要内存,您的缓存就会被释放。它旨在使用所有可用内存。在 Linux 下,只要您有足够的 free
,完全可以在没有“空闲”内存(available
指的是“空闲”)的情况下运行。 (或 total
- - buffers/cache
就足够了)。
还强烈建议添加 SWAP(即使您不想交换)以防止 OOM 情况。只需在某处创建一个交换文件,然后设置 vm.swappiness
sysctl
0
的参数所以如果还有可用的 RAM 内存,它就不会被使用。
关于caching - 如何清除docker容器内的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43542912/