用JBoss 3.2.1架站以来,始终是一个大问题。不大的站点,1G的内存都不够用,经常要消耗500Mb的交换内存(swap)。
原来是自己犯了非常低级的错误,不懂JAVA_OPTS各参数的含义造成的。
之前的JAVA_OPTS是 -Xms 520m -Xmx 1220m -Xss 15120k +XX:AggressiveHeap
这个JAVA_OPTS犯了2个致命的错误:
1. +XX:AggressiveHeap会使得 Xms 1220m没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
另外Xmx作为允许jvm使用的最大内存数量,不应该超过物理内存的90%。
而之所以使用了这个参数,是因为不加的话,JBoss会在运行一天左右的时间后迅速崩溃,上机课是,甚至出现过半个小时就崩溃的情况。
之所以要用这个参数,用swap支持服务器运行,是因为犯了下面的错误:
2. -Xss 15120k
这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
这就是JBoss刚启动时,还有200Mb内存富余,但会在一个小时内迅速用完,因为服务器的threads在迅速增加。前3天,每天都多吃80Mb左右的swap.在第四天开始稳定下来。今年春节在外度假,观察到了这个现象,却不理解其原因:服务器在线程到达100之后,一般不再增加新的线程,新增加的在用完之后,会被迅速destroy,?褂玫哪诖嬉不厥樟恕R虼耍旁诖航谄诩洌鄄斓椒衿髟?1.25-2.10所使用的线程基本是1.21-1.23创建的,因此没有再消耗新的内存。服务器持续运行时间,也因此大大超乎我5天的预期,到达了20天。
昨天所作的修改:
1.修改JAVA_OPTS,去掉+XX:AggressiveHeap,修改Xss。现在的JAVA_OPTS为:
-Xms 520m -Xmx 900m -Xss 128k
2.修改deploy/jbossweb-tomcat55.sar/service.xml
将maxThreads根据目前的访问量由默认的250降为75,并使用jboss 4默认未写在标准service.xml里面而jboss 3写入了的2个参数: maxSparseThreads=55,minSparseThreads=25
3.修改了oracle-ds.xml将最大连接数有150降为50.
4.去掉了一些不用的服务。
文章出自:http://www.zhuoda.org/hofman/44970.html
分享到:
相关推荐
### JBoss性能优化详解 #### 一、背景与问题描述 在使用JBoss 3.2.1版本部署Web应用的过程中,遇到了一个长期存在的问题——内存占用过高,具体表现为即使对于规模不大、流量不多的站点,系统也经常需要消耗超过...
《JBoss性能优化整合》是一份深度探讨Jboss应用服务器性能提升的重要资料,它集结了作者反复试验与研究的心得,旨在为读者提供实用而全面的优化策略。Jboss作为一款开源的企业级Java应用服务器,其性能表现直接影响...
JBOSS优化配置是针对企业级Java应用服务器JBoss进行性能提升的重要环节,涉及多个方面,包括后台启动、内存管理、日志输出模式以及数据库连接池的调整。下面将详细介绍这些知识点。 一、JBOSS后台启动: 在JBOSS的...
通过调整JVM启动参数,可以有效地控制和优化内存使用情况。例如,在`run.bat`文件中,可以设置如下参数: - `-Xms128m`:初始化堆内存大小为128MB,确保了JVM启动时有足够的内存。 - `-Xmx512m`:最大堆内存设置为...
另外,书中可能会涵盖故障排查和性能优化技巧,包括日志分析、监控工具的使用、内存调优以及线程分析。这对于保持JBoss服务器的稳定运行和提升系统性能至关重要。 最后,由于JBoss是开源项目,书中也可能会引导读者...
本书的作者Francesco Marchioni,是一个经验丰富的Java企业架构师,他通过本书分享了自己在JBoss应用服务器性能优化方面的丰富经验和实践知识。Marchioni不仅详细介绍了JBoss AS的性能调优技巧,也强调了监控工具的...
通过对这些问题的原因进行深入分析,并采取相应的措施进行优化,可以有效提升JBoss应用的稳定性和性能。在实际操作中,还需要根据具体的应用场景和性能瓶颈,灵活调整JVM的相关参数,确保应用能够平稳运行。
此外,可以启用并行垃圾收集以优化内存回收,例如使用`-XX:+UseParallelGC -XX:+UseParallelOldGC`,这将使JVM并行处理年轻代和老年代的垃圾回收,提高效率。然而,这些选项也会占用额外的内存,因此需要权衡性能和...
11. **安全性和性能优化**: 对于生产环境,你需要考虑更多安全措施,如设置防火墙规则,限制远程访问,以及优化JVM参数以提高性能。 12. **备份与恢复**: 定期备份你的JBOSS配置和部署的应用,以便在出现问题时...
- **性能优化**:调整 `server/default/conf/jboss-service.xml` 中的参数,例如增加内存限制。 - **配置修改**:大多数配置都可以通过修改 `server/default/conf` 目录下的 XML 文件来实现。 通过以上步骤,您可以...
【JBoss性能调优】 JBoss是一个开源的J2EE应用服务器,它的代码遵循LGPL许可证,因此在商业应用中可以免费使用。Jboss支持EJB 1.1和EJB 2.0规范,主要作为EJB的管理和运行容器。尽管Jboss核心服务主要是一个EJB...
4. **多线程模型**:JBoss AS 7.1引入了基于工作窃取的多线程模型,优化了并发处理,提高了服务器的吞吐量。 5. **EJB 3.1支持**:此版本支持Enterprise JavaBeans 3.1规范,包括异步方法调用、定时器服务和轻量级...
在JBoss的优化配置中,JavaOPTS的设置对于提升应用服务器的性能至关重要。Java虚拟机(JVM)的内存管理主要包括两大块:堆内存(Heap)和非堆内存(Non-Heap)。 **堆内存**分为三个主要区域: 1. **Eden Space**: 主要...
总结,利用JConsole监控JBoss性能是Java应用运维中的基础技能,它能帮助我们及时发现问题,提升系统性能。同时,结合JProfiler等专业工具,我们可以进一步深入到代码层面,进行更精细化的性能优化。了解并熟练掌握...
- 性能优化:对内存管理和请求处理进行了优化。 - 安全强化:加强了身份验证和授权机制,提升了加密标准。 总结,JBoss EAP 7.2.6-patch 包含了一系列针对 JBoss EAP 7.2.x 系列的补丁,用户应遵循正确的流程和...
标题为“java性能优化.pdf”,描述也为“java性能优化.pdf”,文件标签为“技术”,内容涉及Java性能优化的多个方面,包含了Java虚拟机(JVM)特性、Java API用法、设计模式、I/O操作、多线程编程、Web应用性能调整...
参数优化是提升WebLogic和JBoss性能的关键。以下是一些常见的优化策略: - **内存调优**:根据应用需求调整堆大小(如-Xms和-Xmx)和新生代、老年代的比例,避免垃圾收集引起的性能波动。 - **线程池优化**:设置...
在实际应用中,为了提高性能、稳定性和资源利用率,对JBoss进行优化是必不可少的步骤。本篇文章将详细探讨优化后JBoss的相关知识点。 一、内存配置优化 内存配置是JBoss优化的关键部分。默认的内存设置可能无法...
7. **性能优化**:JBoss可以通过调整内存配置、线程池大小、缓存策略等参数来提高性能。监控工具如JConsole、VisualVM可以帮助分析和调优。 8. **故障排查**:当遇到问题时,日志文件(如server.log)是重要的诊断...