Tomcat7性能优化.docx

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Tomcat7性能优化剖析

目的通过优化tomcat提高网站的并发能力。当我们今天我们将这个优化讲完之前优化完成后看能达到什么层次。服务器资源服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。硬件我们不说了这个方面是钱越多越好是吧。优化配置配置tomcat管理员账户在conf/ tomcat-users.xml下添加用户:role rolename=manager/role rolename=manager-gui/role rolename=admin/role rolename=admin-gui/user username=tomcat password=tomcat roles=admin-gui,admin,manager-gui,manager/启动tomcat,登录查看信息::8080/ajp-服务器之间的通信协议,socket层然后组装一定的数据给对方数据形式也可能json xml 文本只是各个厂家约定的,例如我们在一个物理主机跑三个TOMCAT服务器的时候是吧,这个负载均衡通过权数和算法tomcat的3种运行模式tomcat的运行模式有3种:bio默认的模式,性能非常低下,没有经过任何优化处理和支持.一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。Tomcat7或以下,在Linux系统中默认使用这种方式。nionio(new I/O),是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。利用Java的异步IO处理,可以通过少量的线程处理大量的请求。Tomcat8在Linux系统中默认使用这种方式。Tomcat7必须修改Connector配置来启动:Connector port=8080 protocol=org.apache.coyote.http11.Http11NioProtocol connectionTimeout=20000 redirectPort=8443/apr安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.即Apache Portable Runtime,从操作系统层面解决io阻塞问题。Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。Linux如果安装了apr和native,Tomcat直接启动就支持apr。具体安装办法参见这个地址:/lsw90/blog/181161在那里看我们的tomcat以何种工作模式启动的啊?Tomcat启动的时候,可以通过log看到Connector使用的是哪一种运行模式:Starting ProtocolHandler [http-bio-8080]Starting ProtocolHandler [http-nio-8080]Starting ProtocolHandler [http-apr-8080]启动NIO模式修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol这里有个问题啊?为什么它不直接改成NIO的形式呢?这个方式是利用了jdk 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)为桥梁实现的,不改成这种优化方式就是为了兼容1.4之前的JAVA项目也能跑起来。执行器(线程池)默认的tomcat没有启用线程池,在tomcat中每一个用户请求都是一个线程,所以可以使用线程池提高性能。这里前台其实有一个调度线程,然后调度线程会放入线程池内,然后到到一定的时候线程池的任务变成工作线程啊。开启并且使用配置:参数说明:8088/docs/config/http.htmlAttributeDescriptionthreadPriority(优先级)(int)线程的线程优先级执行程序,默认是5(NORM_PRIORITY常数)daemon(守护进程)(布尔)是否应该守护程序线程,线程默认是truenamePrefix(名称前缀)(String) The name prefix for each thread created by the executor. The thread name for an individual thread will be?namePrefix+threadNumbermaxThreads(最大线程数)(int) The max number of active threads in this pool, default i

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档