一、配置tomcat管理员账户

在conf/ tomcat-users.xml下添加用户:
<user username="admin" password="1234" roles="manager-gui"/>

浏览器输入http://localhost:8080

点击输入用户名和密码进入。

二、tomcat的运行模式有3种:

1、bio

默认的模式,性能非常低下,没有经过任何优化处理和支持.

2、nio

比bio更好的并发运行性能。修改server.xml里的Connector节点,修改protocol为org.apache.coyote.http11.Http11NioProtocol

3、apr

需要安装,可以大幅度提高解决异步的IO问题,大幅度的提高性能。

三、执行器(线程池)

1、在server.xml修改配置。

2、部分参数说明:

Connector是Tomcat接收请求的入口,每个Connector有自己专属的监听端口,Connector有两种:HTTP Connector和AJP Connector。

1、maxThreads(最大线程数): The max number of active threads in this pool, default is 200

2、minSpareThreads(最小活跃线程数): The minimum number of threads always kept alive, default is 25

3、maxIdleTime(空闲线程等待时间):The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads. Default value is 60000(1 minute)

4、maxQueueSize(最大的等待队里数,超过则请求拒绝):The maximum number of runnable tasks that can queue up awaiting execution before we reject them. Default value is Integer.MAX_VALUE

5、prestartminSpareThreads(是否在启动时就生成minSpareThreads个线程): Whether minSpareThreads should be started when starting the Executor or not, the default is false

四、连接器(Connector)

1、部分通用属性

1、enableLookups:若是你想request.getRemoteHost()的调用 履行,以便返回的长途客户端的实际主机名的DNS查询,则设置为true。设置为false时跳过DNS查找,并返回字符串情势的IP地址(从而提高性能)。默认景象下,禁用DNS查找。

2、maxPostSize:将被容器以FORM URL参数形式处理的最大长度(以字节为单位)的POST。通过设置此属性的值小于或等于0可以禁用该限制。如果没有指定,该属性被设置为2097152(2兆字节)。

3、port:TCP端口号,连接器利用该端口号将创建一个服务器套接字,并等待传入的连接。你的操作系统将只允许一个服务器应用程序在一个特定的IP地址侦听特定的端口号。如果使用特殊值0(零),则Tomcat将为连接器随机选择一个空闲的端口。这是通常只用在嵌入式和测试应用程序。

4、protocol:设置协议来处理传入流量。默认值是 HTTP/1.1,将使用自动切换机制来选择阻塞的基于Java的连接器或APR /native 为基础的连接器。如果PATH(Windows)或LD_LIBRARY_PATH(在大多数Unix系统)的环境变量包含在Tomcat的本地库里,APR /native 连接器将被使用。如果在本地库中无法找到,阻断基于Java的连接器将被使用。需要注意的是使用HTTPS比Java连接器与APR /native 连接器有不同的设置。一个明确的协议,而不是依靠上述自动切换机构,可用以下值:
org.apache.coyote.http11.Http11Protocol -阻塞式的Java连接器
org.apache.coyote.http11.Http11NioProtocol -不阻塞Java连接器
org.apache.coyote.http11.Http11AprProtocol的 -的APR / native 连接器

也可以使用的用户自定义的实现。

5、URIEncoding:这将指定使用的字符编码​​,来解码URI字符。如果没有指定,ISO-8859-1将被使用。

acceptCount:当所有可能的请求处理线程都在使用时,传入连接请求的最大队列长度。当队列满时收到的任何请求将被拒绝。默认值是100。

2、标准实现

除了上面列出的常见的连接器属性,标准的HTTP连接器(BIO,NIO和APR/native)都支持以下属性。

1、acceptorThreadCount:用于接受连接的线程的数量。在一个多CPU的机器上,增加该值,虽然你可能不会真正需要超过2个。此外,有很多非保持活动连接,您可能需要增加这个值。默认值是 1。

2、compression:为了节省服务器带宽,连接器可以使用HTTP/1.1 GZIP压缩。可接受的参数的值是“off ”(禁用压缩),“on ”(允许压缩,这会导致文本数据被压缩),“force ”(强制在所有的情况下压缩),或者一个整数值(这是相当于为“on”,但指定了输出之前被压缩的数据最小量)。如果不知道内容长度但被设置为“on”或更积极的压缩,输出的数据也将被压缩。如果没有指定,该属性被设置为“关”。注意:这是使用压缩(节省您的带宽)和使用sendfile功能(节省你的CPU周期)之间的权衡。如果连接器支持sendfile功能,例如NIO连接,则使用sendfile将优先于压缩。症状是48 KB的静态文件将未压缩就发送。你可以如下文所述通过设置连接器的useSendfile属性来关闭sendfile,或在默认的conf/web.xml或者你的web应用的web.xml中配置DefaultServlet来改变sendfile的使用量阈值。

3、connectionUploadTimeout:上传数据过程中,指定的以毫秒为单位超时时间。只有在设置disableUploadTimeout为false有效。

4、disableUploadTimeout:此标志允许servlet容器在数据上传时使用不同的连接超时,通常较长。如果没有指定,该属性被设置为true,禁用上传超时。

5、executor:指向Executor元素的引用。如果这个属性被设置,并且被命名的executor存在,连接器将使用这个executor,而其他所有线程相关属性将被忽略。请注意共享的executor如果没有指定到一个连接器,则该连接器将使用一个私有的,内部的executor来提供线程池。

6、maxConnections:在任何给定的时间服务器接受并处理的最大连接数。当这个数字已经达到了,服务器将不会接受任何连接,直到连接的数量降到低于此值。基于acceptCount的设置,操作系统可能仍然接受连接。默认值根据不同的连接器类型而不同。对于BIO,默认的是maxThreads的值,除非使用了Executor,在这种情况下默认值是executor的maxThreads值 。对于NIO的默认值是10000。APR /native的默认值是8192。需要注意的是Windows系统的APR/native,所配置的值将减少到小于或等于maxConnections的1024的倍数的最大值。这样做是出于性能方面的考虑。如果设置的值-1,maxConnections功能被禁用,而且连接数将不做计算。

7、maxThreads:最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。如果没有指定,该属性被设置为200。如果使用了execute将忽略此连接器的该属性,连接器将使用execute,而不是一个内部线程池来处理请求。

8、minSpareThreads:始终保持运行最小线程数。如果没有指定,则默认为10。

9、SSLEnabled:在连接器上使用此属性来启用SSL加密传输。如果要打开SSL握手/加密/解密,请设置true。默认值是false。当设置这个值为true时,为了传递正确的request.getScheme()和 request.isSecure()到servlets,你需要设置scheme和secure属性。

五、禁用AJP连接器

AJP(Apache JServer Protocol),AJPv13协议是面向包的。WEB服务器和Servlet容器通过TCP连接来交互;为了节省SOCKET创建的昂贵代价,WEB服务器会尝试维护一个永久TCP连接到servlet容器,并且在多个请求和响应周期过程会重用连接。我们一般是使用Nginx+tomcat的架构,所以用不着AJP协议,所以把AJP连接器禁用。

在Server.xml中注释掉

<!--<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />-->

六、JVM参数

1、参数介绍

(1)Total Heap
-Xms :指定了JVM初始启动以后初始化内存
-Xmx:指定JVM堆得最大内存,在JVM启动以后,会分配-Xmx参数指定大小的内存给JVM,但是不一定全部使用,JVM会根据-Xms参数来调节真正用于JVM的内存
-Xmx -Xms之差就是三个Virtual空间的大小

(2)Young Generation
-XX:NewRatio=8意味着tenured 和 young的比值8:1,这样eden+2*survivor=1/9
堆内存
-XX:SurvivorRatio=32意味着eden和一个survivor的比值是32:1,这样一个Survivor就占Young区的1/34.

-Xmn 参数设置了年轻代的大小

(3)Perm Generation
-XX:PermSize=16M -XX:MaxPermSize=64M
Thread Stack

-XX:Xss=128K

2、常用参数

JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:NewRatio=2 -XX:MaxTenuringThreshold=50 -XX:+DisableExplicitGC"
1、-Xmx1024m  设置JVM最大可用内存为1024MB
2、-Xms1024m  设置JVM最小内存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
3、-XX:NewSize  设置年轻代大小
4、XX:MaxNewSize 设置最大的年轻代大小
5、-XX:PermSize  设置永久代大小
6、-XX:MaxPermSize 设置最大永久代大小
7、-XX:NewRatio=4:设置年轻代(包括Eden和两个Survivor区)与终身代的比值(除去永久代)。设置为4,则年轻代与终身代所占比值为1:4,年轻代占整个堆栈的1/5
8、-XX:MaxTenuringThreshold=0:设置垃圾最大年龄,默认为:15。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。

9、-XX:+DisableExplicitGC这个将会忽略手动调用GC的代码使得 System.gc()的调用就会变成一个空调用,完全不会触发任何GC

3、修改参数

(1)windows下修改:

在bin/catalina.bat文件,

set JAVA_OPTS=-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC

(2)Linux下修改:

在bin/catalina.sh文件,
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:MaxTenuringThreshold=10 -XX:NewRatio=2 -XX:+DisableExplicitGC"

Tomcat优化总结相关推荐

  1. 提高网站访问性能——Tomcat优化

    一.前言 tomcat 服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了,对于tomcat的优化,主要是从2个方面入手,一是tomcat本身的配置,另一个是t ...

  2. Tomcat学习总结(3)——Tomcat优化详细教程

    Tomcat是我们经常使用的 servlet容器之一,甚至很多线上产品都使用 Tomcat充当服务器.而且优化后的Tomcat性能提升显著,本文从以下几方面进行分析优化. 一.内存优化 默认情况下To ...

  3. 面试必问!Tomcat 优化篇!

    前言 Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet.JSP 程序的首选.相信大家对于 Tomcat 已经是非常熟悉了,本 ...

  4. 系统优化怎么做-Tomcat优化

    系统优化怎么做-Tomcat优化 前言 Tomcat作为Web应用的服务器,目前绝大多数公司都是用其作为应用服务器的,应用服务器的执行效率会影响系统执行,这里会讲Tomcat怎样进行配置能提高处理性能 ...

  5. iis7.0 https访问显示403访问被拒绝_提高网站访问性能——Tomcat优化

    一.前言 tomcat 服务器在JavaEE项目中使用率非常高,所以在生产环境对tomcat的优化也变得非常重要了,对于tomcat的优化,主要是从2个方面入手,一是tomcat本身的配置,另一个是t ...

  6. tomcat优化-有改protocol 和 缓存 集群方案

    tomcat优化 在线上环境中我们是采用了tomcat作为Web服务器,它的处理性能直接关系到用户体验,在平时的工作和学习中,归纳出以下七种调优经验. 1. 服务器资源 服务器所能提供CPU.内存.硬 ...

  7. tomcat 优化_浅谈Tomcat服务器优化方法

    对于JavaWeb开发人员而言,Tomcat已成为默认的web服务器,但是在生产环境下使用Tomcat部署应用,我们如果采用Tomcat默认的配置,尤其是内存和线程的配置,其配置都很低,容易成为性能瓶 ...

  8. tomcat优化(五)tomcat调优

    Tomcat 调优大致分为两大类: 1.Tomcat 的自身调优: 采用动静分离节约 Tomcat 的性能 禁用 AJP 连接器 调整 Tomcat 的线程池 调整 Tomcat 的连接器 修改 To ...

  9. Tomcat优化经验之谈

    由于刚做完一个tomcat,jboss,Oracle性能优化项目,想做个总结.写写项目过程中对他们优化过程的理解. tomcat安装配置就不讲啦(这个不会小明就很慌了,你在去看看基础的比较合适你现阶段 ...

  10. Nginx和Tomcat优化

    1).nginx优化 这里只说nginx的简单优化,即让nginx处理html静态文件,图片,css,js等非动态文件,讲jsp文件交给tomcat处理,这样的话可以减轻tomcat的压力,再说对于这 ...

最新文章

  1. Linux学习(三)--vi和vim编辑器
  2. sleep() 函数
  3. MariaDB 脚本
  4. 贪心算法之用优先队列(priority_queue)实现哈夫曼编码问题
  5. 什么是目标检测?有哪些应用?终于有人讲明白了
  6. 汉语诗词 LaTeX 排版样式
  7. Spring Session Management – Spring Session JDBC
  8. ISA 2006 服务器 (一)
  9. 深度学习入门之二阶段小demo练习(持续更新系列)
  10. html5页面关闭的回调函数,js回调函数例子 js 回调函数问题的执行结果想作为返回值...
  11. 怎样做一个U盘启动盘?
  12. TNF8SLNO 华为OSN1800全新4路STM-16/8路STM-4/8路STM-1业务板
  13. Docker真实应用场景案例解析——ASSA ABLOY
  14. 中国“脑计划”研究正在悄然布局
  15. XP 删除微软拼音 3.0
  16. 随机生成数字字母组合
  17. SpringCloud(3)——SpringDataJpa之EntityManager的CRUD
  18. html中通过url地址传参及获取参数解析方法
  19. 4.3 脉冲响应不变法
  20. mysql 面试题库大全

热门文章

  1. getLocation需要在app.json中声明permission字段
  2. 2.5 纳什均衡的存在性
  3. 文本生成 | 一篇带风格的标题生成的经典工作
  4. 例说STM32F7高速缓存——Cache一致性问题(一)
  5. Google Maps API for Android 指南(一)
  6. 信号与系统第三章复习
  7. WPF引入OCX控件
  8. VMware安装后界面显示为英文
  9. 十五分钟快速入门系列:Python基础
  10. 快速理解-设计模式六大原则