CentOS 6.4 X86_64使用太多的RAM和SWAP

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

标签: php memory-management memory-leaks centos

我已经在网上冲浪了大约1个星期,我发现的一切都是:“CentOS知道如何使用ram,不要担心”但我真的认为这是一个问题。
我有一台最近/干净安装CentOS 6.4 X86_64的VM,1.5GB内存,1个处理器/ 4个内核和700MB SWAP,问题在于内存消耗。
我安装了postgresql,pgadmin3,JRE 7.25(不是JDK也不是OpenJDK),netbeans 7.3.1和apache但大部分时间(99%)我只需要同时打开NB和firefox,显然是httpd和pgsql服务。登记/> 好吧,当我打开netbeans时,它使用300Mb - 350MB,Firefox 100MB - 150MB,系统使用的初始内存大约为250MB,因此有750MB且系统监视器和 free -m 命令确认那,但是在几分钟之内,系统就会占用我所有的可用内存,并开始使用100MB - 200MB SWAP并且它真的很SssLOOOWWW .. 我正在开发一个简单的PHP / JS / HTML网站。

当系统占用我的所有内存并交换时, free -m 命令将返回:

    free -m
       total    used      free   shared    buffers    cached
Mem: 1511532  1477256    34276      0       18652     89325
-/+ b../c..:  1369279   142253
Swap: 711320   198652   512668

我知道实际的可用内存大约是140MB,但是:

  • 这是使用了大量内存而系统变得非常慢
  • 如果我关闭NB和FF,我只获得释放(250MB)
  • 使用的内存的一半
  • SWAP永远不会发布(仅在重新启动时)
  • 如果我再次打开FF和NB,它会再消耗250MB,甚至更多 SWAP !!!

我试过这个:

  • 我将Swappiness值从60改为5,实际上是系统 在获得95%的RAM使用之前,它不会使用交换。
  • 我在启动时禁用了不需要的程序,如蓝牙mgr,邮件,登录声音,能量mngr(它是台式机)。
  • 我将JVM Max堆大小设置为256MB,实际上在java / netbeans之间(虚拟+共享)=实际使用的内存永远不会> 400MB
  • 如果我按服务检查服务(包括多个httpd和PGSql子服务),使用的内存不超过750MB
  • 我不得不说,当我在Win 7 / WAMP中测试完全相同的网站时,Netbeans,PGAdmin3,Firefox和posgres服务使用的内存与centOS(500MB)中的内存几乎相同,并且使用了初始内存通过系统(900MB),总的已用内存为1400MB,并且没有变化,因此不是编程错误。
  • 最后,我重新安装了CentOS,问题仍然存在

2 个答案:

答案 0 :(得分:0)

如果你使用“htop”查看记忆,你会发现内存条有3种颜色。我猜你的大多数内存都是黄色的。

基本上,各种操作系统缓存都在使用您的内存。这些缓存在系统需要时被推出内存。系统保持ram副本,以便当数据仍在内存高速缓存中时,如果再次执行相同的命令/程序,centos可以更快地执行。这就解释了为什么你只是应用程序关闭时释放的内存的一部分。

这从来就不是导致我减速的原因。

我一直在使用火狐内存使用气球。

也许这是一个虚拟化平台问题。你的主机操作系统是什么?你使用的是什么虚拟平台?

答案 1 :(得分:0)

正如我所说的,我重新安装了CentOS x64并且内存消息的问题仍然存在,所以我根据自己的经验对自己的具体案例有了理论。
如果您不完全确定您的程序/应用程序是为64位设计的,那么最好安装32位CentOS EVEN FOR AMD X64。 我的情况:

  
      
  • Amd Athlon X4 640处理器(64位)
  •   
  • VMware 7
  •   
  • 1个处理器/ 4个核心,1.5GB RAM
  •   
  • CentOS 6.4 32位
  •   
  • apache(httpd)
  •   
  • Php 5.3.3
  •   
  • Postgresql,(服务器,客户端,contrib,libpq)
  •   
  • pgAdmin III
  •   
  • 带有 firebug和colorzilla 扩展程序的Firefox 17 ESR(默认centos浏览器)
  •   
  • Opera(上次发布)
  •   
  • JRE 7.25(仅限netbeans工作 - 从Oracle下载而不是openJDK)
  •   
  • Netbeans 7.3.1(PHP - HTML5)
  •   

现在我已经打开了pgadmin,netbeans(有10个活动标签)和firefox,可用内存是(150 + MB免费+ 20 + MB缓冲区+ 200 + MB缓存),如果我打开歌剧时需要更多内存或任何其他程序都会释放一些缓存的内存,因为它应该完成。 哦,SWAP的使用是0.00000000,你知道它真的很有用但是如果你使用交换中加载的程序(全部或部分),它至少比RAM中加载的程序慢10倍。