1.1 tomcat性能优化整理
1、你怎样给tomcat调优
2.禁用DNS查询
3.调整线程数
通过应用程序的连接器(Con nector)进行性能控制的参数是创建的处理请求的线程数。Tomcat使用线程池加速响应速度来处理请求。在Java中线程是程序运行时的路径,是在一个程序中与其他控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最大利用率的高效程序,使空闲时间保持最低,从而接更多的请求。Tomcat4中可以通过修改minProcessors和maxProcessors的值来控制线程数。这些值在安装后就已经设定为默认值并且是足够使用的,但是随着站点的扩容而改大这些值。minProcessors服务器启动时创建的处理请求的线程数应该足够处理一个小量的负载。也就是说,如果一天内每秒发生5次单击事件,并且每个请求任务处理需要1秒钟,那么预先设置线程数为5就足够了。但在你的站点访问量较大时就需要设置更大的线程数,指定为参数maxProcessors的值。maxProcessors的值也是有上限的,应放置流量不可控制(或者恶意的服务攻击),从而导致超出了虚拟机使用内存的大小。如果要加大并发连接数,应同事加大这两个参数。web server 允许的最大连接数还受制于惨做系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。
在tomcat5对这些参数进行了调整,请看下面属性:
maxThreads Tomcat 使用线程来处理接收的每个请求,这个值表示Tomcat可创建的最大的线程数。
acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
connnection Timeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
minSpareThreadsTomcat 初始化时创建的线程数。
maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
最好的方式是多设置几次并且进行猜测是,观察响应时间和内存使用情况。在不同的机器、操作系统或虚拟机组合的情况下可能会不同,而且并不是所有人的WEB站点的流量都是一样的,因此没有一刀切的方案来确定线程数的值。
2.如何加大tomcat连接数
minProcessors:最小空闲连接数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认为75
acceptCount: 允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。。通常可设置为30000毫秒。其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。
web server 允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。tomacat中的配置示例:
对于其他端口的侦听配置,以此类推。
3.增加大tomcat的内存
首先检查程序有没有陷入死循环
写在开头面试官:“小伙子,线程池使用过吗,来聊一聊它吧!”我:“好的,然后巴拉巴拉一顿输出之前看过的build哥线程池十八问...”面试官满意的点了点头,紧接着问道:“那你知道如何优雅的关闭线程池吗?”我:“知道知道,直接调用shutdownNow()方法就好了呀!”面试官脸色一变,微怒道:“粗鲁!你给我滚出去!!!”优雅的关闭线程池哈哈,上面的场景是build哥臆想出来的面试画
oracle面试题 以下题目,可根据自己情况挑选题目作答,不必全部作答.您也可以就相关问题直接找负责面试人员面述而不笔答…… 一:SQL tuning 类 1:列举几种表连接方式 2:不借助第三方工具,怎样查看sql的执行计划 I) 使用Explain Plan,查询PLAN
[Java面试一]面试复习大纲.一、Java基础部分 (搞定所有技术之后才考虑复习的技术点) 1.数组中的排序问题(笔试或者机试,前者可能性更大) 2.面向对象的理解 3.集合相关的问题,比如hashmap跟hashtable的区别。搞清楚每个集合对象的特性就欧了。 4.多线程启动方式,以及产生死锁的原因和解决办法【多线程问题不是很常问,有精力就复习这块内容】 5.I
String能被继承吗?为什么?不可以,因为String类有final修饰符,而final不能被继承的,实现细节不允许改变。平常我们定义的String str = " a ";其实和String str = new String("a");还是有差异的。
1、请做一下自我介绍 2、请简单介绍下你的项目 3、请描述你工作中的测试流程是什么 4、你们有多个测试 5、测试用例需要哪些要素? 用例编号,项目名称,测试标题,重要级别,预置条件,输入说明,操作步骤,预期结果 可能还会有编写的人,创建时间,评审通过时间等 6、你是怎么设计测试用例的 从业务上结合设
1、String,StringBuffer,StringBuilder区别(1)从执行速度上来讲,StringBuilder > StringBuffer > StringString最慢的原因: String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。(2)...
*那一个线程执行的状态如何维护?[外链图片转存失败,源站可能有防盗链机制,建议将
今天去面商飞了.....一面出来比较沮丧,估计没戏....谁知刚面完,没精打采地吃完午饭...回到宿舍,没精打采地躺倒床上, 闭上眼睛养了会神......突然手机滴噜噜像起来...随手翻开一看,号码好像见过>>>.MS是商飞招聘组的电话.......一阵兴奋,不过还不知道是好消息还是坏消息...."你好"“是***吗?”“是的”“你好,我是
A: Morning, Frank. This is Martin. I got your name from HR scheduling team. I have a new project starti
Sqoop 面试篇《一》
Java基础方面1. 作用域public,private,protected,以及不写时的区别 作用域 当前类
java面试
你是否在ARM架构设备上遇到Docker镜像转换难题?还在为不同平台间的应用分发头疼?本文将带你一文掌握docker2exe工具在ARM平台的实战应用,解决跨架构转换痛点,让你的Docker镜像轻松变身可执行文件。读完本文,你将学会如何使用docker2exe的跨架构功能,在ARM设备上高效转换和运行Docker镜像,并了解其背后的实现原理。## 项目简介docker2exe是一个能将Do...
北京大学与哈佛大学联合团队在《Light: Science & Applications》发表研究,提出强耦合、高带宽腔电光调制新理论框架。该研究突破了传统电光调制技术的局限,揭示了极端条件下光频梳的高阶非线性动力学特性,并通过机器学习实现了频梳频谱的任意整形,使频梳平坦度提升10倍。这一理论创新不仅为理解强耦合条件下的电光调制行为提供了统一工具,还显著降低了实验难度,在薄膜铌酸锂等先进光子平台上具备快速应用潜力,为光通信、量子计算等领域提供了可编程光源新方案。
本案例适用于汽车零部件生产线的分布式控制场景,西门子S7-1500PLC作为控制核心,通过Profinet总线连接DeviceNet主站网关,网关下联3台DeviceNet从站型伺服驱动器,实现多轴同步控制。核心需求是通过网关完成控制、位置指令的跨总线传输,满足±0.1mm的精度要求。 Pr ...
先简单说说问题吧,我们在使用Word的时候经常会发现有些单词比如school,一不小心给敲成了shcool或者shool,这个时候Word 会很体贴地提示我们这个英语单词错了(很简单shcool,shool在Word的字典库中都没有出现过,所以肯定错了),接下来Word给出了好几个单 词都长得特别像shcool,让我们最快地修正错误,今天真正要讲的就是Word怎么判断两个字符串的相似程
目录引言:AtCoder Beginner Contest 428 Grandma's Footsteps 题目分析 逻辑梳理 代码实现 Most Frequent Substrings 题目分析 逻辑梳理 代码实现 Brackets Stack Query 题目分析 逻辑梳理 代码实现小训练赛 货 ...