tomcat如何增大并发_高并发环境下如何优化Tomcat性能
Tomcat运行模式
Tomcat的运行模式有3种。
1.bio模式
默认的模式,性能非常低下,没有经过任何优化处理和支持。
2.nio模式
利用java的异步io护理技术,noblocking IO技术。要想运行在该模式下,则直接修改server.xml里的Connector节点,修改protocol为如下配置。
protocol="org.apache.coyote.http11.Http11NioProtocol"
重启Tomcat后,就可以生效。
3.apr模式
安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能。此种模式下,必须要安装apr和native,直接启动就支持apr。
如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtocol,如下所示。
protocol="org.apache.coyote.http11.Http11AprProtocol"
Tomcat并发优化
安装APR
[root@binghe ~]# yum -y install apr apr-devel openssl-devel
[root@binghe~]# tar zxvf tomcat-native.tar.gz
[root@binghe~]# cd tomcat-native-1.1.24-src/jni/native[root@binghenative]# ./configure --with-apr=/usr/bin/apr-1-config --with-ssl=/usr/include/openssl/[root@binghenative]# make && make install
安装完成之后 会出现如下提示信息
安装成功后还需要对tomcat设置环境变量,方法是在catalina.sh文件中增加1行:
在这段代码下面添加:
============# OS specific support. $var _must_ be set to eithertrue or false.
cygwin=falsedarwin=false
==============CATALINA_OPTS=”-Djava.library.path=/usr/local/apr/lib”
启动tomcat之后,查看日志,如下所示。
more TOMCAT_HOME/logs/catalina.out2020-04-17 22:34:56org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library1.1.31 using APR version 1.3.9.2020-04-17 22:34:56org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].2020-04-17 22:34:56org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized (OpenSSL1.0.1e 11 Feb 2013)2020-04-17 22:34:58AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“http-apr-8080”]2020-04-17 22:34:58AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler [“ajp-apr-8009”]2020-04-17 22:34:58AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in1125 ms
Tomcat优化
1.JVM 调优
在TOMCAT_HOME/bin/catalina.sh 增加如下语句,具体数值视情况而定。添加到上面CATALINA_OPTS的后面即可,如下所示。
JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=512M -XX:MaxNewSize=1024m -XX:MaxPermSize=1024m
参数详解
-Xms:JVM初始化堆内存大小。
-Xmx:JVM堆的最大内存。
-Xss:线程栈大小。
-XX:PermSize:JVM非堆区初始内存分配大小。
-XX:MaxPermSize:JVM非堆区最大内存。
建议和注意事项:
-Xms和-Xmx选项设置为相同堆内存分配,以避免在每次GC 后调整堆的大小,堆内存建议占内存的60%~80%;非堆内存是不可回收内存,大小视项目而定;线程栈大小推荐256k。
32G内存配置如下:
JAVA_OPTS=-Xms20480m -Xmx20480m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=2048m
2.关闭DNS反向查询
在
enableLookups=”false”
3.优化tomcat参数
在server.xml文件中进行如下配置。
protocol=”org.apache.coyote.http11.Http11AprProtocol”
connectionTimeout=”20000″ //链接超时时长
redirectPort=”8443″
maxThreads=”500″//设定处理客户请求的线程的最大数目,决定了服务器可以同时响应客户请求的数,默认200
minSpareThreads=”20″//初始化线程数,最小空闲线程数,默认为10
acceptCount=”1000″ //当所有可以使用的处理请求的线程数都被使用时,可以被放到处理队列中请求数,请求数超过这个数的请求将不予处理,默认100
enableLookups=”false”
URIEncoding=”UTF-8″ />
tomcat如何增大并发_高并发环境下如何优化Tomcat性能相关推荐
- java设计模式并发_[高并发Java 七] 并发设计模式
[高并发Java 七] 并发设计模式 [高并发Java 七] 并发设计模式 为什么80%的码农都做不了架构师?>>> 在软件工程中,设计模式(design pattern)是对软件设 ...
- tomcat 请求超时_高并发环境下如何优化Tomcat性能?看完我懂了!
来自:冰河技术 写在前面 Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的性能呢? Tomcat运行 ...
- 高并发环境下如何优化Tomcat性能?看完我懂了!
来自:冰河技术 写在前面 Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的性能呢? Tomcat运行 ...
- 队列处理高并发_高并发场景下缓存处理的一些思路
在实际的开发当中,我们经常需要进行磁盘数据的读取和搜索,因此经常会有出现从数据库读取数据的场景出现. 但是当数据访问量次数增大的时候,过多的磁盘读取可能会最终成为整个系统的性能瓶颈,甚至是压垮整个数据 ...
- python websocket异步高并发_高并发异步uwsgi+web.py+gevent
为什么用web.py? python的web框架有很多,比如webpy.flask.bottle等,但是为什么我们选了webpy呢?想了好久,未果,硬要给解释,我想可能原因有两个:第一个是兄弟项目组用 ...
- ci mysql高并发_高并发访问mysql时的问题(一):库存超减
标签: 如果在对某行记录的更新时不采取任何防范措施,在多线程访问时,就容易出现库存为负数的错误. 以下用php.mysql,apache ab工具举例说明: mysql表结构 CREATE TABLE ...
- 队列处理高并发_高并发架构消息队列面试题解析
面试题 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka.ActiveMQ.RabbitMQ.RocketMQ 都有什么区别,以及适合哪些场景? 面试官心理分析 其实面试官主要是想看看: ...
- oom 如何避免 高并发_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!...
[高并发]高并发环境下如何防止Tomcat内存溢出?看完我懂了!! 发布时间:2020-04-19 00:47, 浏览次数:126 , 标签: Tomcat 写在前面 随着系统并发量越来越高,Tomc ...
- mysql 高并发 响应时间_高并发,你真的了解吗?
摘要:本文介绍高并发系统的度量指标,讲述高并发系统的设计思路,再梳理高并发的关键技术,最后结合作者的经验做一些延伸探讨. 当前,数字化在给企业带来业务创新,推动企业高速发展的同时,也给企业的IT软件系 ...
- mysql高并发和大流量_高并发-高并发和大流量解决方案
高并发架构相关概念 并发 并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,并且这几个程序都是在同一个处理机上运行,担任一个时刻点上只有一个程序在处理机上运行. 我们所说的 ...
最新文章
- tomcat 初始管理用户和密码
- 《Revisiting Salient Object Detection! Simultaneous Detection, Ranking, and Subitizing of Multiple Sa
- 漫画:为什么程序员喜欢使用 0 ≤ i 10 左闭右开形式写 for 循环?
- Spring-data-redis:特性与实例--转载
- php 工厂模式封装数据库,PHP设计模式之工厂模式
- Java减少依赖_去掉JAVA部分依赖的事例
- php 开启imagick,PHP-Imagick:在Imagick项目上设置重力
- Storm对DRPC权限控制Version1.0.1
- Atitit 短信 技术的概论 短信备份 attilax总结 1.1. 短信的历史	1 1.2. 短信长度 160字的长度限制灵感来自对明信片的研究。明信片。大多数明信片上的字符不超过160个
- 【电力负荷预测】基于matlab SVM短期电力负荷预测【含Matlab源码 280期】
- maven 命令下载jar包(mvn命令根据依赖下载jar包)
- Python学习笔记2
- 跟我学Python图像处理丨带你掌握傅里叶变换原理及实现
- win10系统下office2003和office2016兼容
- 【雅思】【写作】【大作文】Discuss both views and give your own opinion
- git使用中遇到的remote:Permission to xxx denied to xxx问题如何解决
- 手机呼叫转移怎么设置
- SpringBoot更改端口号:Web server failed to start. Port 8081 was already in use.
- datatable render formatter
- 向未来再出发,云客荣获金鸥奖2021年度企业服务商
热门文章
- SQL根据下标,返回split分割后字符串
- Windows 7无线路由器解决
- Linux命令大全:grep命令
- Some normal compiling and debugging commands for C# 常见C#调试和编译命令
- 40.Linux/Unix 系统编程手册(下) -- 登录记账
- 华为平板鸿蒙评测,华为平板首发鸿蒙系统,Matepad Pro2 跑分首曝
- maven私服nexus-bundle的安装和启动
- centos7.3上安装oracle xe 11g
- IDEA导入eclipse项目并部署到tomcat
- rabbitmq - (消息队列) 的基本原理介绍