我有一个安装了 directadmin 的 VPS。
我从 VPS 提供商那里购买的内存量是 1GB,系统显示我有 1GB 可用内存。
从一开始我就定期检查系统的内存使用情况,它从未低于 600MB。我一直以为没问题,直到最近。我怀疑一定出了什么问题,因为我的内存使用量现在超过了 850MB。
我使用top
和ps aux
命令获取了系统上运行的进程列表。经过计算,我发现 apache 和 mysql 的内存使用量总计不应超过 500MB。
然后我做了其他事情:我停用了 apache 和 mysql,再次发现使用的内存停留在 600MB 左右。
我想知道的是,我做错了吗(计算内存)?还是我的提供商在给我的内存量上撒了谎?这有可能吗,还是有一个隐藏的进程在消耗系统内存?
答案1
您已赢得对 Linux 内存使用情况感到困惑徽章!
在 Linux 中,进程并不是唯一消耗内存的东西。经常使用的文件和目录条目缓存在 RAM 中 - 这是因为从 RAM 读取文件比从磁盘读取文件快得多。我敢打赌你没有緩衝器和缓存计算 RAM 使用量时会考虑这些列。这些列也可以计算为可用 RAM。
但你不必担心。那些缓存和緩衝器如果您的应用程序确实需要该 RAM,则会立即自动清除。
答案2
你可能对内存缓存感到困惑,请参阅http://www.linuxatemyram.com/。
有一个 Python 脚本可用:http://www.pixelbeat.org/scripts/ps_mem.py这将为您提供更准确的全局和每个应用程序的内存使用情况视图。