你怎样给tomcat调优?
1.JVM参数调优: -Xms<size> 表示JVM初始化堆的大小,日Xmx<s ize>表示JVM堆的最大值。这两个值的大小一般根据需要进行设置。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此- -般建议堆的最大值设置为可用内存的最大值的80%。在catalina. bat中,设置JAVA_ _OPTS= '-Xms256m-Xmx512m' ,表示初始化内存为256MB,可以使用的最大内存为512MB。
2.禁用DNS查询
当web应用程序向要记录客户端的信息时,它也会记录客户端的P地址或者通过域名服务器查找机器名转换为IP地址。DNS查询需要占用网络,井且包括可能从很多很远的服务器或者不起作用的服务器上去获取对应的IP的过程,这样会消耗-定的时间。为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server. xml文件中的enableLookups参数值:
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站点的流量都是-样的,因此没有一刀切的方案来确定线程数的值。
由于篇幅限制(小编太懒,粘贴比较累),就展现了一道性能优化的面试题,当然小编不只整理了这一道哈
小编把各个专题的面试题整理成了一本java开发手册,分享给有需要的朋友们。
包括专题有:
一、性能优化面试专栏
二、微服务架构面试专栏
三、并发编程高级面试专栏
四、开源框架面试题专栏
五、分布式面试专栏
5.1、分布式限流面试整理
5.2、分布式通讯面试整理
5.3、分布式数据库面试整理
有需要的程序员小伙伴们可以获取一下哦,领取方式:点赞+评论后关注我私信回复【面试】即可免费领取到!
目录展现
领取方式:点赞+评论后关注我私信回复【面试】即可免费领取到!
有需要的程序员小伙伴们可以获取一下哦,领取方式:点赞+评论后关注我私信回复【面试】即可免费领取到!
有需要的程序员小伙伴们可以获取一下哦,
领取方式:点赞+评论后关注我私信回复【面试】即可免费领取到!
网友评论