`
jacally
  • 浏览: 770556 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JBoss性能优化:内存紧张的问题终于解决了

    博客分类:
  • JAVA
阅读更多
昨天查了一天的资料,运气不错,收获不小,解决了一个老大难问题:JBoss内存紧张的问题。
这是一个困扰了我两年整的问题,就是从前年这个时候,用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.去掉了一些不用的服务。


Lib 2007-01-22 16:12 发表评论
分享到:
评论

相关推荐

    jboss的性能优化

    ### JBoss性能优化详解 #### 一、背景与问题描述 在使用JBoss 3.2.1版本部署Web应用的过程中,遇到了一个长期存在的问题——内存占用过高,具体表现为即使对于规模不大、流量不多的站点,系统也经常需要消耗超过...

    Jboss性能优化整合

    《JBoss性能优化整合》是一份深度探讨Jboss应用服务器性能提升的重要资料,它集结了作者反复试验与研究的心得,旨在为读者提供实用而全面的优化策略。Jboss作为一款开源的企业级Java应用服务器,其性能表现直接影响...

    jboss内存溢出优化

    通过调整JVM启动参数,可以有效地控制和优化内存使用情况。例如,在`run.bat`文件中,可以设置如下参数: - `-Xms128m`:初始化堆内存大小为128MB,确保了JVM启动时有足够的内存。 - `-Xmx512m`:最大堆内存设置为...

    JBOSS优化配置

    JBOSS优化配置是针对企业级Java应用服务器JBoss进行性能提升的重要环节,涉及多个方面,包括后台启动、内存管理、日志输出模式以及数据库连接池的调整。下面将详细介绍这些知识点。 一、JBOSS后台启动: 在JBOSS的...

    JBoss at Work: A Practical Guide

    另外,书中可能会涵盖故障排查和性能优化技巧,包括日志分析、监控工具的使用、内存调优以及线程分析。这对于保持JBoss服务器的稳定运行和提升系统性能至关重要。 最后,由于JBoss是开源项目,书中也可能会引导读者...

    JBoss 性能调优

    JBoss AS 5性能调优重点在于掌握正确的调优方法论,并使用各种监控和调优工具来识别和解决性能问题。 在硬件资源的优化方面,需要根据应用的具体需求来合理配置服务器的CPU、内存、磁盘I/O等资源。合理分配硬件资源...

    jboss内存溢出原因

    这种异常会严重影响应用的稳定性和性能,因此对内存溢出问题的诊断与解决至关重要。 #### 二、内存溢出常见类型及原因 在JBoss运行过程中,常见的内存溢出异常包括: 1. **PermGen Space(永久代)内存溢出**:当...

    jboss配置内存大小[定义].pdf

    此外,可以启用并行垃圾收集以优化内存回收,例如使用`-XX:+UseParallelGC -XX:+UseParallelOldGC`,这将使JVM并行处理年轻代和老年代的垃圾回收,提高效率。然而,这些选项也会占用额外的内存,因此需要权衡性能和...

    jboss性能调优

    【JBoss性能调优】 JBoss是一个开源的J2EE应用服务器,它的代码遵循LGPL许可证,因此在商业应用中可以免费使用。Jboss支持EJB 1.1和EJB 2.0规范,主要作为EJB的管理和运行容器。尽管Jboss核心服务主要是一个EJB...

    jboss使用详细操作步骤

    - **性能优化**:调整 `server/default/conf/jboss-service.xml` 中的参数,例如增加内存限制。 - **配置修改**:大多数配置都可以通过修改 `server/default/conf` 目录下的 XML 文件来实现。 通过以上步骤,您可以...

    ubuntu安装jboss

    11. **安全性和性能优化**: 对于生产环境,你需要考虑更多安全措施,如设置防火墙规则,限制远程访问,以及优化JVM参数以提高性能。 12. **备份与恢复**: 定期备份你的JBOSS配置和部署的应用,以便在出现问题时...

    JBoss优化配置

    在JBoss的优化配置中,JavaOPTS的设置对于提升应用服务器的性能至关重要。Java虚拟机(JVM)的内存管理主要包括两大块:堆内存(Heap)和非堆内存(Non-Heap)。 **堆内存**分为三个主要区域: 1. **Eden Space**: 主要...

    jboss7.1 linux版本

    4. **多线程模型**:JBoss AS 7.1引入了基于工作窃取的多线程模型,优化了并发处理,提高了服务器的吞吐量。 5. **EJB 3.1支持**:此版本支持Enterprise JavaBeans 3.1规范,包括异步方法调用、定时器服务和轻量级...

    Jprofile资料——使用JConsole实现JBoss性能监控

    总结,利用JConsole监控JBoss性能是Java应用运维中的基础技能,它能帮助我们及时发现问题,提升系统性能。同时,结合JProfiler等专业工具,我们可以进一步深入到代码层面,进行更精细化的性能优化。了解并熟练掌握...

    jboss-eap-7.2.6-patch

    - 性能优化:对内存管理和请求处理进行了优化。 - 安全强化:加强了身份验证和授权机制,提升了加密标准。 总结,JBoss EAP 7.2.6-patch 包含了一系列针对 JBoss EAP 7.2.x 系列的补丁,用户应遵循正确的流程和...

    关于JBoss5加载项目的完整过程以及相关错误解决

    10. **性能优化**:为了提高性能,可能需要调整内存设置、线程池大小、连接池配置等。这些都可以在`JBOSS_HOME/server/default/conf/jboss-service.xml`等配置文件中进行。 总的来说,理解JBoss加载项目的流程和...

    weblogic、jboss集群配置,参数优化

    参数优化是提升WebLogic和JBoss性能的关键。以下是一些常见的优化策略: - **内存调优**:根据应用需求调整堆大小(如-Xms和-Xmx)和新生代、老年代的比例,避免垃圾收集引起的性能波动。 - **线程池优化**:设置...

    优化后jboss

    同时,使用如JMX、Prometheus或Grafana等工具进行实时监控,能及时发现和解决问题。 七、热部署与更新 优化热部署策略可以减少应用更新时的停机时间。比如,使用`swarm`或`jboss-cli`命令行工具进行热部署,并配置...

    java性能优化.pdf

    标题为“java性能优化.pdf”,描述也为“java性能优化.pdf”,文件标签为“技术”,内容涉及Java性能优化的多个方面,包含了Java虚拟机(JVM)特性、Java API用法、设计模式、I/O操作、多线程编程、Web应用性能调整...

Global site tag (gtag.js) - Google Analytics