【发布时间】:2015-07-04 09:22:35
【问题描述】:
释放页面缓存:
# echo 1 > /proc/sys/vm/drop_caches
释放dentries和inode:
# echo 2 > /proc/sys/vm/drop_caches
释放页面缓存、dentries 和 inode:
# echo 3 > /proc/sys/vm/drop_caches
我正在尝试了解 pagecache、dentries 和 inode 到底是什么。它们到底是什么?
释放它们是否也会删除有用的 memcached 和/或 redis 缓存?
--
我为什么要问这个问题?我的 Amazon EC2 服务器内存在几天内被填满 - 在 7 天内从 6% 增加到 95%。我必须每两周运行一次 cronjob 来删除这些缓存。然后内存使用率再次下降到 6%。
【问题讨论】:
-
这些方法应该与 memcached 或 redis 没有任何关系。这两个应用程序将维护自己的内部缓存机制以向最终用户提供它们的功能,而您的 3 个系统操作是否会影响它们是 Memcached 或 redis 的实现细节。
-
我对这个线程有点晚了,但很高兴知道您如何确定 95% 的 RAM 已在您的虚拟机中使用。通常有一种误解,即所有物理内存都在我们在这里讨论的缓冲区+缓存中使用。请参阅 link 以获得对这些列的详细说明。
-
Amazon EC2 详细监控报告内存 (RAM) 使用情况,它曾经显示 95% 的使用情况。有时甚至 98-99%
-
@syedrakib 你解决了内存问题吗?
-
@kassav 是的。就像我在问题末尾提到的那样。每隔 1 小时通过 cron 作业运行第三个命令
标签: caching memory redis memcached aws-ec2