详见:Tomcat 面试题汇总:https://blog.csdn.net/qq_25934401/article/details/81536958

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

tomcat默认的端口是8080,还会占用8005,8009和8443端口。

进入tomcat安装目录,编辑文件“安装目录\apache-tomcat-7.0.6\conf\server.xml”(可以用记事本打开)

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

当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,

并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。

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

如果不写或为负数,则第一次请求实例化。

3.内存调优

内存方式的设置是在catalina.sh,在catalina.bat中,调整一下JAVA_OPTS变量即可,因为后面的启动参数会把JAVA_OPTS作为JVM的启动参数来处理。
具体设置如下: JAVA_OPTS="$JAVA_OPTS -Xmx3550m -Xms3550m -Xss128k -XX:NewRatio=4 -XX:SurvivorRatio=4"
其各项参数如下:
-Xmx3550m:设置JVM最大可用内存为3550M。 -Xms3550m:设置JVM促使内存为3550m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 -Xmn2g:设置年轻代大小为2G。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。
此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 -Xss128k:设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。
在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右。 -XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为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区进行多次复制,这样可以增加对象再年轻代的存活时间,
增加在年轻代即被回收的概论。

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

使用JDK自带的jconsole可以比较明了的看到内存的使用情况,线程的状态,当前加载的类的总量等;

JDK自带的jvisualvm可以下载插件(如GC等),可以查看更丰富的信息。如果是分析本地的Tomcat的话,还可以进行内存抽样等,检查每个类的使用情况
在java/bin目录下

最新文章

  1. geotrellis使用(二十三)动态加载时间序列数据
  2. mtr命令详解
  3. 使用Fusioncharts实现后台处理进度的前台展示
  4. 关于EM,REM,PX的几点注意
  5. JavaEE知识点总结
  6. java多线程系类:基础篇:01基本概念:
  7. Android ViewFlipper控件实例
  8. JS 获取浏览器和屏幕宽高等信息代码
  9. JAVA首选五款开源Web开发框架
  10. 04747_Java语言程序设计(一)_第8章_多线程
  11. poj 2976 Dropping tests
  12. C#抓取页面时候,获取页面跳转后的地址
  13. ArrayList 和 LinkedList 的实现与区别
  14. 网页开发--03(wampserver安装服务无法启动的问题)
  15. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-模块管理按子系统进行分类管理
  16. Stanford Local 2016 E "Election of Evil"(搜索(正解)或并查集(划掉))
  17. IDEA中MAVEN项目Dependency not found 问题
  18. ITIL也玩“太极拳”
  19. python实现float/double的0x转化
  20. [转帖]什么是TRIM与GC?他们是怎样让SSD保持高速的

热门文章

  1. RabbitMQ学习之:(八)Topic Exchange (转贴+我的评论)
  2. xpath定位元素
  3. 练习django 访问url报错Forbidden (CSRF cookie not set.)
  4. [Mac]安装pyspider的大坑
  5. Spring-Kafka —— 实现批量消费和手动提交offset
  6. k8s 网络模型解析之原理
  7. 用Python操作Excel,实现班级成绩的统计
  8. coding.net------WEBHOOK自动部署实战
  9. mybatis 传递多个查询参数
  10. Linux 网络 I/O 模型简介(图文)(转载)