`

Java EE应用中的性能问题解决方案 — 第二部分 Java EE线程池调整优化(B)

阅读更多

声明:本文禁止未经本人同意的任何形式转载!如有转载需求,可与本人通过个人资料中的电子邮箱联系。对于未经同意的转载,本人将保留进一步行动的权利

Java的调优文档中很少建议确切的线程池大小的值。因为该值关系到应用的具体情况,比如简单和复杂类型的应用就不能混为一谈。
 
一个应用从内存中检索字符串并转发到JSP页面做展现。
另一个应用,从数据库中检索1000条记录,并计算平均值、方差。
 
第一个应用系统的响应速度较快,例如在0.25秒左右,也不需要耗费太多CPU的时间。第二个应用的响应时间大概在3秒左右,且对CPU敏感(即需要很多CPU的计算能力)。因此,在配置线程池时,给第一个应用配置100个线程就可能太低了,因为它能同时处理起码200个以上的并发请求;但100对第二个应用来说可能就太高了,因为CPU可能最大能承受50个并发线程。
但是,显示中大部分应用都是相似性很高的,所以可以考虑每个CPU配置50到75个线程。对于不同的应用,这个数字的适应性也不同,可根据对CPU监测的结果来做相应的调整。
 
线程池太大
除了可能将线程池配置得太小外,也有可能线程配置得太多了。在这种情况下,当系统负载增加时,CPU利用率持续保持很高,响应时间很长,因为CPU在不同的线程上下文之间切换工作上花费了太多的时间,而在执行工作方面的时间却显得有限了。
 
线程池太大的一个重要表现就是CPU利用率持续走高。很多情况下,CPU的利用率与垃圾收集有关,但垃圾收集造成的CPU利用率高与线程池过大造成的有一个重要的区别在于:垃圾收集造成CPU的陡升陡降,而线程池的过饱和状态则会造成CPU的持续偏高。
 
当这种情况发生时,减少线程池大小可能导致请求的等待,但是等待比在CPU饱和状态下的处理要好,因为饱和状态的CPU会表现出极差的性能。最好的情况是请求到来了,就在队列中等待一段时间,然后再利用较优化情况(非饱和状态下)的CPU进行处理。
 
解决线程池过大的问题,就需要降低线程池的大小直至在通常的负荷状态下,CPU的利用率在75%~85%之间。如果队列的大小不易于管理,则可以:
调整代码
添加新硬件
未完待续……
Java EE应用中的性能问题解决方案参考资料下载
声明:本文禁止未经本人同意的任何形式转载!如有转载需求,可与本人通过个人资料中的电子邮箱联系。对于未经同意的转载,本人将保留进一步行动的权利!

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/BU_BetterYou/archive/2008/06/03/2506586.aspx

分享到:
评论

相关推荐

    WebLogic应用优化解决方案

    WebLogic应用优化解决方案是针对Oracle WebLogic Server这一企业级Java EE应用服务器的性能提升策略。WebLogic Server作为业界广泛使用的中间件平台,其性能优化对于整个企业应用的效率和稳定性至关重要。以下是一些...

    Java核心技术原书第10版中文版.pdf

    5. **多线程编程**:Java内置了对多线程的支持,书中详细阐述了Thread类和Runnable接口,同步机制(如synchronized关键字、wait/notify、Lock接口),以及线程池的使用,帮助开发者理解并发编程的挑战和解决方案。...

    Java开发实战1200例(第2卷).(清华出版.李钟尉.陈丹丹).pdf

    《Java开发实战1200例(第2卷)》是由清华大学出版社出版的,由李钟尉和陈丹丹编著的一本Java编程实践指南。这本书深入浅出地讲解了Java编程中的各种技术和应用场景,旨在帮助读者提升Java开发技能,解决实际问题。...

    accp5.0java指导学习3

    9. **设计模式**:设计模式是解决常见编程问题的通用解决方案,如单例模式、工厂模式、观察者模式等。理解和应用设计模式可以提高代码的可读性和可维护性。 10. **JDBC数据库操作**:学习如何使用Java连接数据库,...

    java推荐书籍

    - **简介**: EJB是Java EE中的重要组成部分,本书介绍了EJB 3.0的新特性和应用场景。 4. **《Hadoop权威指南》** - **简介**: Hadoop是大数据处理领域的核心技术之一,本书提供了全面的Hadoop使用指南,适合希望...

    JAVA 电子商城系统

    Spring MVC是常用的JAVA MVC框架,提供了一套完整的解决方案,包括依赖注入、AOP(面向切面编程)等特性。 3. **数据库管理**:在JAVA电子商城系统中,通常会使用关系型数据库如MySQL、Oracle或PostgreSQL来存储...

    weblogic

    3. 性能优化:探讨内存设置、线程池调整、应用部署优化等方面的策略,提升WebLogic的运行效率。 4. 故障排查:提供常见问题的解决方法和故障排除技巧,帮助快速恢复服务。 通过这三章的学习,你将能够熟练掌握...

    企业级weblogic应用第二章

    在企业级IT环境中,WebLogic Server是Oracle公司提供的一个强大且功能丰富的Java EE应用程序服务器,广泛用于构建、部署和管理企业级应用。本章节将深入探讨WebLogic在实际操作中的运用,以“企业级WebLogic应用第二...

    weblogic第一期培训材料

    这款强大的中间件产品在企业信息系统中扮演着至关重要的角色,尤其在Java EE应用的部署和管理上。 1. **WebLogic基础知识** WebLogic的基础知识主要包括其架构、核心组件以及与Java EE的关系。WebLogic基于Java...

    Tomcat权威指南(第二版)(吴豪译)(2009).pdf中文高清版

    5. **性能优化**:提供了关于调整内存分配、线程池设置、连接器优化等方面的策略,以提升Tomcat的服务性能。 6. **故障排查**:分享了日志分析技巧和常见问题的解决方案,帮助开发者快速定位和解决问题。 7. **...

    apache-tomcat-8.5.57.rar

    - Tomcat是Apache软件基金会Jakarta项目的一部分,它遵循Java EE规范中的Web容器部分,提供了一个轻量级的服务器来运行Servlet和JSP。 - Tomcat 8.5.x系列是一个稳定版,支持Java EE 8 Web Profile,这意味着它...

    WebSPhere.rar

    **性能监控和优化**:WebSphere Server V7.0管理员指南会介绍如何使用内置工具进行性能监控,例如JMX(Java Management Extensions)和Tivoli Monitoring,以及如何根据监控数据进行性能调优,如调整内存分配、...

    Thinking In Java 第三版中文版

    11. **设计模式**:书中可能涵盖了一些常见的设计模式,如单例模式、工厂模式、观察者模式等,这些模式是解决特定问题的标准化解决方案。 12. **垃圾回收机制**:Java的自动内存管理通过垃圾回收器实现,讲解了对象...

    tomcat文件

    然而,随着时间的推移,这些问题的解决方案可能会越来越少。 9. **第三方插件兼容**:一些现代的第三方库或插件可能不再支持Tomcat 5.0,所以需要检查你的项目依赖项是否与该版本兼容。 10. **维护和更新**:由于...

    java毕业设计-基于Java的远程视频会议系统(系统+论文).zip

    【标题解析】 "java毕业设计-基于Java的远程视频会议系统(系统+论文).zip" 这个标题表明这是一...通过这个项目,学生可以全面地掌握Java编程和软件工程实践,同时也能了解远程视频会议系统背后的技术挑战和解决方案。

    一点Java复习资料

    - 在解决实际问题时,设计模式是常用的解决方案,例如单例模式、工厂模式、观察者模式等,可能会出现在模拟试题中。 6. **Java SE和Java EE**: - 虽然题目没有明确提及,但Java SE(标准版)和Java EE(企业版)...

    很标准的tomcat

    5. **性能优化**:Tomcat可以通过调整线程池大小、启用连接器压缩、优化JVM参数等方式提升性能。对于高并发场景,可以考虑使用集群或负载均衡。 6. **日志系统**:Juli提供了一套灵活的日志框架,允许自定义日志...

    tomcat6.0.36版本

    7. **性能优化**:Tomcat团队在6.0.36版本中进行了各种性能优化,包括内存管理和线程池的改进,以提高整体系统效率。 8. **内存泄漏防护**:此版本中,Tomcat增强了对Java对象内存泄漏的防护,尤其是在处理静态资源...

Global site tag (gtag.js) - Google Analytics