设为首页 收藏本站
查看: 3808|回复: 0

[经验分享] resin配置心得

[复制链接]

尚未签到

发表于 2017-2-20 08:03:20 | 显示全部楼层 |阅读模式
  引自:http://itfeng.blog.techweb.com.cn/archives/2007/2007101315013.shtml
  近期一直烦与WEB服务器的性能问题,常常www.fqf.cn网站出现内存溢出而导致web服务器停止的现象,对于一个商业网上来说,是个急需要解决的问题。
  这两天采用了国外一个不过的内存溢出检测软件,对网站进行测试,发现网站启动开始占用内存就飘升,3分钟内几乎能达到60M(蓝色曲线,红色代表服务器提供给web使用的内存空间JVM),

  解决办法中,首先想到就是检查程序本身是否存在某些代码没有释放资源,修改代码,处理常见的资源释放后,情况有所好转,启动的一段时间内能保持20M占用,但是时间长了,尤其白天人数多的时候,占用率也是节节上升,当突破64M(红色线)时,系统就报内存溢出,web服务器停止。
  查询了Rexin的运行情况,发觉是分配内存不会在继续增加:
  resin-status


Server:  
Config: D:\resin\conf\resin.conf
Server Start: Fri, 24 Nov 2006 13:42:51 +0800 (CST)
Server Reload: Fri, 24 Nov 2006 13:42:54 +0800 (CST)
Total Memory: 65.47Meg
Free Memory: 8.44Meg
Invocation Hit Ratio: 40.38% (4258/10543)
Proxy Cache Hit Ratio: 0.00% (0/22)
Threads Config Active Idle Total thread-max spare-thread-min 2 32 34128 25
  这样一来,修改代码不能根本解决问题,因为人数多的时候,的确需要一定量的内存空间。所以接着考虑如何提升JVM内存空间问题,按照文章的说法,在Resin目录的bin/httpd.sh文件,修改启动选项,对args=""修改为args="-Xms512M -Xmx1526M" 无论在本机试还是在服务器试,均无效,最后多次尝试,找到启动办法,就是在将resin加入系统服务的时候,同时加入参数,代替将参数写入启动文件中:   httpd.exe -install -Xms512M -Xmx1526M   。本地测试可行,到web服务器却失败,奇怪中找了另外一台服务器做测试,发觉可行,启动后能分配522M内存:
  resin-status


Server:  
Config: D:\resin\conf\resin.conf
Server Start: Fri, 24 Nov 2006 11:10:19 +0800 (CST)
Server Reload: Fri, 24 Nov 2006 11:10:19 +0800 (CST)
Total Memory: 532.80Meg
Free Memory: 499.62Meg
Invocation Hit Ratio: 91.66% (154/168)
Proxy Cache Hit Ratio: 0.00% (0/2)
Threads Config Active Idle Total thread-max spare-thread-min 11 29 40 128 25
  仔细分析一下,发觉web服务器在分配内存时报错,是服务器自身不足512M空闲内容分配给Resin(具体原因不清楚,估计是Oracle数据库同时在用,所以能用的资源不多了),于是改为初始佩服64M,最大为512M:
  resin-status


Server:  
Config: D:\resin\conf\resin.conf
Server Start: Fri, 24 Nov 2006 13:42:51 +0800 (CST)
Server Reload: Fri, 24 Nov 2006 13:42:54 +0800 (CST)
Total Memory: 122.11Meg
Free Memory: 20.23Meg
Invocation Hit Ratio: 42.19% (39812/94356)
Proxy Cache Hit Ratio: 0.00% (0/22)
Threads Config Active Idle Total thread-max spare-thread-min 23 29 52 12825
  内存分配问题终于解决,由表格可以看到,系统能分配给JVM的内存一百多M左右而已,不过这个数能让服务器安全的运行了一天,庆幸庆幸进一步解决。
  另外,学网上例子,测试了服务器的页面连接处理情况:
  public static void main(String[] args) {
         test test = new test();
         try {
             long a = System.currentTimeMillis();
             System.out.println("Starting request url:");
             for (int i = 0; i < 10000; i++) {
                 java.net.URL url = new java.net.URL("
http://www.fqf.cn:8088/list.jsp");
    
                 InputStream is = url.openStream();
                 is.close();
                 System.out.println("Starting request url:" + i);
             }
             System.out.println("request url end.take " +
                                (System.currentTimeMillis() - a) + "ms");
         }catch(Exception e){
             e.printStackTrace();
         }
     }

  发觉,开始请求的时候很快,达到一百多的时候,显然变得慢起来,按照文章说明,是由于线程(并发数)的问题,检查了resin的配置文件,发现线程(后来才知道是并发数)默认是128,改为10240如:
  <keepalive-max>10240</keepalive-max>
  启动后,看到resin状态,启动测试程序到500多的时,页面开始响应变慢,到此为止,至少提升了并发数方面。
  resin-status


Server:  
Config: D:\resin\conf\resin.conf
Server Start: Fri, 24 Nov 2006 11:51:39 +0800 (CST)
Server Reload: Fri, 24 Nov 2006 11:51:40 +0800 (CST)
Total Memory: 231.47Meg
Free Memory: 71.74Meg
Invocation Hit Ratio: 99.66% (1197/1201)
Proxy Cache Hit Ratio: 0.00% (0/1)
Threads Config Active Idle Total thread-max spare-thread-min 466 81 547 10240 25
  参考了相关文档,后来发现Resin源码有个地方写的数据值是512,也就是说明Resin自身对最大数做了限制。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-344437-1-1.html 上篇帖子: MyEclipse+resin环境搭建[转] 下篇帖子: ubuntu8.04配置resin
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表