人工智能,零基础入门!http://www.captainbed.net/inner

一、描述

最近,在学习接触到一些项目开发中的调优过程,刚好整理到 Tomcat 调优这块,有时候面试也会问到问,于是就花了点时间去搜集一下 Tomcat 调优都调了些什么,先记录一下调优手段,更多详细的原理和实现以后用到时候再来补充记录,下面就来介绍一下,Tomcat 调优大致分为两大类。

1、Tomcat的自身调优

采用动静分离节约 Tomcat 的性能

调整 Tomcat 的线程池

调整 Tomcat 的连接器

修改 Tomcat 的运行模式

禁用 AJP 连接器

2、JVM的调优

调优Jvm内存

二、Tomcat 自身调优

1、采用动静分离

静态资源如果让 Tomcat 处理的话 Tomcat 的性能会被损耗很多,所以我们一般都是采用:Nginx+Tomcat 实现动静分离,让 Tomcat 只负责 jsp 文件的解析工作,Nginx 实现静态资源的访问。

2、调优 Tomcat 线程池

打开tomcat的serve.xml,配置Executor,相关参数说明如下。

name:给执行器(线程池)起一个名字;

namePrefix:指定线程池中的每一个线程的 name 前缀;

maxThreads:线程池中最大的线程数量,假设请求的数量超过了 750,这将不是意味着将 maxThreads 属性值设置为 750,它的最好解决方案是使用「Tomcat集群」。也就是说,如果有 1000 请求,两个 Tomcat 实例设置 maxThreads = 500,而不在单 Tomcat 实例的情况下设置maxThreads=1000。

minSpareThreads:线程池中允许空闲的线程数量(多余的线程都杀死);

maxIdLeTime:一个线程空闲多久算是一个空闲线程;

其他的配置其实阅读官方文档是最好的「见参考链接」。

3、调优 Tomcat 的连接器 Connector

打开 Tomcat 的 serve.xml,配置 Connector,参数说明如下。

executor:指定这个连接器所使用的执行器(线程池);

enableLookups=false:关闭 DNS 解析,减少性能损耗;

minProcessors:服务器启动时创建的最少线程数;

maxProcessors:最大可以创建的线程数;

acceptCount=1000:线程池中的线程都被占用,允许放到队列中的请求数;

maxThreads=3000:最大线程数;

minSpareThreads=20:最小空闲线程数,这里是一直会运行的线程;

与压缩有关系的配置:如果已经对代码进行了动静分离,静态页面和图片等数据就不需要 Tomcat 处理了,那么也就不需要配置在 Tomcat 中配置压缩了;

一个完整的配置如下。

4、通过修改 Tomcat 的运行模式

BIO

Tomcat8 以下版本,默认使用的就是 BIO「阻塞式IO)」模式。

对于每一个请求都要创建一个线程来进行处理,不适合高并发。

NIO

Tomcat8 以上版本,默认使用的就是NIO模式「非阻塞式 IO」。

APR

全称 Apache Portable Runtime,是Tomcat生产环境运行的首选方式,如果操作系统未安装APR 或者APR 路径未指到 Tomcat 默认可识别的路径,则 APR 模式无法启动,自动切换启动 NIO 模式。所以必须要安装APR 和 Native,直接启动就支持APR,APR是从操作系统级别解决异步 IO 问题,APR 的本质就是使用 JNI 技术调用操作系统底层的 IO 接口,所以需要提前安装所需要的依赖

提升 Tomcat 对静态文件的处理性能,当然也可以采用动静分离。

5、禁用 AJP 连接器

AJP的全称 Apache JServer Protocol,使用 Nginx+Tomca t的架构,所以用不着 AJP 协议,所以把AJP连接器禁用。

三、JVM 调优

Tomcat 是运行在 JVM 上的,所以对 JVM 的调优也是非常有必要的。

找到 catalina.sh;

添加:

参数设置:

JAVA_OPTS=“-Djava.awt.headless=true -Dfile.encoding=UTF-8-server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XXermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC”

调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。

Tomcat调优技巧,实用相关推荐

  1. Tomcat 调优的技巧

    描述 最近在补充自己的短板,刚好整理到Tomcat调优这块,基本上面试必问,于是就花了点时间去搜集一下tomcat调优 都调了些什么,先记录一下调优手段,更多详细的原理和实现以后用到时候再来补充记录, ...

  2. Tomcat调优总结

    Tomcat 优化分为系统优化,Java虚拟机调优,Tomcat本身的优化. Tomcat 如何起停 ./catalina.sh stop ./catalina.sh start /sbin/serv ...

  3. tomcat调优之启动参数

    https://blog.csdn.net/xiaoyi23000/article/details/79448769 Linux系统中tomcat的启动参数 export JAVA_OPTS=&quo ...

  4. 51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程(高俊峰)

    51CTO学习笔记--Linux运维故障排查思路与系统调优技巧视频课程 第一课 Linux运维经验分享与思路 1.一般把主机名,写到hosts下    127.0.0.1    hostname,因为 ...

  5. 20个 Linux 服务器性能调优技巧

    更多专业文档请访问 www.itilzj.com Linux是一种开源操作系统,它支持各种硬件平台,Linux服务器全球知名,它和Windows之间最主要的差异在于,Linux服务器默认情况下一般不提 ...

  6. Tomcat调优和JVM优化

    title: Tomcat调优和JVM优化 date: 2018-7-22 19:27:56 tags: [Tomcat,Java,JVM] categories: [JVM] Tomcat本身优化 ...

  7. 9 个 Java 性能调优技巧,YYDS!

    来源 | DZone 大多数开发者认为性能优化是一个复杂的话题,它需要大量的工作经验和相关知识理论.好吧,这也不完全错.优化一个应用做到性能最优化可能不是件容易的任务,但是这并不意味着你没有相关的知识 ...

  8. java format 补足空格_11个简单的Java性能调优技巧

    想要保持程序高效运行?您可以采取一些步骤来消除瓶颈,缓存提示以及其他性能调整建议. 大多数开发人员期望性能优化是一个复杂的主题,需要大量的经验和知识.好的,那不是完全错误的.优化应用程序以获得最佳性能 ...

  9. Python工程能力进阶、数学基础、经典机器学习模型实战、深度学习理论基础和模型调优技巧……胜任机器学习工程师岗位需要学习什么?...

    咱不敢谈人工智能时代咋样咋样之类的空话,就我自己来看,只要是个营收超过 5 亿的互联网公司,基本都需要具备机器学习的能力.因为大部分公司盈利模式基本都会围绕搜索.推荐和广告而去. 就比如极客时间,他的 ...

最新文章

  1. 2016-1-4作业
  2. 动态加载laydate 失效_弹簧的失效分析与预防技术参考
  3. grub-和grub-troubleshootting
  4. 会计用计算机很快是,40个超实用电脑快捷键,老会计都在用
  5. 是否同一棵二叉搜索树
  6. php根据设备判断访问,PHP判断设备访问来源
  7. Python : *args和**kwargs是什么东东呢?
  8. 如何使用git命令将本地项目上传到Gitlab上
  9. 深度总结 | 多任务学习方法在推荐中的演变
  10. SQL Server中的零碎数据库还原
  11. 《精通 ASP.NET MVC 5》----1.5 本书的结构
  12. aspose.word在某个字后面自动换行_服务应用突然宕机了?别怕,Dubbo 帮你自动搞定服务隔离!...
  13. 拓端tecdat|Python实现谱聚类Spectral Clustering算法和改变簇数结果可视化比较
  14. android 看门狗引起crash分析
  15. WPF 使用值转换器进行绑定数据的转换IValueConverter
  16. php有递归算法,PHP递归算法详解
  17. java applet类开始博饼_厦门中秋博饼程序!(JAVA编写)
  18. 全球连接器厂商TOP 50!(含具体分析报告)
  19. 信息安全密码学:古典密码
  20. Ubuntu 16.04 显示器分辨率低

热门文章

  1. 微信小程序 - eCharts- 展示中国地图
  2. cad面板怎么移动,CAD软件如何调整面板位置?
  3. Transformer入门(一)——结构
  4. android手机上图像分类技术的研究,用图片分类技术实现“拍照识花”的原理详解...
  5. nofollow标签如何使用
  6. iphone11联系人怎样拉黑(控制中心设置方法)
  7. mAPI软件发布升级版本v1.3.0(正式版)
  8. cs224n Assignment 1:exploring_word_vectors
  9. 《非诚勿扰2》搞笑经典台词
  10. C#批量更改控件显示名称(举例中英文语言切换)