我最近刚买了一台专用服务器,作为一个小型社区网站的升级,这是我们在过去3年中共享的主机。我已经安装了httpd、php和mysql (通常用于had服务器)。我为一些虚拟主机配置了httpd,并安装了webmin和仙人掌。所有的事情看起来都很顺利,直到我注意到图表中有一些东西是为了在仙人掌中使用内存。
我的服务器有2GIGRAM,由于某种原因,其中1.7G的内存正在使用。我以root身份通过SSH登录,重新启动服务器,然后运行“top”。很快,它就猛增到使用了600 slowly,并且一直在缓慢地增长,但它看上去并没有使用任何内存。我查过“ps辅警”。但是由于一些奇怪的原因,看起来似乎没有运行的应用程序使用超过2%的ram。如果我把“ps aux”中的所有mem使用量加在一起,就会得出大约20.6%的结果,我假设它接近400 mem,这是在使用800 mem的时候。
所以,在我看来,似乎有大约400 me的ram被使用在没有应用程序声称它的地方。随着时间的推移,内存慢慢上升,直到它使用所有可用的RAM。不过,我还没说到那个地步。
我不太清楚下一步该怎么做才能纠正这个问题。任何帮助都将不胜感激。
来自仙人掌的内存使用图:

‘ps aux’和‘free和’输出
如果还需要更多的信息,请告诉我。
发布于 2010-09-27 00:28:31
首先,检查这个页面:Linux吃了我的内存。
您还没有描述过任何显示内存泄漏的行为,至少没有一个是我可以理解的。如前所述,内核将使用空闲RAM作为磁盘读取缓存。作为缓存分配的字节将由内核立即释放给任何需要它的应用程序。
尝试运行free而不是-o。在执行此操作时,将为您提供可用的RAM值,同时考虑到当前用于缓存的内容。下面是来自我的服务器的一些示例输出:
user@host:~$ free
total used free shared buffers cached
Mem: 510652 430976 79676 0 134520 156876
-/+ buffers/cache: 139580 371072
Swap: 262136 40796 221340看到-/+ buffers/cache线了吗?free列中的值反映了应用程序可以使用的内存的实际数量。
发布于 2011-02-03 01:51:20
这是我的配置:
IBM M3,双四核,8GB内存,CentOS 5 x86_64。
我们正在运行一个应用程序,它需要将数据保存在向量中,然后将其放到数据库中。运行应用程序几天后,我们运行了顶级程序,发现内存使用是99%+。这看起来很奇怪,我认为CentOS 5可能正在使用某种类型的内存缓存,但我们可以看到服务器性能明显下降。
所以我决定跑得更深。我们并排运行了两个终端窗口,以见证任何瓶颈的证据。在一个窗口中,我们打印数据的速度/秒,我们的应用程序接收数据,而在另一个窗口,我们运行一个tcpdump跟踪的特定端口。
我们发现网卡正在以极高的速度运行,并且能够很好地处理这些数据。但是内核无法将这些数据提供给我的应用程序。数据将保持在一个网络队列中,每6-10秒,应用程序将收到大量数据,然后再次下降。
解决方案:嗯,我没有任何关于分款OS 5的东西。但是我们把操作系统换成了Fedora 14 x86_64。内存利用率低于1%,内核能够以极高的速度处理数据,而无需排队。这就是我所拥有的,我不知道为什么CentOS不支持这种硬件架构。我们的另一个CentOS安装工作正常。但是当我们选择一种双核架构时,我们碰到了这堵砖墙。
希望这能有所帮助。
谢谢
侧边
https://serverfault.com/questions/184868
复制相似问题