了解CentOS内存使用情况

时间:2013-09-09 06:34:03

标签: memory-management centos

我不是操作系统专家,我无法理解服务器的内存使用情况。我需要你的建议来理解以下内容:

我的服务器有8 GB RAM并作为Web服务器运行。 PHP,mySQL和Apache进程占用了大部分内存。当我重新启动系统后发出命令“free”时,我通常会看到这些内容:

             total       used       free     shared    buffers     cached
Mem:       8059080    2277924    5781156          0        948     310852
-/+ buffers/cache:    1966124    6092956
Swap:      4194296          0    4092668

显然,免费内存迟早会丢失,缓存内存会增加,我认为没有任何问题,因为操作系统决定缓存它。

我不明白的是大约1-2天后机器重启后,我会略微看到使用的交换内存增加。这是不是意味着服务器不再拥有空闲内存并使用IO代替?我如何理解导致这种情况的过程?

我向stackoverflow用户提出这个问题,因为如果我向托管服务提供商询问,我相信他们会要求更多钱来增加内存。 感谢。

1 个答案:

答案 0 :(得分:4)

这是完全正常的。当机器启动时,大量服务也会启动。当他们运行他们的启动代码,读取他们的配置,等等,他们弄脏了一些内存页面。其中许多服务永远不会再运行。通过将此数据写入交换,操作系统完成两件事:

首先,如果它确实遇到内存压力,它可以丢弃页面而不必先写它们,因为它已经写过它们。其次,它可以丢弃页面以腾出更多可用内存来扩大缓存。

另一种方法是保留物理内存中未被触及的信息。这没有意义。