面试之Tomcat

1.tomcat默认端口及修改

a.找到tomcat目录下的conf文件夹
b.进入conf找到server.xml文件
c.在server.xml中找到下列信息

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1"
redirectPort="8443" uriEncoding="utf-8"/>
port = "修改端口"

2.tomcat - Connector?

1)maxThreads = “150”
是tomcat使用线程来处理接收的每个请求。这个值表示tomcat最大线程数,默认是200,一般谁知在400-500 ,最大约在800左右
2)minSpareThreads = “20” tomcat初始化时创建的线程数 ,默认是4
3)maxSpareThreads = “60” 一旦创建的线程超过这个值,tomcat就会关闭不需要的socket线程,默认值是50.
4)acceptCount = “10”
如果处理请求的线程数都在被使用 ,可以放到这个队列中,而超过这个数的请求将不处理。默认是10 5)connectionTimeout =
“1000” 网络连接超时 ,默认值是20000,单位是毫秒 ,如果设置为0的话,表示永不超时。
6)nio,
jdk1.4开始支持,同步阻塞或同步非阻塞,可通过 protocol = “****” 指定使用的NIO模型
来接收http请求,默认是BIO ,acceptorThreadCount = “5” 表示 使用NIO模型时接收线程的数目
7) aio jdk1.7开始支持,异步非阻塞IO

3.tomcat容器如何创建servlet类实例

在tomcat容器启动时,读取webapps目录下的所有的web应用中的web.xml文件,对其进行解析,并读取servlet注册信息,然后将每个应用中注册的servlet类进行加载,并通过反射实例化。(也有在第一次请求时实例化的)

4.内存调优

内存设置是在catalina.sh中,调整一下java_opts变量即可,后面启动参数会把java_opts作为jvm的启动参数来处理;具体参数如下:
java_opts="$java_opts
-Xmx1024m -Xms1024m -Xss100k -XX:NewRatio=4 -XX:SurvivorRatio=4"
参数解释如下:
-Xmx1024m:设置jvm最大可用内存为1024M
-Xms1024m:设置jvm初始内存为1024M,该值可与Xmx相同,防止每次垃圾回收完成后jvm重新分配内存
-Xmn2g:设置年轻的大小为2G; 整个堆大小 = 年轻代 + 年老代 +持久代;持久代一般固定大小为64M,所以增大年轻代后,将会减小年老代,此值堆系统性能影响大,官方推荐配置 整个堆的3/8
-Xss128k: 每个线程的堆大小 ,根据业务线程所需内存大小调整,减小这个值能生成更多的线程 ,但是系统对一个进程中的线程数量,是有限制的 ,不可无线生成 。推荐4000左右
-XX:NewRatio=4: 表示年轻代(包括eden和survivor)与年老代所占比值(除永久代)为1:4,年轻代占真个堆栈的1/5
-XX:SurvivorRatio=4:设置年轻代中Eden区 和 Survivor区的大小比值,设置为4表示survivor与eden区的比值为2:4,一个survivor区占整个年轻代的1/6
-XX:MaxPermSize=16m:设置持久代大小16m;
-XX:MaxTenuringThreshold=0: 设置垃圾最大年龄,如果设置为0,年轻代对象会不经过survivor区,直接进入年老代,对于年老代比较多的应用可以提高效率。如果设置一个比较大的值,年轻代对象会在survivor区进行多次复制 ,这样会使对象增加在年轻代的生命。

5.垃圾回收策略优化

-XX:+UserParallelGC:选择垃圾收集器为并行收集器,对年轻代有效,老年代依然是串行收集
-XX:ParallelGCThreads=10: 并行收集器的线程数。就是多少个线程一起收集垃圾
-XX:+UserParallelOldGC:年老代收集方式 为并行收集器(JDK1.6支持)
-XX:MaxGCPauseMillis=10:年轻代垃圾回收最长时间,无法满足这个时间,jvm会自动调整年轻代大小。
-XX:CMSFullGCsBeforeCompaction: 并行收集器不对内存空间进行压缩、整理,所以运行一段时间会产生,运行效率低的问题,该值设置运行多少次GC后,对内存空间进行压缩、整理。
-XX:+UseCMSCompactAtFullCollection: 打开对年老代的压缩,可能会影响性能,但是能消除碎片

6.查看tomcat内存使用情况

jdk自带的jconsole,也可以下载 jvisualvm的插件 ,如GC等、可以查看更多的信息

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值