`
chinese.darren
  • 浏览: 99564 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

性能监控/优化系列——WEB容器/应用性能调优

阅读更多

  下面的配置项可能因不同的容器有不一样,但是基本原理是差不多的

1. Thread Pool,调优WEB容器线程池比较好的实践是首先根据基本原则设置初始化配置(下图),然后在压力环境下观察并做适当修改
2. 对于那些重IO(examples: invocation of remote EJBs, database interactions, communicating with slow clients, file system interactions)的应用,需要观察线程池和CPU utilization,防止因为线程IO等待造成容器请求排队而CPU却闲置的情况。
3. 对于线程池utilization的监控可以通过current threadsbusy-count来完成,下面是一些常见的配置指导。
4.常用的一些监控工具JavaMelody/probe(for TOMCAT)/Hyperic HQ
5. request-processing.threadcount的设定一般为:对于非CMT(Chip Multithreading)的CPU其值为核数的两倍;对于CMT的CPU为虚拟处理器数(指硬件线程or芯片线程)的两倍。
6. acceptor-thread用于定义selector线程数,在多处理器环境可以设置为processor数。
7.max-connections-count属性用于指定最大连接队列的大小,一旦这个队列满,那么服务器将决绝其他的连接请求。
8. buffer-size-bytes属性用于指定发生和接受byte的buffer大小,一般不需要重新配置,除非遇到大的输入和输出负载,这个值的修改一般要伴随OS级别TCP buffer的修改。
9. persistent connection的概念:单个client-servler连接支持多个请求,持久连接状态下服务器保持连接的keep-alive state。一般为了防止恶意攻击,容器都会在下列情况关闭一个持久连接。
     1)这个连接上的第一个请求和最后一个请求的时间间隔超过timeout-in-seconds值,默认为30s。
  2)通过这个连接发生的请求数超过max-requests。
10. 如果要进一步做细监控,可以在应用上包含性能统计,然后通过JMX的形式暴露出去。在自己写监控统计时常用count-based 或 timebased的方式。Apache提供了一个好用的统计包,可以在统计中使用,请参考:http://commons.apache.org/math/userguide/stat.html#a1.2_Descriptive_statistics。假如自己在应用用实现了监控MBean,还需要注册到MBeanServer中,可以将这部分逻辑放到一个servlet context listener,让它伴随servlet initialization and destruction life cycle。
11. JDK自带的gzip compressor,在高并发场景下会由于内存分配过程中的锁竞争导致性能问题,开源产品LZF compressor在高压力下有较好的表现,但是gzip compressor的压缩率要高些
12. 在分布式缓存系统的设计上需要考虑序列化和压缩技术,下面是容器与分布式缓存的交互图:
13. 对常用静态文件进行精简,例如JS,CSS。
14. 配置web服务器使得静态文件支持缓存和压缩(一般浏览器支持gzip)。
15. 关于session持久化的优化建议:1. 尽量保持放入session的对象简单;2. 尽量保持放入session的对象的size不要太大;3. 适当的使用transient关键字;4. 像分布式缓存设计思想一样,采用好的序列化/压缩技术。
16. 分布式日志收集方案:facebook开源产品Scribe(https://github.com/facebook/scribe)),再结合一个基于Java的scribeclient——collector(https://github.com/pierre/collector),将收集的日志如入HDFS。
分享到:
评论

相关推荐

    大流量Web系统的性能优化实践.

    在构建和运营大流量Web系统时,性能优化是至关重要的环节。这关乎到系统的稳定性、用户体验以及整体资源的效率利用。以下是对“大流量Web系统的性能优化实践”这一主题的详细解析。 一、前端优化 1. **静态资源...

    tomcat7.0性能优化-挑战极限精简版

    Tomcat作为一款广泛应用的开源Java Servlet容器,其性能优化是许多开发者关注的重点。本文将深入探讨如何对Tomcat7.0进行性能优化,旨在帮助你挑战其运行效率的极限。 一、JVM调优 1. 参数设置:优化JVM内存分配是...

    Linux的Web程序设计——PHP网站开发.rar

    此外,了解服务器和数据库的性能监控、调优策略。 9. **安全与维护**:学习如何保护Web应用免受攻击,如使用SSL加密、定期更新软件、防止DDoS攻击等。了解备份策略和恢复计划,确保数据安全性。 10. **部署与自动...

    Tomcat与Java.Web开发技术详解附书光盘1

    6. **Tomcat性能调优**:包括设置JVM参数以优化内存分配、调整线程池大小、配置连接器以优化网络通信等,以提高Tomcat处理请求的能力和效率。 7. **安全性**:Tomcat支持多种安全机制,如SSL/TLS加密通信、基本认证...

    第六届字节跳动青训营——后端进阶班.zip

    4. **性能优化**: 课程可能包含性能调优技巧,如SQL查询优化、缓存策略、异步处理和并行计算等,以提升系统响应速度和处理能力。 5. **安全性实践**: 安全是后端开发的重要一环,学员可能学习到身份验证、授权、...

    企业级Tomcat部署实践及安全调优1

    在企业环境中,Tomcat作为一款广泛应用的开源Web服务器和Servlet容器,其部署和安全调优是至关重要的。本篇主要讨论Tomcat的基本概念、与其紧密相关的JDK、以及安装和安全设置的基本步骤。 1. Tomcat简介 Tomcat是...

    jmeter--web socket引用插件包

    **JMeter——Web Socket引用插件包** 在性能测试领域,Apache JMeter是一款广泛应用的开源工具,主要用于模拟大量用户并发访问服务器,以测试其性能和稳定性。在针对Web Socket协议进行压力测试时,JMeter提供了...

    apache-tomcat6and7

    Apache Tomcat 是一款广泛应用的开源Java Servlet容器,它实现了Java EE中的Web应用程序规范,特别是Servlet和JSP。这个压缩包包含的是Apache Tomcat 6和7的版本,这两个版本在过去的几年里都是非常流行的选择,用于...

    服务器资源

    【服务器资源】——深入解析Tomcat 在IT行业中,服务器资源是支撑应用程序运行的重要基础设施,而Tomcat作为一款广泛使用的轻...理解并掌握Tomcat的配置、管理和优化技巧,对于提升应用性能和维护稳定性具有重要意义。

    apache-tomcat-8.0.zip

    它是Apache软件基金会Jakarta项目的一部分,是一个实现Java EE Web应用程序规范的轻量级容器。Tomcat 8.0是其一个重要的版本,带来了许多性能优化和新特性。 在描述中提到的"Apache-Tomcat8.0版本下载",这意味着...

    深入剖析tomcat (完整目录)

    - 如何通过日志分析、JMX监控、JProfiler等工具定位和解决问题,以及性能瓶颈的识别和调优。 9. 高级主题 - 理解AJP协议,以及与Apache HTTP Server或其他反向代理服务器的集成。 - 深入理解Classloading机制,...

    tomcat的linux的7 8 9版本汇总

    10. 监控与性能调优:使用JMX(Java Management Extensions)监控Tomcat,调整JVM参数以优化性能。 总结起来,这个压缩包提供了一个全面的Tomcat版本集合,适合在Linux环境中部署Java Web应用。每个版本都有其特定...

    WebLogic学习指南

    - **JVM调优**:调整Java虚拟机参数以优化应用程序性能。 - **内存管理**:理解内存结构,如堆和非堆内存,以及如何进行内存泄漏检测和管理。 8. **监控与诊断** - **日志与跟踪**:配置日志级别,收集诊断信息...

    apache-tomcat-8.0.53-windows-x64和tomcat 6.0版本

    Apache Tomcat是一款开源的Java Servlet容器,主要用于部署和运行Java Web应用程序。它是Apache软件基金会Jakarta项目的一部分,广泛应用于各种规模的企业级应用服务器。这里我们关注的是"apache-tomcat-8.0.53-...

    Java_Architect_Notes-John_H.rar_architect_java architect

    7. **性能调优与监控**:了解JProfiler、VisualVM等性能分析工具,学会通过JMX进行远程监控和管理。理解CPU、内存、GC等指标,能够对系统进行性能优化。 8. **云计算与容器化**:掌握Docker和Kubernetes等容器技术...

    tomcat 常用配置

    同时,利用各种工具,如JVisualVM、JProfiler等,可以监控Tomcat的内存、CPU使用情况,进行性能调优。 总的来说,理解并熟练配置`server.xml`和`tomcat-users.xml`是管理和优化Tomcat的关键步骤。通过调整这些配置...

    oracle知识5

    6. **性能监控**:通过工具如SQL*Plus、Enterprise Manager和AWR(Automatic Workload Repository)报告,可以监控数据库性能,识别瓶颈并进行调优。了解V$视图可以帮助实时查看数据库的状态。 7. **安全性控制**:...

    memcached session manager 1.9.6_for_tomcat8.zip

    Memcached Session Manager是一款针对Tomcat应用服务器的会话管理器,它将Web应用程序的会话数据存储在分布式内存缓存系统——Memcached中,以提高性能和可扩展性。在Tomcat 8这个流行的Java Servlet容器中集成...

    apache-tomcat-10.0.0-M7-windows-x64.zip

    - 使用JVM的内存调优参数,例如通过`setenv.bat`脚本设置`JAVA_OPTS`,以优化Tomcat的内存使用。 8. **监控与管理**: - Tomcat内置了管理Web应用,如`manager`和`host-manager`,通过配置文件启用后,可以远程...

    J2EE的好书收集(英文版)

    这个平台提供了丰富的服务和组件,包括Web容器、EJB(Enterprise JavaBeans)、JMS(Java消息服务)、JTA(Java事务API)等,用于开发、部署和管理大型的企业应用。 在“J2EE的好书收集”中,我们可能关注到两本书...

Global site tag (gtag.js) - Google Analytics