tomcat中关于websocket的性能优化配置
一、优化Connector
http://www.aikaiyuan.com/8466.html
tomcat的运行模式有3种
1)bio
默认的模式,性能非常低下,没有经过任何优化处理和支持.
2)nio
利用java的异步io护理技术,noblocking IO技术.
想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为
protocol=”org.apache.coyote.http11.Http11NioProtocol” 启动后,就可以生效。
( http://www.365mini.com/page/tomcat-connector-mode.htm )
3)apr
安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.
二、Apache Tomcat 8 WebSocket How-To 中文翻译版
http://blog.csdn.net/hills/article/details/39368951
Java WebSocket 1.0 规范要求在一个不同的线程上执行到发起写入的线程的异步写入回调。
由于容器线程池不是通过Servlet API被暴露,因此WebSocket实现必须提供自己的线程池。该线程池可以通过下列servlet context初始化参数被控制:
org.apache.tomcat.websocket.executorCoreSize: executor线程池的核心大小。如果不设置,则默认为0。
org.apache.tomcat.websocket.executorMaxSize:executor线程池所允许的最大值。如果不设置,则默认为200。
org.apache.tomcat.websocket.executorKeepAliveTimeSeconds:executor线程池中空闲进程所保留的最大时间。如果未指定,则默认为60秒。
设置方法:
web.xml中
<!--websocket executor 线程池的核心容量大小 -->
<context-param>
<param-name>org.apache.tomcat.websocket.executorCoreSize</param-name>
<param-value>200</param-value>
</context-param>
<!--websocket executor 线程池的最大容量大小 -->
<context-param>
<param-name>org.apache.tomcat.websocket.executorMaxSize</param-name>
<param-value>1000</param-value>
</context-param>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
三、设置最大线程数
apache-tomcat-7.0.73\conf\server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
- 1
- 2
- 3
修改为:
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="1000" minSpareThreads="4"/><Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
总结:
我采用第三种方案优化,使用tomcat8.5.3 ,
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" />
<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="40000" redirectPort="8443" acceptCount="1000" />
静待效果中
参考:https://blog.csdn.net/jkxqj/article/details/72640037
tomcat中关于websocket的性能优化配置相关推荐
- Tomcat中实现websocket和browser端访问
Tomcat中实现websocket和browser端访问 简介: 在tomcat 7.0.27版本后,实现了对websocket的支持.在最新的tomcat7.0.72后,websocket的开发变 ...
- Blink/Flink作业 性能优化配置及原理
高性能作业指南 本文通过代码和一些配置信息来优化blink/flink作业的性能. 共分为几部分: 1.group aggregate优化: 开启minibatch,开启localglobal,开启p ...
- Windows10中macOS10.14虚拟机性能优化教程
Python 全栈工程师核心面试 300 问深入解析(2020 版)----全文预览 Python 全栈工程师核心面试 300 问深入解析(2020 版)----欢迎订阅 Windows10中采用VM ...
- iMobile中三维数据的性能优化
作者:xinxin 目前,很多项目都用SuperMap iMobile for Android产品来实现展示三维数据效果,但由于三维数据对硬件设备要求高,而移动端设备的硬件远不如PC端,所以想要在iM ...
- Spark Streaming 实时计算在甜橙金融监控系统中的应用、性能优化、任务监控
1 写在前面 目前公司对实时性计算的需要及应用越来越多,本文选取了其中之一的 Spark Streaming 来介绍如何实现高吞吐量并具备容错机制的实时流应用.在甜橙金融监控系统项目中,需要对每天亿万 ...
- spark 算子使用类变量_自己工作中超全spark性能优化总结
来源:https://zhuanlan.zhihu.com/ p/108454557 作者:一块小蛋糕 编辑:深度传送门 Spark是大数据分析的利器,在工作中用到spark的地方也比较多,这篇总结是 ...
- android中momery检测,Android性能优化第(二)篇---Memory Monitor检测内存泄露
版权声明:本文为LooperJing原创文章,转载请注明出处! 多练习多写代码.jpg 上篇说了一些性能优化的理论部分,主要是回顾一下,有了理论,小平同志又讲了,实践是检验真理的唯一标准,对于内存泄露 ...
- Tomcat中JVM内存溢出及合理配置(转:http://blog.csdn.net/ye1992/article/details/9344807)
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机.Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识 ...
- tomcat中 JVM 内存溢出及合理配置
Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个Java虚拟机.Tomcat的内存溢出本质就是JVM内存溢出,所以在本文开始时,应该先对Java JVM有关内存方面的知识 ...
最新文章
- 【windows】cmd中的help无法使用的解决方法
- 【转】解决smtplib发送多人邮件没有展示收件人的问题
- 中国首个AI考级来了:共分10级,北大出题,工信部认证 | 在线可测,我最多活3级...
- There is no tracking information for the current branch
- leetcode 773. 滑动谜题
- wamp+多版本mysql_WampServer下安装多个版本的PHP、mysql、apache图文教程,_PHP教程
- java多线程问题,线程交替执行
- easyUI 如何不跳转页面,只是加载替换center部分内容
- tcp/ip协议初识
- 【数据结构和算法笔记】:广义表
- 【PAT甲】1007 Maximum Subsequence Sum (25分),求最大字段和及区间
- Ubuntu下安装tensorBroad的全过程
- JS 学习笔记--8---Function类型
- css字体转换程序(Node.js)
- 网络工程师Day2---实验2-1:HDLC和PPP配置
- LeetCode ——24. 两两交换链表中的节点
- 设计模式之Prototype(原型)
- 【双十一精选】史上最强的宝贝详情页设计思路以及操作流程
- 2020届恒生电子秋季招聘试卷
- sqlserver中执行顺序、TOP、PERCENT百分比、DISTINCT去掉重复值