设为首页 收藏本站
查看: 662|回复: 0

[经验分享] Tomcat学习笔记

[复制链接]

尚未签到

发表于 2017-1-25 11:57:14 | 显示全部楼层 |阅读模式
  在生产环境下,通常需要对Tomcat的一些参数进行设置以达到优化性能的目的。Tomcat运行于虚拟机JVM之上,因此对JVM的优化必不可少,另外机器的硬件、软件环境对服务器的运行效率至关重要。抛去其他因素不谈,下面仅介绍对Tomcat的有关参数进行优化设置。 DSC0000.gif
  【基本参数设置】
        修改Tomcat的/conf目录下面的server.xml文件,针对端口为8080的连接器添加如下参数: DSC0001.gif
  1. connectionTimeout:连接失效时间,单位为毫秒、默认为60s、这里设置为30s,如果用户请求在30s内未能进入请求队列,视为本次连接失败。
  2. keepAliveTimeout:连接的存活时间,默认和connectionTimeout一致,这里可以设为15s、这意味着15s之后本次连接关闭. 如果页面需要加载大量图片、js等静态资源,需要将参数适当调大一点、以免多次创建TCP连接。
  3. enableLookups:是否对连接到服务器的远程机器查询其DNS主机名,一般情况下这并不必要,因此设为false即可。
  4. URIEncoding:设置URL参数的编码格式为UTF-8编码,默认为ISO-8859-1编码。
  5. maxHttpHeaderSize:设置HTTP请求、响应的头部内容大小,默认为8192字节(8k),此处设置为32768字节(32k)、和Nginx的设置保持一致。
  6. maxThreads:最大线程数、用于处理用户请求的线程数目,默认为200、此处设置为300
  7. acceptCount:用户请求等候队列的大小,默认为100、此处设置为200
  Linux系统默认一个进程能够创建的最大线程数为1024、因此对高并发应用需要进行Linux内核调优,至此文件server.xml修改后的内容如下所示: DSC0002.gif

   <Connector port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
connectionTimeout="30000"
keepAliveTimeout="15000"
enableLookups="false"
URIEncoding="UTF-8"
maxHttpHeaderSize="32768"
maxThreads="300"
acceptCount="200"
/>
  【线程池技术】 DSC0003.gif
  默认情况下,Tomcat针对每个用户请求都单独创建一个线程,用户请求处理完成后又将线程立即销毁掉,在并发访问量很高的情况下,线程的创建和销毁会带来比较大的系统开销。因此有必要使用Tomcat提供的线程池功能,下面是设置Tomcat线程池的示例:
  1. 修改连接器的设置:指定executor的name为线程池的名字、同时去掉最大线程数maxThreads的设置。

  <Connector executor="tomcatThreadPool"
port="8080"
protocol="HTTP/1.1"
redirectPort="8443"
connectionTimeout="30000"
keepAliveTimeout="15000"
enableLookups="false"
URIEncoding="UTF-8"
maxHttpHeaderSize="32768"
acceptCount="200"
/>
  2. 线程池参数的设置: DSC0004.gif

  <Executor name="tomcatThreadPool"
namePrefix="catalina-exec-"
maxThreads="300"
minSpareThreads="50"
maxIdleTime = "15000"
/>
  说明:
  1. 通过namePrefix属性指定用户线程的命名前缀为“catalina-exec-”。
  2. maxThreads为最大线程数,minSpareThreads为最小空闲线程数,maxIdleTime为最大空闲时间、单位为毫秒。
  【使用Tomcat管理平台】 DSC0005.gif
  修改Tomcat的conf目录下面的tomcat-users.xml文件,添加如下内容:

<user username="nick" password="123456" roles="manager"/>
  启动Tomcat之后,通过http://localhost:8080访问欢迎页,点击左侧的Tomcat Manager链接,输入上面设置的账号后,在打开的页面点击Server Status链接进入Tomcat监控页面,可以查看到JVM、Tomcat的一些环境信息,以及当前的用户线程数: DSC0006.gif
DSC0007.jpg
 
  上面这些,只是Tomcat性能优化的入门知识,就像之前说的,Tomcat依赖于JVM虚拟机,对JVM的参数优化和性能监控才是重中之重,当然也更为复杂!
  ===============================
  稍后继续! DSC0008.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-333303-1-1.html 上篇帖子: eclipse tomcat Server Locations选项 下篇帖子: jbpm6 集成 spring 部署 tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表