我有一个具有 2 GB 内存的 EC2 小型实例,运行 Fedora Linux。
通常,我每天平均获得大约 275 个页面浏览量,并且我在机器上有一个监控代理。一些统计数据在可用内存方面有点令人担忧。
上周,内存最低时我们只有 30 MB 的可用内存,而今天早上似乎已经增加到 150 MB 左右。Hyperic 是我们的监控代理,它运行 Java。top 显示它的内存使用率仅为 3.4% 左右。
当我把所有的 httpd 进程加起来时,我发现内存使用率大约为 15-20%,而 mysql 只使用了 1% 左右。
Top 没有显示剩余内存的去向。我该怎么做才能找出导致高内存消耗的原因?可能是每天 275 次点击?我们的代码中大约 95% 是 PHP 和 HTML。MySQL 被一个名为 OpenVBX 的应用程序轻度使用,该应用程序仅在内部使用。
如果是 Apache,升级内存应该可以解决我们的问题,对吗?
任何建议都将非常有帮助,谢谢!
更新:免费显示:
total used free shared buffers cached
Mem: 1718724 1575024 143700 0 234328 969284
-/+ buffers/cache: 371412 1347312
Swap: 917500 1140 916360
答案1
基本上,您想要查看缓冲区/缓存行的空闲列,因此您有1.3G
空闲信息 - 您可能处于良好状态。
这个著名的页面是“救命!Linux 吃掉了我的内存!”http://www.linuxatemyram.com/。
简单来说,Linux 将使用 RAM 来缓存文件并进行排序,以便能够更快地传输文件。如果某个程序确实需要 RAM,那么它将从缓存中获取 - 但为什么不趁着还可以的时候使用 RAM 呢?
答案2
ps aux|less
给出每个进程使用的内存百分比,可能会有一点帮助。