可能重复:
为什么 Linux 会奇怪地报告“可用”内存?
我最近从一家托管服务提供商那里购买了一台云 VPS(CentOS 5.8 x64),内存为 1024MB。它是托管的,安装了 whm/cpanel 和其他东西。服务器是昨天才为我设置的,所以除了登录并执行“free -m”检查内存外,我没有以任何其他方式使用它。结果引起了我的注意:
total used free shared buffers cached
Mem: 1024 886 137 0 24 272
-/+ buffers/cache: 588 435
Swap: 1023 0 1023
令人震惊的是,我的网站只有 137MB 的 RAM 可供使用,而我还没有添加任何 RAM。因此,使用的 886MB 全部是系统开销。
我重新启动了系统并再次执行“free -m”,结果几乎相同。
我的问题是,我应该担心这个吗?
我有另一台 VPS1.5GBRAM 来自另一个提供商,目前有 20 个左右的网站。它还使用 whm/cpanel 和 Apache 等进行管理。它不是一个繁忙的服务器,但负担适中。然而,“free -m”的结果一直很好,1GB每次检查时,系统都会显示有可用的 RAM。它确保系统有足够的 RAM,这样就不会占用交换空间,否则会造成性能问题。
那么,对于全新的 VPS 来说,即使重新启动后,可用 RAM 仍然很少,这是正常的吗?在 512MB 服务器上添加 20 个左右目前可以正常使用的网站(Linode.com 的 19.95 美元套餐,包含 Apache、MySQL、PHP)后,我会遇到问题吗?
任何见解都将不胜感激!谢谢!
答案1
您的“可用”内存应为 137+24+272 = ~435 [误差范围](阅读下面 Peter 的第一条评论)
在buffer/cache
行列中free
,该 435M 由内核“保留”,但当程序请求它们时可用。
就内存使用情况而言,如果以下情况属实
- mysql 正在运行并且启用了 Innodb
- apache2 正在运行并且启用了 mod_php
网站大小、流量、数据库大小信息尚未提供,很难判断这个盒子可以走多远或者是否会爆炸。
但是,如果相同的网站托管在大小只有一半的机器上,并且运行良好,那么理论上应该没有问题。但有一个条件,即两个机器都运行在相同的架构上(都是 64 位或都是 32 位)。