Nginx+resin调优文档

奋斗吧
奋斗吧
擅长邻域:未填写

标签: Nginx+resin调优文档 Html/CSS博客 51CTO博客

2023-05-18 18:24:01 193浏览

Nginx+resin调优文档,前面一直使用该模式,mod_caucho暴露源码的bug一直未得到彻底的解决。因此切换到Nginx+resin平台。硬件上要求除了内存一定要足够大(建议>4G),无其它要求(当然也不能太破,呵呵)。操作系统强烈要求安装64位,32位操作系统jvm只能识别...


 

 

 为什么不选择Apache/mod+resin?

       前面一直使用该模式一直未得到彻底的解决。因此切换到Nginx+resin平台。硬件上要求除了内存一定要足够大(建议>4G),无其它要求(当然也不能太破,呵呵

Nginx+resin调优文档_JVM

)。操作系统强烈要求安装64位,32位操作系统jvm只能识别不到2G的内存,印象中是1.57G(单实例应用)。下面总结自己的一些调优方法及配置。


调优硬件环境


CPU:Intel Xeon*2(双核)
MEM:8G
SWAP:1G


一、测试32系统所支持的最大可用内存
java -XmxXXXXM -version
不断加大-Xmx的大小,截止到出现以下提示:
Could not create the Java virtual machine.

二、Nginx配置



location / {   
     root /var/www/app.cn;   
     index index.jsp;   
     proxy_pass http://localhost:8080;   
     include /usr/local/nginx/conf/proxy.conf;   
   }   

   location ~* \.(jsp|do|shtml)$ {   
     root /var/www/app.cn;   
     index index.jsp;   
     include /usr/local/nginx/conf/proxy.conf;   
     proxy_pass http://localhost:8080;   
     proxy_set_header X-Real-IP $remote_addr;   
   }


      以代理的方式进行整合,静态文件继续由Nginx来解析,扩展名为jsp|do|shtml才丢给后端resin来处理。即使resin发现的故障,前端最多只会报500、502 time out的信息。

三、resin配置

1、jvm的优化
#vi $resin_root/bin/httpd.sh





args="-Xmx6048m -Xms6048m -Xmn2g -Xss128k -XX:NewSize=256m -XX:MaxPermSize=512m -XX:ParallelGCThreads=20 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=90 -XX:MaxTenuringThreshold=31 -Dsun.net.inetaddr.ttl=60"


    1.1、Xmx与Xms建议配置一致,避免每次垃圾回收完成后JVM 重新分配内存。预留2G左右的内存空间给Nginx与OS就差不多了。
    1.2、Xmn配置成Xmx的1/3。
    1.3、Dsun.net.inetaddr.ttl=60,java对DNS解析域名结果进行缓存,默认超时时间为-1(在重启JVM前永久缓存),如有涉及域名解析失效需修改该值。

2、resin并发数限制
免费的resin是没有pro的授权,并发连接数(默认512)配置参数不可见。因此通过修改源码达到突破限制的目的。
1、修改方法:
    1.1、下载resin3.0.22源码;
    1.2、修改resin-3.0.22/modules/resin/src/com/caucho/server/port/Port.java


// default timeout   
            private long _timeout = 65000L;   
            private int _connectionMax = 512;修改成20480   
            private int _minSpareConnection = 16;   
            private int _keepaliveMax = -1;   
            private int _minSpareListen = 5;   
            private int _maxSpareListen = 10;

    1.3、将编译后的Port.class覆盖原 /lib/resin.jar包。

2、可以从resin-status结果得到证实

Nginx+resin调优文档_.net_02

                                                      [编译前]
---------------------------------------------------------------------------------------------------------------------------

Nginx+resin调优文档_thread_03

                                                       [编译后]

3、resin.conf配置


  1. <dependency-check-interval>-1</dependency-check-interval>   


<dependency-check-interval>-1</dependency-check-interval>
生产环境建议关闭自检查 ,原因是会消耗系统一定资源及部分更新会出现不可意料的错误。


view plain copy to clipboard print ?


1. <!-- Maximum number of threads. -->   
2. thread-max>20480</thread-max>


<!-- Maximum number of threads. --> <thread-max>20480</thread-max>
建议与private int _connectionMax参数保持一致。

       其它参数需根据应用的具体情况来调整,如长链接超时等。以上为本人整理一些调优笔记,如有遗漏或纠正请与我联系。


Tags: resin , 调优



location / { 
    
     root /var/www/app.cn;     
     index index.jsp;     
你看下面这句?     
     proxy_pass http://localhost:8080;     
     include /usr/local/nginx/conf/proxy.conf;     
   }


好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695