我一直在分析我的 munin 图表,发现我的服务器的内存使用率相当高。
问题:
我的服务器内存使用率是否太高?如果是的话我应该:
- 获取具有更多内存的更大 EC2 实例
- 改变一些配置(建议?)
背景:
- EC2 大型实例
- 在一年的时间里,我对服务器做了一些小改动。但我不记得我所做的所有改动。
- 一个变化是启用 MySQL 缓存。在下面的图表中很容易看到这一点。
- 就我们的 Web 应用程序的 PHP/后端而言,并没有进行太多更改。
附加统计数据:
- 内存使用情况:https://i.stack.imgur.com/85zBF.png
- 正常运行时间:https://i.stack.imgur.com/HUPDo.png
- MySQL的:https://i.stack.imgur.com/5fifr.png
- Apache 卷:https://i.stack.imgur.com/xkk61.png
- Apache 访问:https://i.stack.imgur.com/hAt3R.png
- Apache 进程:https://i.stack.imgur.com/1jYnO.png
- 中央处理器:https://i.stack.imgur.com/KFgm0.png
- 索引节点:https://i.stack.imgur.com/1hpLN.png
- Google Analytics(比较访问量与统计数据):https://i.stack.imgur.com/RTeMj.png
边注:
我是一名相当优秀的开发人员(PHP……),但说到 Linux,我正在慢慢学习。这个问题可能有点笼统。我希望得到一个一般性的指导,这样我就可以学习,一旦我学会了,我就可以发布一个更具体的问题。
答案1
你的内存使用情况非常好。
绝大多数是“缓存”,这是一件非常好的事情。Linux 内核(实际上,大多数操作系统)会将数据缓存在内存中,以便后续的数据请求来自内存,而不需要从磁盘获取。从内存获取数据比从磁盘获取数据快得多。
其他需要注意的事项包括:
- 交换:在典型系统中看到一些交换使用并不罕见。重要的是服务器交换不多。Munin 的“交换输入/输出”图表可以提供一些信息,但您的情况是交换使用量始终为 0,因此没有问题。
- 已提交内存:这通常应小于服务器可用的总物理 RAM。如果高于这个数字,则内核需要开始使用交换(又称磁盘分页)的风险就会开始出现,正如我之前所说,这很糟糕。