resin服务器突然变慢问题解决办法.

標簽:resin 变慢问题 解决办法.   瀏覽(904)  日期:2008-02-03
  本人负责的一个网站不知道为什么,由周一开始,突然间变得很慢,有时则很快.搞来搞去,搞了差不多一个星期(部份时间开发新功能去了).终于找到原因了.
 
服务器情况:
linux as4
Intel(R) Xeon(R) CPU            5130  @ 2.00GHz
4G内存,
300Gscsi+320GSATA硬盘.
resin 3.0.23+ lighttpd
 
resin启动参数
-server -verbose:gc -Xdebug -Xloggc:gc.log -Djava.awt.headless=true -XX:PermSize=128M -XX:NewRatio=4 -XX:+UseConcMarkSweepGC -XX:MaxPermSize=200m -XX:NewSize=100 -XX:MaxNewSize=128m -Xmn256m -Xms512m -Xmx512m
 
  服务器运行一直很正常,到了周一,网站变慢,CPU占用50%以上,但内存点使用50%,其中大部分是mysql用去了.load average: 10.02, 10.03, 10.00 .
 
  全部程序都测试过.底层代码也查过.JDK换过,RESIN版本换过,mysql配置也换过.问题依然存在.
 
  利用resin-admin查看情况.
 
Total memory:501.44Meg
Free memory:

350.37Meg

  
  看上去也正常.不过free memory 变化的很快,由100多M,突然变到300多M.一开始还以为是程序释放了内存.就不去管他了.
 
  经过好多晚的调度,发现一个规律.当启动resin时,一切正常.证明跟jdk版本无关.
 
  今天早上更新服务器程序时,发现resin目录有个gc.log文件.打开一看.全部是gc的执行记录.很多.于是使用tail命令一下.
 
        tail -f gc.log
 
  吓了我一跳,平均每秒就会执行一次gc.问题就在这里.是gc把服务器拖慢了.
 
  于是就把resin的启动参数改一下,把内存改大,gc就不会这么容易触发.
 
        -server -verbose:gc -Xdebug -Xloggc:gc.log -Djava.awt.headless=true -XX:PermSize=128M -XX:NewRatio=4 -XX:+UseConcMarkSweepGC -XX:MaxPermSize=200m -XX:NewSize=100 -XX:MaxNewSize=128m -Xmn256m -Xms1024m -Xmx1024m
 
 
  现在好了,CPU占用只有0.1%左右,有时上到30%多,但很快降下来.load average: 0.05, 0.01, 0.00 <---服务器很健康.
 
  利用resin-admin查看情况.
Total memory:998.44Meg
Free memory:607.76Meg
      resin平均使用400M左右的内存,一开始只配置了512给她,怪不得老是gc.呵.



-------------------------------------------------
上一篇:lucene的简单实例<一> 下一篇:JVM详解之Java垃圾回收机制详解和调优



  
Are you Bot? How you know that?ofcz no.