[开发]Resin 4.0.15配置优化的一个建议-阿里云开发者社区

开发者社区> 郑昀> 正文

[开发]Resin 4.0.15配置优化的一个建议

简介:
+关注继续查看
郑昀 201102

早先说过线上Resin的配置文件中要增加线程池大小、各种timeout参数(resin 4.0.15的默认配置文件肯定没有这些参数,需要另行增加)。

resin 4.0.10里,有这么一个bugthread-max的数量设置没有起作用:http://bugs.caucho.com/view.php?id=4251 ,但后面到了resin 4.0.15应该就修复了。

下面内容会给出背景介绍以及建议配置

 

1、背景:

郑昀认为,要综合考虑resin线程池大小、“-Xmx JVM最大可用内存”、“-Xms:初始堆大小”、“-XmnYoung Generationheap size”参数互相匹配。(JVM2GC线程。第一个线程负责回收HeapYoung区。第二个线程在Heap不足时,遍历Heap,将Young 区升级为Older区。Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程被迫运行会降低JVM的性能。)

来避免线上resin服务反复出现以下异常:

OutOfMemoryError Java heap space

OutOfMemoryError PermGen space

 

2Resin.xml就可以设置JDK参数:

郑昀注意到,Resin 4.0已支持把JDK参数加入resin配置文件resin.xml里。

参考resin的帮助文档

JDK arguments

Resin 4.0 has moved all JDK arguments into the resin.xml file, in the <jvm-arg> tag. Because the Resin 4.0 watchdog starts each Resin server instance, it can pass the arguments defined in the configuration file to the JVM. By moving the Java arguments to the configuration file, server configuration is easier and more maintainable.

 

3、建议规则:

1、 ServerJVM最好将-Xms-Xmx设为相同值。为了优化GC,最好让-Xmn值约等于-Xmx1/4

2、 通过增大 -XXPermSize”和“-XXMaxPermSize”这两个参数来避免出现JVM内存永久保存区域溢出引发Resin的500错误。(郑昀认为,因为线上用了spring+struts,这些框架用到大量动态classClassLoader是把这部分内存放在PermGen space里的。而JVMGC是不会清理PermGen space的。这样容易导致线上应用报告PermGen space内存溢出。)

 

4、建议resin配置:

所以,郑昀建议线上部署的Resin 4.0.15resin.xml中增加如下配置节点:

<server-default>

    <jvm-arg>-Xms1024m</jvm-arg>

    <jvm-arg>-Xmx1024m</jvm-arg>

    <jvm-arg>-Xmn256m</jvm-arg>

    <jvm-arg>-XX:PermSize=128m</jvm-arg>

<jvm-arg>-XX:MaxPermSize=256m</jvm-arg>

    <thread-max>1024</thread-max>

    <socket-timeout>30s</socket-timeout>

    <keepalive-max>512</keepalive-max>

    <keepalive-timeout>60s</keepalive-timeout>

</server-default>

请提反馈意见。谢谢。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
架构师细说 NGINX 的配置及优化
最近感觉很多东西在运用到一定的程度之后,会发现原来是自己了解到的不够。一方面限于实际运用到的不多,一方面可能是因为一开始没有进行全面认识。遂这里搜集整理了一番NGINX。
822 0
[前端优化]使用Combres合并对js、css文件的请求
在前端优化的各种金律铁规中,“减少客户端对资源的请求”都会在其中出现,刚好最近对网站做一些优化,使用了一下Combres组件,有点心得,遂整理成文。 园子中也有几篇Combres组件的介绍,如:Combres库学习小结以及部分源码分析和使用Combres 库 ASP.NET 网站优化。
795 0
Presto性能优化
Presto性能优化http://www.bieryun.com/3467.html 查询速度慢, 如何优化? 解决方法1: 避免单节点处理 虽然Presto是分布式查询引擎, 但是一些操作是必须在单节点中处理的.
3204 0
Flink批处理优化器之Interesting Properties
Interesting Properties(以下简称IP)用来表述在对生成的计划进行分析时一些可能对优化产生重要影响的属性。网络上关于IP的资料并不多,但在Flink的论文里多次出现,Flink在它的一些论文中声明其借鉴自《Goetz Graefe.
1226 0
生产服务器环境最小化安装后Centos 6.5优化配置备忘
生产服务器环境最小化安装后 Centos 6.5优化配置备忘 本文 centos 6.5 优化 的项有18处,列表如下: 1、centos6.
1284 0
如何配置阿里云容器服务K8S Ingress Controller使用私网SLB
本文主要讲述如何配置阿里云容器服务K8S Ingress Controller使用私网SLB。
11743 0
mysql-noinstall.zip免安装版的优化配置和精简
[摘要]MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。这样就增加了速度并提高了灵活性。本文介绍mysql-noinstall.zip免安装版的优化配置和精简。
1141 0
express的路由配置优化
默认情况下,express的路由写起来还挺麻烦的。比如下面这样: app.get('/blacklists/', get_all); app.get('/blacklists/:id', get_all); app.post('/blacklists/:id', update); app.post('/blacklists', create); app.detete('/blacklists/:id' : del); 这样写是什么大的问题,至少它能正常运行。
627 0
+关注
郑昀
☑移动数据业务&times;6年 ☑语义聚合&times;4年 ☑O2O&times;5年的一个老兵。
222
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载