為什么不選擇Apache/mod+resin?
前面一直使用該模式,mod_caucho暴露源碼的bug一直未得到徹底的解決。因此切換到Nginx+resin平臺。硬件上要求除了內存一定要足夠大(建議>4G),無其它要求(當然也不能太破,呵呵)。操作系統強烈要求安裝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
view plainprint? 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結果得到證實
[編譯前]
—————————————————————————————————————————
[編譯后]
3、resin.conf配置
<dependency-check-interval>-1</dependency-check-interval>
生產環境建議關閉自檢查 ,原因是會消耗系統一定資源及部分更新會出現不可意料的錯誤。
<!-- Maximum number of threads. --> <thread-max>20480</thread-max>
建議與private int _connectionMax參數保持一致。
其它參數需根據應用的具體情況來調整,如長鏈接超時等。以上為本人整理一些調優筆記,如有遺漏或糾正請與我聯系。
如大家有什么疑問或感興趣的話題可以通過weibo與我交流:http://t.qq.com/yorkoliu
轉自:http://blog.liuts.com/post/204/
原創文章,作者:s19930811,如若轉載,請注明出處:http://www.www58058.com/1757