百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

一线大厂Java面试必问的14道Tomcat调优真题,你都学废了吗?

nanshan 2024-11-24 19:35 19 浏览 0 评论

前言

在工作中,作为 Java 开发的程序员,Tomcat 服务器是大家常用的,也是很多公司现在正在用的。但是,在系统并发量比较大的情况下,Tomcat 就会出现卡死和自动关闭等问题。如何优化 Tomcat,这也是面试官经常问的问题。

1、Tomcat的缺省端口是多少,怎么修改?

1)找到Tomcat目录下的conf文件夹

2)进入conf文件夹里面找到server.xml文件

3)打开server.xml文件

4)在server.xml文件里面找到下列信息

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
redirectPort="8443" uriEncoding="utf-8"/>
port="8080"改成你想要的端口

2、tomcat 有哪几种Connector 运行模式(优化)?

bio:传统的Java I/O操作,同步且阻塞IO。

maxThreads="150"//Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。可以根据机器的时期性能和内存大小调整,一般可以在400-500。最大可以在800左右。

minSpareThreads="25"---Tomcat初始化时创建的线程数。默认值4。如果当前没有空闲线程,且没有超过maxThreads,一次性创建的空闲线程数量。Tomcat初始化时创建的线程数量也由此值设置。

maxSpareThreads="75"--一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值50。一旦创建的线程超过此数值,Tomcat会关闭不再需要的线程。线程数可以大致上用 “同时在线人数*每秒用户操作次数*系统平均操作时间” 来计算。

acceptCount="100"----指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。如果当前可用线程数为0,则将请求放入处理队列中。这个值限定了请求队列的大小,超过这个数值的请求将不予处理。

connectionTimeout="20000" --网络连接超时,默认值20000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

nio:JDK1.4开始支持,同步阻塞或同步非阻塞IO。

指定使用NIO模型来接受HTTP请求

protocol="org.apache.coyote.http11.Http11NioProtocol" 指定使用NIO模型来接受HTTP请

求。默认是BlockingIO,配置为protocol="HTTP/1.1"

acceptorThreadCount="2" 使用NIO模型时接收线程的数目

aio(nio.2):JDK7开始支持,异步非阻塞IO。

apr:Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地 提高Tomcat对静态文件的处理性能。

<!--
<Connector connectionTimeout="20000" port="8000" protocol="HTTP/1.1"
redirectPort="8443" uriEncoding="utf-8"/>
-->
<!-- protocol 启用 nio模式,(tomcat8默认使用的是nio)(apr模式利用系统级异步io) -->
<!-- minProcessors最小空闲连接线程数-->
<!-- maxProcessors最大连接线程数-->
<!-- acceptCount允许的最大连接数,应大于等于maxProcessors-->
<!-- enableLookups 如果为true,requst.getRemoteHost会执行DNS查找,反向解析ip对应域
名或主机名-->
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443
maxThreads=“500”
minSpareThreads=“100”
maxSpareThreads=“200”
acceptCount="200"
enableLookups="false"
/>

其他配置

  • maxHttpHeaderSize="8192" http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
  • URIEncoding="UTF-8" 指定Tomcat容器的URL编码格式。
  • disableUploadTimeout="true" 上传时是否使用超时机制
  • enableLookups="false"--是否反查域名,默认值为true。为了提高处理能力,应设置为false
  • compression="on" 打开压缩功能
  • compressionMinSize="10240" 启用压缩的输出内容大小,默认为2KB
  • noCompressionUserAgents="gozilla, traviata" 对于以下的浏览器,不启用压缩
  • compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型需要压缩

3、Tomcat有几种部署方式?

1)直接把Web项目放在webapps下,Tomcat会自动将其部署

2)在server.xml文件上配置<Context>节点,设置相关的属性即可

3)通过Catalina来进行配置:进入到conf\Catalina\localhost文件下,创建一个xml文件,该文件的名字就是站点的名字。

编写XML的方式来进行设置。

4、tomcat容器是如何创建servlet类实例?用到了什么原理?

当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。

(有时候也是在第一次请求时实例化)在servlet注册时加上如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。

5.tomcat 如何优化?

6.内存调优

7.垃圾回收策略调优

8.添加JMS远程监控

9.专业点的分析工具有

10.关于Tomcat的session数目

11.监视Tomcat的内存使用情况

12.打印类的加载情况及对象的回收情况

13.Tomcat一个请求的完整过程

14.Tomcat工作模式?

15.共享session处理

为了不影响大家的阅读体验,这篇Tomcat调优真题已经为大家打包好了,需要的小伙伴点赞+转发,关注我之后 私信【242】即可获取,希望这份面试笔记可以帮助大小伙伴愉快的通过面试,当然以上的面试真题仅供参考!

相关推荐

人人视频崩了怎么回事 人人视频下架了吗为什么刷不出来了

[海峡网]人人视频挂了吗下架了吗人人视频崩了怎么回事刷不出来了?人人视频发生了什么?怎么都看不成了,暂时还是永久?本来还以为是手机的问题,原来是客户端崩了难怪一直显示服务器异常!追着的美剧突然都下架...

502 bad gateway怎么解决?(502 bad gatewaynginxundefined)

相信许多小伙伴都遇到打开的网页提示502badgateway,502badgateway是提示用户该网址的网关错误,Web服务器作为网关或代理服务器时收到无效的响应,不管怎么刷新怎么重新输入地...

2岁男童眼睛被滴入强酸药水,医生亲身“试”药吓坏了……

平日里,小孩子爱玩爱闹是常事儿,但是大人的注意力如果时不时的掉线可就麻烦了。这一天,杭师大附院眼科陈舒主任医师像往常一样在接诊病人,然而一个孩子的哭闹声引起了她的注意,一群人神情焦灼,簇拥着一个孩子急...

3岁男童误将502胶当滴眼液,幸好妈妈及时处理,医生也为她点赞

小孩子由于心智还不够成熟,因此往往会做出一些危险的事情,甚至对自己造成伤害,这就需要家长的监督和保护。巧也不巧,日常生活中能够对孩子造成威胁的东西实在是太多了,堪称数不胜数,水笔、筷子、桌角,甚至刚拖...

5岁娃把502胶当眼药水滴眼中,爸爸的做法很机智,医生都称赞

文|哑铃妈妈家里有小孩子的一定要注意,在我们的家里存在很多的安全隐患,有的时候连家长都想不到的东西,竟然对孩子带来了伤害。5岁娃把502胶当眼药水滴眼中,爸爸的做法很机智,医生都点赞女孩乐乐长得可爱,...

宝宝误食502胶水,连忙送医救治,医生却夸宝妈做得好

有了孩子之后,妈妈都会变得神经敏感,生怕自己没有把孩子照顾好,但是毕竟一个人的经历是有限的,再加上孩子要是会走路,会说话之后对宝妈来说更是一种挑战,危及可能无时无刻不存在,这不,因为宝妈一转身的功夫,...

记一次Netty「直接内存溢出」导致线上网关项目宕机排查过程

作为一名Java开发者,我们都知道Java进程是运行在Java虚拟机上的,而Java进程要想正常运行则需要向计算机申请内存,其中主要为Java对象实例所占用的堆(heap)内存(当然还有其他的也会占用...

刚刚,突然崩了!网易云音乐紧急回应

今天下午#网易云音乐崩了#登上微博热搜第一在社交平台上,不少网友反馈,网易云音乐疑似崩溃。网友晒出网页端出现“502BadGateway”的服务器错误,同时网易云音乐的移动应用程序也无法正常使用。...

常见状态码(常见的状态码)

一二三四五原则:(即一:消息系列;二:成功系列;三:重定向系列;四:请求错误系列;五:服务器端错误系列。301状态码是永久移动302是临时移动304如果请求头中带有If-None-Match...

8岁男孩眼睛溅入502胶水,妈妈一番操作结果粘得更紧了

家有小孩的爸妈们肯定会多留个心眼照看虽然生活中已经时刻留意可能造成伤害的物品但有时一不留神幼小的孩子就会做出让人担心的事↓↓↓家住深圳的辰辰(化名)今年8岁了3月31日他在家里做手工时想要用未开封的5...

3岁娃滴502胶水在眼睛疼的尖叫,宝妈急中生智,保住孩子眼睛

但还好宝妈急中生智,连忙将孩子带到水龙头处,用水给孩子冲洗了一下眼睛,还用大量的生理盐水来给孩子清洗眼球,之后又立马将孩子送往医院,最后孩子的眼睛也没有什么大碍,拿了点药就能顺利出院了。而502胶水这...

网易云音乐回应App崩了:故障已陆续修复,补偿7天会员

2024年8月19日下午,多名网友反馈称,网易云音乐服务器疑似出现故障,登录网易云音乐APP后发现,个性化推荐和搜索功能均无法使用,并收到“获取数据失败”的提示。此外,网易云音乐的网页端也显示502错...

又崩了!不少人直接傻眼:太离谱!(台湾人到大陆后傻眼)

造车新势力哪吒汽车再被推向舆论风口。5月4日,话题#曝哪吒汽车APP断网#冲上微博热搜App断网无法使用从5月2日开始,陆续有多位网友反映哪吒汽车App断网,App控车无法使用。哪吒汽车App目前出现...

男子误把502胶水当眼药水!千万别犯这种低级错误!

你敢相信吗?有人竟然误把五零二胶水当成了眼药水滴进眼睛里。这可不是什么玩笑话,而是近日发生在武汉的一起真实事件。一名男子因此导致眼角膜严重受损,不得不紧急就医。据武汉大学附属爱尔眼科医院报道,这名男子...

502入眼危机!这份急救指南请牢记(502进入眼中怎么办)

502入眼,真实案例触目惊心生活中,502胶水是常用的黏合剂,以其强力黏合性备受青睐。但它一旦进入眼睛,后果不堪设想,下面这些真实案例,足以让我们警醒。曾有这样一则新闻,一位4岁女童在家玩耍时...

取消回复欢迎 发表评论: