服务器物理内存最大使用量(1GB),我应该担心吗?

我有一个运行apache,mysql和nodejs的web服务器(Solaris)。 它总是接近1GB物理内存的最大使用量,下面是一个来自virtualmin的例子:

Webmin version 1.520 Virtualmin version 3.81.gpl GPL Theme version 7.8 Time on server 28/Jun/2011 17:58 Kernel and CPU SunOS 5.11 on i86pc CPU load averages 2.21 (1 min) 2.16 (5 mins) 2.07 (15 mins) Running processes 141 Real memory 1024 MB total, 934 MB used Virtual memory 2 GB total, 1.29 GB used Local disk space 16.13 GB total, 2.86 GB used 

这里是一个来自top命令的示例:

 load averages: 2.44, 2.39, 2.19; up 3+22:11:31 18:02:47 142 processes: 140 sleeping, 2 on cpu CPU states: 76.3% idle, 16.1% user, 7.6% kernel, 0.0% iowait, 0.0% swap Memory: 32G phys mem, 1072M free mem, 76G total swap, 76G free swap PID 

谷歌search“服务器内存使用solaris”后,我认为我应该可以,只要我的交换空间不满? 但我不太确定,想要得到我的情况的投入。

一个好的操作系统总是使用尽可能多的RAM来避免磁盘访问的延迟。 如果只有一个处理器,那么超过2的服务器负载可能会引起担忧,但是使用RAM而不必交换不成问题。

Solaris不会有free运行所需的procps软件包,因为它利用了Linux的内核function。

为了查看Solaris服务器的内存使用情况,几乎所有可能的方法都在这个StackOverflow问题中进行了迭代: 在Solaris上查看内存使用情况的方法

top就是在这里更好地进行投注,因为你很容易就能看到谁在记忆中,如果你甚至担心的话。

出于容量规划的目的,我强烈推荐一些像sarcollectd这样的软件来保存内存和CPU利用率的日志。

提示中显示“免费”是什么? 现代操作系统的内存使用总是处于最大/最接近的状态,因为未使用的内存是浪费。 操作系统将默默地占用尽可能多的内存,并将其用于缓冲区/caching,并在进程需要内存时透明地杀死这些caching。 现在还没有访问Solaris的机器,但是这里是我的Linux机器的“免费”输出:

  total used free shared buffers cached Mem: 2058188 2003372 54816 0 183784 1620076 -/+ buffers/cache: 199512 1858676 Swap: 1052248 0 1052248 

2公斤羊,只有54.8毫克“免费”。 但是,一旦你消除缓冲区/caching,它实际上是1.85gig可用于程序。

我也强烈推荐使用sar,以便跟踪所有发生的事情。 分配的内存量并不重要。 重要的是如果系统由于内存争用而变慢。 你几乎想把“sgs -g”的“pgscan / s”列始终保持为0。 分页只是不再是扩大内存空间的有用方法。