下面的配置项可能因不同的容器有不一样,但是基本原理是差不多的
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系统的性能优化实践”这一主题的详细解析。 一、前端优化 1. **静态资源...
本篇文章将从三个方面探讨WAS性能优化的关键点:JVM参数调整、Web容器优化和数据源配置。 首先,我们关注JVM(Java虚拟机)的性能调优。JVM是Java应用程序的基础,它的堆内存大小(-Xms和-Xmx)是影响性能的重要...
Tomcat作为一款广泛应用的开源Java Servlet容器,其性能优化是许多开发者关注的重点。本文将深入探讨如何对Tomcat7.0进行性能优化,旨在帮助你挑战其运行效率的极限。 一、JVM调优 1. 参数设置:优化JVM内存分配是...
此外,了解服务器和数据库的性能监控、调优策略。 9. **安全与维护**:学习如何保护Web应用免受攻击,如使用SSL加密、定期更新软件、防止DDoS攻击等。了解备份策略和恢复计划,确保数据安全性。 10. **部署与自动...
为了实现上述目标,我们需要运用一系列关键技术来提升WEB站点的整体性能。以下是一些重要的技术手段: 1. **前端优化** - **压缩和合并文件**:通过压缩JavaScript和CSS文件减少HTTP请求次数,并降低文件传输时间...
6. **Tomcat性能调优**:包括设置JVM参数以优化内存分配、调整线程池大小、配置连接器以优化网络通信等,以提高Tomcat处理请求的能力和效率。 7. **安全性**:Tomcat支持多种安全机制,如SSL/TLS加密通信、基本认证...
4. **性能优化**: 课程可能包含性能调优技巧,如SQL查询优化、缓存策略、异步处理和并行计算等,以提升系统响应速度和处理能力。 5. **安全性实践**: 安全是后端开发的重要一环,学员可能学习到身份验证、授权、...
在企业环境中,Tomcat作为一款广泛应用的开源Web服务器和Servlet容器,其部署和安全调优是至关重要的。本篇主要讨论Tomcat的基本概念、与其紧密相关的JDK、以及安装和安全设置的基本步骤。 1. Tomcat简介 Tomcat是...
**JMeter——Web Socket引用插件包** 在性能测试领域,Apache JMeter是一款广泛应用的开源工具,主要用于模拟大量用户并发访问服务器,以测试其性能和稳定性。在针对Web Socket协议进行压力测试时,JMeter提供了...
#### 六、JBoss Web容器——Tomcat JBoss集成了Apache Tomcat作为其默认的Web容器,这使得JBoss能够很好地支持Web应用的部署和运行。用户可以通过配置文件调整Tomcat的设置以满足特定需求。 #### 七、实例应用 - ...
Apache Tomcat 是一款广泛应用的开源Java Servlet容器,它实现了Java EE中的Web应用程序规范,特别是Servlet和JSP。这个压缩包包含的是Apache Tomcat 6和7的版本,这两个版本在过去的几年里都是非常流行的选择,用于...
【服务器资源】——深入解析Tomcat 在IT行业中,服务器资源是支撑应用程序运行的重要基础设施,而Tomcat作为一款广泛使用的轻...理解并掌握Tomcat的配置、管理和优化技巧,对于提升应用性能和维护稳定性具有重要意义。
在实际应用中,合理的配置和优化Tomcat对于提升Web应用性能和响应速度有着非常重要的作用。本文将详细介绍Tomcat的配置与优化方案。 首先需要了解Tomcat的配置文件——server.xml。它是Tomcat的核心配置文件,包含...
它是Apache软件基金会Jakarta项目的一部分,是一个实现Java EE Web应用程序规范的轻量级容器。Tomcat 8.0是其一个重要的版本,带来了许多性能优化和新特性。 在描述中提到的"Apache-Tomcat8.0版本下载",这意味着...
- 如何通过日志分析、JMX监控、JProfiler等工具定位和解决问题,以及性能瓶颈的识别和调优。 9. 高级主题 - 理解AJP协议,以及与Apache HTTP Server或其他反向代理服务器的集成。 - 深入理解Classloading机制,...
10. 监控与性能调优:使用JMX(Java Management Extensions)监控Tomcat,调整JVM参数以优化性能。 总结起来,这个压缩包提供了一个全面的Tomcat版本集合,适合在Linux环境中部署Java Web应用。每个版本都有其特定...
- **JVM调优**:调整Java虚拟机参数以优化应用程序性能。 - **内存管理**:理解内存结构,如堆和非堆内存,以及如何进行内存泄漏检测和管理。 8. **监控与诊断** - **日志与跟踪**:配置日志级别,收集诊断信息...
Apache Tomcat是一款开源的Java Servlet容器,主要用于部署和运行Java Web应用程序。它是Apache软件基金会Jakarta项目的一部分,广泛应用于各种规模的企业级应用服务器。这里我们关注的是"apache-tomcat-8.0.53-...
7. **性能调优与监控**:了解JProfiler、VisualVM等性能分析工具,学会通过JMX进行远程监控和管理。理解CPU、内存、GC等指标,能够对系统进行性能优化。 8. **云计算与容器化**:掌握Docker和Kubernetes等容器技术...
同时,利用各种工具,如JVisualVM、JProfiler等,可以监控Tomcat的内存、CPU使用情况,进行性能调优。 总的来说,理解并熟练配置`server.xml`和`tomcat-users.xml`是管理和优化Tomcat的关键步骤。通过调整这些配置...