我的 ubuntu 服务器有多少可用内存?

我的 ubuntu 服务器有多少可用内存?

我是 Linux 服务器管理新手,正在考虑是否需要更大的机器。看来我的机器(运行 apache2、php5、ubuntu)在没有流量的情况下使用了 80% 的内存。

top
Mem:    501392k total,   398704k used,   102688k free,    22508k buffers
Swap:   499996k total,      868k used,   499128k free,   242296k cached

free -m
         total       used       free     shared    buffers     cached
Mem:           489        389        100          0         21        236
-/+ buffers/cache:        130        358
Swap:          488          0        487

我不确定我是否读得正确,但看起来 ubuntu 正在使用大量内存进行缓存,但我不确定这有多高效或者我是否应该更改我的服务器配置。

答案1

您的机器有 100MB 的可用空间,而缓冲区和缓存使用了大约 260MB。没有简单的方法可以知道它恰好使用了多少内存作为它“需要”的缓存,或者是否可以通过增加内存来提高性能。过多的磁盘 I/O 是一个好兆头,表明增加内存会有所帮助,因为它将允许更大的缓存。

您的系统使用内存的原因很简单——释放内存没有任何好处。如果内存未被使用,释放内存就是在浪费精力。如果内存被使用,释放内存也是在浪费精力,因为内存必须再次被使用。现代操作系统可以轻松地将内存从一种用途转换为另一种用途,而无需费心释放内存。现代操作系统只有在别无选择时才会释放内存。

答案2

准确了解系统正在做什么可能有点难以理解。这里有一个更图形化的方式来查看你的系统,称为 htop。

您可以使用以下命令安装它:

sudo apt-get install htop

除了显示正在使用的内存量的图形条之外,它还通过颜色编码显示了内存的用途。在下面的示例中,应用程序 (zimbra) 使用以下内容:
大量活动内存(绿色)。
一些缓冲区(蓝色)。
并且一部分交换/缓存在内存中(黄色)。

htop 示例

另外还有一些提示:
你可以使用以下方法监控 Apache 访问日志,检查服务器是否正在使用中:

tail -f /var/log/apache2/access.log

这将为您提供访问日志的实时流。

您还可以使用 iftop,它与 htop 类似,可以图形化地表示哪些流量以哪些速率流向哪些位置。

使用安装

sudo apt-get install iftop

答案3

Linux 几乎总是将所有可用内存用作磁盘缓冲区(= 缓存)。您的机器上也发生这种情况。这是正常现象,无需担心。当您的程序确实需要 RAM 时,缓存页面会被丢弃。

另外,为了更好地了解内存(和其他资源)的使用情况,我建议您查看一个名为“htop”的命令行程序。只需使用 apt-get 安装并从命令行运行它即可。

相关内容