我最近刚刚购买了一台专用服务器作为我们过去3年共享主机的小型社区网站的升级版.我安装了httpd,PHP和
mysql(通常用于网络服务器).我为几个虚拟主机配置了httpd并安装了webmin和cacti.一切似乎都非常流畅,直到我在图表中注意到仙人掌中的内存使用情况.
我的服务器有2gig RAM,由于某种原因,1.7gig正在使用中.我通过SSH以root身份登录并重新启动服务器,然后运行“top”.直接它使用600meg RAM并保持缓慢增加,但它看起来没有任何东西使用RAM.我跑’ps aux’.但由于一些奇怪的原因,它似乎没有正在运行的应用程序使用超过2%的内存.如果我将’ps aux’中的所有内存使用量加起来,它会出现大约20.6%,我认为它接近400meg内存,这是在使用超过800meg内存时.
因此,在某种程度上,我觉得好像在没有应用程序声称它的情况下使用了大约400meg的ram.随着时间的推移,内存慢慢爬升,直到它使用所有可用的RAM.虽然,我还没有让它达到这一点.
我不确定如何弄清楚下一步该做什么来纠正这个问题.任何帮助都将不胜感激.
来自cacti的内存使用情况图:
如果需要更多信息,请与我们联系.
解决方法
首先,请查看此页面:
Linux ate my RAM.
您没有描述任何表明内存泄漏的行为,至少没有我可以理解的行为.如上页所述,内核将使用空闲RAM作为磁盘读缓存.分配为高速缓存的字节将由内核立即释放到需要它的任何应用程序.
尝试免费运行而不是-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行?空闲列中的值反映了应用程序可用的实际RAM量.