Apache和Tomcat结合提高性能优化

数据分析—用户行为数据分析 一般价值用户(R高F高M低):用户处于购买活跃期,感兴趣的商品多,购买次数少 → 针对该部分客户,目的就是要让他们购买,所以可以运营部门沟通,降低利润,给出有力折扣促进购买,进而转为重要价值用户。重要价值用户(R高F高M高)维护:用户处于购买活跃期,感兴趣的商品多,购买次数也多 → 针对兴趣产品,保持一定频率的触达,持续维护。 阅读详情
研究了Apache 和Tomcat做负载均衡,系统正式上线后就需要考虑如果对Apache和Tomcat进行性能优化,以便能够充分发挥硬件和软件的处理能力。

Apache Http Server:

  影响性能的最核心特性:MPM(Multi-Processing Modules,多道处理模块):

进入httpd-2.0.45目录,运行以下代码:

$ ./configure --help|grep mpm

显示如下:

--with-mpm=MPM 
Choose the process model for Apache to use. 
MPM={beos|worker|prefork|mpmt_os2| perchild|leader|threadpool}

上述操作用来选择要使用的进程模型,即哪种MPM模块。prefork就是Unix平台上缺省的MPM。查看Httpd.conf

<IfModule mpm_prefork_module> 
#    StartServers          5 
#    MinSpareServers       5 
#    MaxSpareServers      10 
#    MaxClients          150 
#    MaxRequestsPerChild   0 
         ServerLimit          2048 //可配置的进程数的上限 
         ThreadLimit          64 //设置在每个子进程可配置的线程数上限 
         StartServers          8 //初始化进程数 
         MaxClients         2048//设定的是Apache可以同时处理的请求,是最重要的参数 
         MinSpareThreads      64//最小空闲进程 
         MaxSpareThreads      256 //最大空闲进程 
         ThreadsPerChild       64 
         MaxRequestsPerChild   0 //(默认10000)每个子进程可处理的请求书,每个子进程在处理了“MaxRequestsPerChild”个请求后将自动销毁。0意味着无限,即子进程永不销毁。 
</IfModule>

StartServersMinSpareServersMaxSpareServersMaxClients指令用于调节父进程如何产生子进程.

MaxClients:设定的是Apache可以同时处理的请求数,默认值是256。若要提高最大请求数,需要添加ServerLimit数,ServerLimit最大支持20000,注意:ServerLimit需要放置于MaxClient前面.一般设置小于MaxClients。

MaxRequestsPerChild指令控制服务器杀死旧进程产生新进程的频率。

MaxSpareServers指令设置空闲子进程的最大数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。

MinSpareServers指令设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。

Tomcat性能优化:

1 JVM内存调整

当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。

-Xms<size> 表示JVM初始化堆的大小,-Xmx<size>表示JVM堆的最大值。这两个值的大小一般根据需要进行设置。

说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。

PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。 
-XX:PermSize=512MB 最小尺寸,初始分配 
-XX:MaxPermSize=512MB 最大允许分配尺寸,按需分配

在Tomcat安装目录下的bin/catalina.sh文件下添加

JAVA_OPTS="-Xmx2048M -Xms1024M -XX:PermSize=512M -XX:MaxPermSize=512M"; 设置了初始堆大小为2014M,最大值为2048M。永久保存区域初始大小512M,最大允许分配尺寸512内存。
 

2 禁用DNS查询:

Set to true if you want calls to request.getRemoteHost() to perform DNS lookups in order to return the actual host name of the remote client. Set to false to skip the DNS lookup and return the IP address in String form instead (thereby improving performance). By default, DNS lookups are enabled.

Server.xml中的Connector 节点中进行设置:修改server.xml文件中的enableLookups参数值为false

3 调整线程数

Server.xml中的Connector 节点中进行设置如下:

minProcessors 服务器启动时创建的处理请求的线程数

maxProcessors 最大可以创建的处理请求的线程数

maxThreads:这个值表示Tomcat可创建的最大的线程数。 默认为200;If not specified, this attribute is set to 200。

acceptCount :指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。The default value is 100

connnectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

minSpareThreads Tomcat初始化时创建的线程数。 If not specified, the default of 10 is used.

maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。 (tomcat5以后已删除)

<Connector port="80" maxThreads="150" minSpareThreads="25"  enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true"/>

总结:

  首先要争取使得操作系统以及网络资源达到最优,并且最好使用高版本的JDK。对于有大量静态页面的系统,采用Apache集成Tomcat的方式,把静态页面交由Apache处理,动态部分交由Tomcat处理,能极大解放Tomcat的处理能力。通过Apache和Tomcat负载提供稳定高并发的性能需求。同时需要对Tomcat自身进行优化,包括增大内存、调节并发线程数等。


LS-Dyna模态分析实战:从模型构建到结果解读的全流程指南 本文提供了一份详尽的LS-Dyna模态分析实战指南。文章系统讲解了如何利用LS-Dyna内置的隐式求解器进行特征值求解,从模型构建、几何清理、材料与连接设置,到核心的边界条件与隐式求解控制(如*CONTROL_IMPLICIT_EIGENVALUE),最后完成计算并解读频率与振型结果。旨在帮助工程师在熟悉的环境中高效完成结构振动特性分析,为后续动态响应分析奠定基础。 阅读详情

相关推荐

Cadence笔记--原理图导入PCB

根据PCB尺寸画PCB外观尺寸,这里注意X\Y不能超过指定的区域,X\Y的最大值在setuo的grids里设置,画完后保存并关闭工程然后重新打开(不理解为何)由于只画了一个PMU6050,所以这里只有一个器件。工程选择board,选择存储路径名称。6、重新网格导入,保证网表导入无误;注意网表保存的路径。

weixin_51418325的博客 1853

提高tomcat的并发能力

[size=small] tomcat的并发能力 文章分类:Java编程 1、Apache + Tomcat 结合起来用Apache 负责静态页面,Tomcat负责动态页面,同时减少connectionTimeout的时间,以应对并发量大线程回收来不及的情况。 2、压力过大的问题,可以做负载均衡,一个TOMCAT无论如何也不可能担当如此多的线程负载,而且JVM过大,其内存管理成本...

main_bo的专栏 329

HttpClient vs OkHttpClient:哪个更适合你的Java项目?(附性能对比实测)

本文深度对比了Apache HttpClient与OkHttpClient在Java项目中的性能表现与适用场景。通过实际性能测试,OkHttp在连接复用、高并发吞吐量及内存占用方面表现更优,尤其适合现代微服务与Spring生态。HttpClient则凭借其高度可配置性,在需要精细控制HTTP协议细节的场景中更具优势。文章提供了清晰的选型指南,帮助开发者根据项目需求做出最佳决策。

onion的博客 489

Tomcat 8 性能优化

授人以鱼不如授人以渔 本文章的目的不在于给出最佳配置,而是带领开发者,能够从实际情况出发,通过不断的调节tomcatjvm参数,去发现吞吐量,平均响应时间错误率等信息的变化,同时根据服务器的cpu内存等信息,结合接口的业务逻辑,最好是测试使用率最高,并发最大,或者是最重要的接口(比如下单支付接口),设置最优的tomcatjvm配置参数。 目的 通过Tomcat性能优化可以提高网站的并...

KHOST的博客 1215

【中间件】Tomcat优化方案

[size=medium]系统上线之前研究了一下tomcat的优化方案,主要包括一下几个方面: 1、JDK内存优化 Tomcat默认可以使用的内存为128MB Unix配置位置 {tomcat_home}/bin/catalina.sh JAVA_OPTS='-Xms[初始化内存大小] -Xmx[可以使用的最大内存] {tomcat_home}/bin/startup.sh JA...

iteye_1900的博客 573

让你眼前一亮的3. Tomcat 性能调优 (值得收藏)

目录 3. Tomcat 性能调优3.1 Tomcat 性能测试3.2 Tomcat 性能优化3.2.1Tomcat配置调优1.禁用AJP连接2.Connector 连接器的选择3.Executor线程池调整3.2.2 JVM参数调优1) JVM内存参数2) GC策略3.2.3 Tomcat架构调优动静分离:Tomcat集群:修改Tomcat默认端口号tomcat中部署项目的方式 3. Tomcat 性能调优 性能优化的三个指标 降低响应时间 : 提高系统吞吐量(QPS) : QPS (每

javalingyu的博客 4338

iislinux性能优化,ApacheTomcat结合提高性能的优化办法

研究了Apache Tomcat做负载均衡,系统正式上线后就需要考虑如果对ApacheTomcat进行性能优化,以便能够充分发挥硬件软件的处理能力。Apache Http Server:影响性能的最核心特性:MPM(Multi-Processing Modules,多道处理模块):进入httpd-2.0.45目录,运行以下代码:$ ./configure --help|grep mpm显示如...

weixin_42136826的博客 137

tomcat限速_ApacheTomcat结合提高性能的优化办法

研究了Apache Tomcat做负载均衡,系统正式上线后就需要考虑如果对ApacheTomcat进行性能优化,以便能够充分发挥硬件软件的处理能力。Apache Http Server:影响性能的最核心特性:MPM(Multi-Processing Modules,多道处理模块):进入httpd-2.0.45目录,运行以下代码:$ ./configure --help|grep mpm显示如...

weixin_39849254的博客 261

提高Tomcat并发量的几种方法

1、Apache + Tomcat 结合起来用Apache负责静态页面,Tomcat负责动态页面,同时减少connectionTimeout的时间,以应对并发量大线程回收来不及的情况。 2、压力过大的问题,可以做负载均衡,一个TOMCAT无论如何也不可能担当如此多的线程负载,而且JVM过大,其内存管理成本将显著加大。2G的内存,做3-4个TOMCAT实例(512RAM*4),更为科学合理。 3...

6105

史上最强Tomcat8性能优化

由于篇幅有限,这里就不一一罗列了,20道常见面试题(含答案)+21条MySQL性能调优经验小编已整理成Word文档或PDF文档还有更多面试复习笔记分享如下《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。

2401_83704159的博客 924

Tomcat服务部署及优化

一、Tomcat介绍 免费的、开放源代码的Web应用服务器 Apache软件基金会(Apache Software Foundation)Jakarta项目中的一个核心项目 由Apache、Sun一些公司及个人共同开发而成 深受Java爱好者的喜爱,并得到部分软件开发商的认可 目前比较流行的Web应用服务器 二、配置文件介绍及核心组件 2.1.Tomcat核心组件 Tomcat 由一系列的组件构成,其中核心的组件有三个: Web 容器:完成 Web 服务器的功能HTTP HTTPS请.

ZFX20001123的博客 1485

通向架构师的道路(第三天)之apache性能调优

一、总结前一天的学习 在前两天的学习中我们知道、了解并掌握了Web Server结合App Server实现单向Https的这样的一个架构。这个架构是一个非常基础的J2ee工程上线布署时的一种架构。在前两天的教程中,还讲述了Http服务器、App Server的最基本安全配置(包括单向https的实现), 它只是避免了用户可以通过浏览器侵入我们的Web访问器或者能够通过Web浏览器来查询我们的W...

fulerbakesi 747

apachetomcat性能优化

一、Apache优化 修改httpd-mpm.conf文件 KeepAlive ON &lt;IfModule prefork.c&gt; StartServers       200  MinSpareServers    5  MaxSpareServers   20 ServerLimit     6500  MaxClients       6000  MaxReques...

weixin_33826268的博客 180

中间件及tomcat的内存溢出调优

主要是这三个选项的调整需要根据主机的内存配置 以及业务量的使用情况调节 -Xmx4g -Xms4g -Xmn2g xmx 与xms一般设置为一样 xmn大致设置为xmx xms的三分之一 可以使用jstat -gcutil  (pid)  1000  来检查java内存是否需要调整 是否使用快满了! metaq  vim /usr/local/t

lesheaven__的博客 1191

Apache Tomcat 8.5 安全配置与高并发优化

https://www.renwole.com/archives/357 通常我们在生产环境中,Tomcat的默认配置显然不能满足我们的产品需求,所以很多时候都需要对Tomcat的配置进行调优,以下综合我自己的经验来配置 Tomcat 安全与优化情况,如果你有更好的方案,请留言,我会参考并加纳进去。 关于JAVA JDK JRE的安装配置,请阅读《Linux JAVA ...

tianjinsong的专栏 2万+

apache+tomcat 真的能提高性能吗?

[b]apache+tomcat 真的能提高性能吗?[/b] 答案是待定。。。。 我的亲身经历:我有三台刀片机 刚开始的使用后果方式是: 1.oracle 2.apache+tomcat 3.squid+tomcat 性能并不好。 后来改成 23分别担待一部分。系统稳定。 ...

foxox 285

anger_camera_greatlyfbi_camera_Cameracalibration_源码.zip

anger_camera_greatlyfbi_camera_Cameracalibration_源码

施耐德电气lexium Controller CE认证.pdf

施耐德电气lexium Controller CE认证pdf,施耐德电气lexium Controller CE认证

上一篇: Tomcat源码学习(一) 源码编译和导入Eclipse
下一篇: Apache2 httpd.conf 中文版
Stephen@Tang
博客等级 码龄20年 89粉丝 32原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值