Tomcat的详解和优化

转自:http://www.toutiao.com/i6387497067698192897/

一、Tomcat的缺省是多少,怎么修改

Tomcat的缺省端口号是8080.

修改Tomcat端口号:

1.打开Tomcat目录下的conf/server.xml文件,在里面找到下列信息

<Connector port=”8080″

protocol="HTTP/1.1"

redirectPort=”8443″

connectionTimeout=”20000″

maxThreads=”150″

minSpareThreads=”25″

maxSpareThreads=”75″

enableLookups=”false”

acceptCount=”100″

disableUploadTimeout=”true”

URIEncoding=”UTF-8″

/>

2.把port=”8080″改成port=”8888″,并且保存

3.启动Tomcat,并且在IE浏览器里面的地址栏输入http://127.0.0.1:8888/

4.tomcat默认采用的BIO模型,在几百并发下性能会有很严重的下降。tomcat自带还有NIO的模型,另外也可以调用APR的库来实现操作系统级别控制。

NIO模型是内置的,调用很方便,只需要将上面配置文件中protocol修改成 org.apache.coyote.http11.Http11NioProtocol,重启即可生效。如下面的参数配置,默认的是HTTP/1.1。

<Connector port=”8080″

protocol=”org.apache.coyote.http11.Http11NioProtocol”

connectionTimeout=”20000″

redirectPort=”8443″

maxThreads=”500″

minSpareThreads=”20″

acceptCount=”100″

disableUploadTimeout=”true”

enableLookups=”false”

URIEncoding=”UTF-8″

/>

二、tomcat 如何优化?

1、优化连接配置.这里以tomcat7的参数配置为例,需要修改conf/server.xml文件,修改连接数,关闭客户端dns查询。

参数解释:

URIEncoding=”UTF-8″ :使得tomcat可以解析含有中文名的文件的url,真方便,不像apache里还有搞个mod_encoding,还要手工编译

maxSpareThreads : 如果空闲状态的线程数多于设置的数目,则将这些线程中止,减少这个池中的线程总数。

minSpareThreads : 最小备用线程数,tomcat启动时的初始化的线程数。

enableLookups : 这个功效和Apache中的HostnameLookups一样,设为关闭。

connectionTimeout : 为网络连接超时时间毫秒数。

maxThreads : Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数,即最大并发数。

acceptCount : 当线程数达到maxThreads后,后续请求会被放入一个等待队列,这个acceptCount是这个队列的大小,如果这个队列也满了,就直接refuse connection

maxProcessors与minProcessors : 在 Java中线程是程序运行时的路径,是在一个程序中与其它控制线程无关的、能够独立运行的代码段。它们共享相同的地址空间。多线程帮助程序员写出CPU最 大利用率的高效程序,使空闲时间保持最低,从而接受更多的请求。通常Windows是1000个左右,Linux是2000个左右。

useURIValidationHack:把useURIValidationHack设成”false”,可以减少它对一些url的不必要的检查从而减省开销。

enableLookups=”false” : 为了消除DNS查询对性能的影响我们可以关闭DNS查询,方式是修改server.xml文件中的enableLookups参数值。

disableUploadTimeout :类似于Apache中的keeyalive一样

给Tomcat配置gzip压缩(HTTP压缩)功能

compression=”on” compressionMinSize=”2048″

compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”

HTTP 压缩可以大大提高浏览网站的速度,它的原理是,在客户端请求网页后,从服务器端将网页文件压缩,再下载到客户端,由客户端的浏览器负责解压缩并浏览。相对于普通的浏览过程HTML,CSS,Javascript , Text ,它可以节省40%左右的流量。更为重要的是,它可以对动态生成的,包括CGI、PHP , JSP , ASP , Servlet,SHTML等输出的网页也能进行压缩,压缩效率惊人。

1)compression=”on” 打开压缩功能

2)compressionMinSize=”2048″ 启用压缩的输出内容大小,这里面默认为2KB

3)noCompressionUserAgents=”gozilla, traviata” 对于以下的浏览器,不启用压缩

4)compressableMimeType=”text/html,text/xml” 压缩类型

最后不要忘了把8443端口的地方也加上同样的配置,因为如果我们走https协议的话,我们将会用到8443端口这个段的配置,对吧?

<!–enable tomcat ssl–>

<Connector port=”8443″

protocol=”HTTP/1.1″

URIEncoding=”UTF-8″

minSpareThreads=”25″

maxSpareThreads=”75″

enableLookups=”false”

disableUploadTimeout=”true”

connectionTimeout=”20000″

acceptCount=”300″

maxThreads=”300″

maxProcessors=”1000″

minProcessors=”5″

useURIValidationHack=”false”

compression=”on”

compressionMinSize=”2048″

compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”

SSLEnabled=”true”

scheme=”https”

secure=”true”

clientAuth=”false”

sslProtocol=”TLS”

keystoreFile=”d:/tomcat2/conf/shnlap93.jks”

keystorePass=”aaaaaa”

/>

好了,所有的Tomcat优化的地方都加上了。

2、优化JDK

Tomcat默认可以使用的内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件$CATALINA_HOME/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS=”$JAVA_OPTS” -Xms[初始化内存大小] -Xmx[可以使用的最大内存]

设置环境变量:export JAVA_OPTS=”$JAVA_OPTS” -Xms[初始化内存大小] -Xmx[可以使用的最大内存]

一般说来,你应该使用物理内存的 80% 作为堆大小。如果本机上有Apache服务器,可以先折算Apache需要的内存,然后修改堆大小。建议设置为70%;建议设置[[初始化内存大小]等于[可以使用的最大内存],这样可以减少平凡分配堆而降低性能。

本例使用加入环境变量的方式:

# vi /etc/profile

加入:export JAVA_OPTS=”$JAVA_OPTS” -Xms700 —Xmx700

# source /etc/profile

【参数说明】

-Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的 快一点,但是也可能会导致机器暂时间变慢。

-Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占 用更多的内存,超出了这个设置值,就会抛出OutOfMemory 异常。

-Xss 是指设定每个线程的堆栈大小。这个就要依据你的程序,看一个线程 大约需要占用多少内存,可能会有多少线程同时运行等。

-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64 。

-XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

三、tomcat 有那几种Connector 运行模式?

tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。

1)bio

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

2)nio

利用java的异步io护理技术,no blocking IO技术.

想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为

<Connector port=”80″

protocol=”org.apache.coyote.http11.Http11NioProtocol”

connectionTimeout=”20000″

URIEncoding=”UTF-8″

useBodyEncodingForURI=”true”

enableLookups=”false”

redirectPort=”8443″

/>

启动后,就可以生效。

3)apr

安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能.

必须要安装apr和native,直接启动就支持apr。下面的修改纯属多余,仅供大家扩充知识,但仍然需要安装apr和native

如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtocol

转载于:https://www.cnblogs.com/lzhl/p/6590553.html

Tomcat的详解和优化相关推荐

  1. 基础排序算法详解与优化

    文章图片存储在GitHub,网速不佳的朋友,请看<基础排序算法详解与优化> 或者 来我的技术小站 godbmw.com 1. 谈谈基础排序 常见的基础排序有选择排序.冒泡排序和插入排序.众 ...

  2. tomcat配置文件详解

    Tomcat基础配置详解 组件原理图如下: 任何tomcat实例就是一个server,而一个server内部要想能够解析jsp页面转义编译serlet程序,要靠其引擎来实现 而引擎才是真正意义上执行j ...

  3. apache配置文件详解与优化

    apache配置文件详解与优化 一.总结 一句话总结:结合apache配置文件中的英文说明和配置详解一起看 1.apache模块配置用的什么标签? IfModule 例如: <IfModule ...

  4. Windows7 个人服务详解及优化

    Windows7 个人服务详解及优化! 这是我个人根据网上提供的服务优化说明来修改的([]号里就是我自己设定的),我是以安装了卡巴斯基和金山网镖的前提下关闭一些系统自带的防火墙和安全的服务,家庭电脑使 ...

  5. 详解鲸鱼优化算法原理、数学模型和实例代码

    鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提出的一种新的群体智能优化算法,其优点在于操作简单,调整 ...

  6. idea 服务器tomcat配置文件,IntelliJ IDEA Tomcat配置详解(图文)

    IntelliJ IDEA Tomcat配置详解(图文) 发布时间:2020-10-07 17:31:10 来源:脚本之家 阅读:94 作者:chenshun123的博客 栏目:服务器 查找该问题的童 ...

  7. idea中tomcat配置详解

    idea中tomcat配置详解 本篇文章主要介绍在idea下配置maven.tomcat.jdk的开发环境. 详细步骤: 1.Edit Configurations 2.Add New Tomcat ...

  8. 【线上沙龙直播报名】App 启动流程详解及其优化

    点击上方"公众号"可以订阅哦 [美团点评技术沙龙Online]是美团点评技术团队推出的线上分享课程,每月2-3期,采用目前最火热的线上直播形式,邀请美团点评技术专家,面向互联网技术 ...

  9. Tomcat过时了?别多想,很多公司还是在用的。这份Tomcat架构详解,真的颠覆你的认知

    Tomcat 不但没有过时,Spring Boot 还给 Tomcat 第二春了. 微服务的兴起,Tomcat 针对很多应用已经做成 embedded 模式了,Tomcat 本身是容器,Tomcat ...

最新文章

  1. 查看oracle当前消耗,查找Oracle高消耗语句的方法
  2. 老张喝茶 教你同步异步 阻塞与非阻塞(转)
  3. 系统搜索功能不能使用,弹出“无法找到运行搜索助理需要的一个文件”
  4. Excel 2010 下拉菜单的制作方法
  5. vmware安装ubuntu13版本的vm tools时遇到的错误解决
  6. mysql 需要什么硬件配置_如何来给指定的硬件环境配置一份比较合理的MySQL配置文件-爱可生...
  7. oracle资产负债表重分类吗,【好会计】讲讲资产负债表中的重分类!
  8. docsify神奇的文档网站生成工具
  9. 谁更安全?WI-FI无线网加密方式大比拼
  10. Code-First将多个实体映射到一张数据库表
  11. vue获取麦克风_vue使用recorder.js实现录音功能
  12. pb中控件变颜色_基于GDI+技术开发工业仪表盘控件
  13. 2021-08-24XLNET 语言模型
  14. win10如何微信多开(无需工具)
  15. CSV文件使用Excel打开
  16. xampp 配置php运行环境
  17. Base64编码简介
  18. 关于滤镜的使用,使图片默认为全灰色
  19. 用科技点亮公益力量,皮卡智能仅用2张照片,还原了老人一生的故事
  20. 当你对未来迷茫的时候,请打开这个锦囊!

热门文章

  1. Leetcode 19. 删除链表的倒数第N个节点
  2. CocosStudio的节点如何使用自定义shader
  3. hbase hyperbase 区别_大数据之HBase的几个常规性问题
  4. wincc历史数据库_WinCC系统的基本功能介绍——自动化工程师必备
  5. 是vans_硬核复刻,就服VANS棋盘格
  6. 如何在虚拟linux环境运行python_Conda(Python)虚拟环境不能从Windows移植到Linux
  7. linux lvm 系统快照,系统运维|在 LVM中 录制逻辑卷快照并恢复(第三部分)
  8. ns-3文件编译出错总结
  9. 第18次csp认证 201912-2 回收站选址(C++)
  10. 什么是语音复用设备?