Tomcat有很多方面,从内存、并发、缓存四个方面介绍优化方法。
 
一.Tomcat内存优化
  Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。
  JAVA_OPTS参数说明
  -server 启用jdk 的 server 版;
  -Xms Java虚拟机初始化时的最小内存;
  -Xmx java虚拟机可使用的最大内存;
  -XX: PermSize 内存永久保留区域
  -XX:MaxPermSize 内存最大永久保留区域
  服务器参数配置
 
  现公司服务器内存一般都可以加到最大2G ,所以可以采取以下配置:
 
  JAVA_OPTS=’-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m’
 
  配置完成后可重启Tomcat ,通过以下命令进行查看配置是否生效:
  首先查看Tomcat 进程号:
  sudo lsof -i:9027
  我们可以看到Tomcat 进程号是 12222 。
 
  查看是否配置生效:
  sudo jmap – heap 12222
     我们可以看到MaxHeapSize 等参数已经生效。
 
二.Tomcat并发优化
 
  1.Tomcat连接相关参数
     在Tomcat 配置文件 server.xml 中的调整连接器connector的并发处理能力
 
  1>参数说明
    maxThreads                  客户请求最大线程数
  minSpareThreads            Tomcat初始化时创建的 socket 线程数
  maxSpareThreads            Tomcat连接器的最大空闲 socket 线程数
  enableLookups                若设为true, 则支持域名解析,可把 ip 地址解析为主机名
  redirectPort                   在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口
  acceptAccount                监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads )
  connectionTimeout          连接超时
  minProcessors                服务器创建时的最小处理线程数
  maxProcessors                服务器同时最大处理线程数
  URIEncoding                  URL统一编码
 
  2>Tomcat中的配置示例
  <Connector port="9027"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>
 
 
  2.Tomcat缓存优化
  1>参数说明
    compression                     打开压缩功能
  compressionMinSize           启用压缩的输出内容大小,这里面默认为2KB
  compressableMimeType      压缩类型
  connectionTimeout            定义建立客户连接超时的时间. 如果为 -1, 表示不限制建立客户连接的时间
 
  2>Tomcat中的配置示例
 
 <Connector port="9027"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  connectionTimeout="20000"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>
 
 
 
  3.参考配置
 
  1>旧有的配置
     参考网络对服务器做过如下配置,拿出来分享下:
 
  <Connector port="9027"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="25"
  maxSpareThreads="75"
  enableLookups="false"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  connectionTimeout="20000"
  URIEncoding="utf-8"
  acceptCount="200"
  redirectPort="8443"
  disableUploadTimeout="true" />
后来发现在访问量达到3百万多的时候出现性能瓶颈。
  
2>更改后的配置
 
<Connector port="9027"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  connectionTimeout="20000"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>

Tomcat从内存、并发、缓存方面优化方法的更多相关文章

  1. tomcat常用配置详解和优化方法

    tomcat常用配置详解和优化方法 参考: http://blog.csdn.net/zj52hm/article/details/51980194 http://blog.csdn.net/wuli ...

  2. Tomcat之内存、并发、缓存方面优化方法

    一.Tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数. JAVA_OPTS ...

  3. (windows下)tomcat优化--内存,并发.缓存三方面优化

    一.内存 注: jdk1.8中废弃了-XX:PermSize和-XX:MaxPermSize的持久态(存放常量.静态变量区)配置, 多了一个元数据区(Metadata Space:默认为内存的0.2% ...

  4. Tomcat记录-tomcat常用配置详解和优化方法(转载)

    常用配置详解 1 目录结构 /bin:脚本文件目录. /common/lib:存放所有web项目都可以访问的公共jar包(使用Common类加载器加载). /conf:存放配置文件,最重要的是serv ...

  5. 大数据量高并发访问SQL优化方法

    保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分开的操作尽量分开处理,提高每次的响应速度:在数据窗口使用SQL时,尽量把 ...

  6. tomcat性能优化,内存优化和并发线程连接优化

    今天被一同事问到tomcat和内存优化的问题,而网上的资料基本都是来回copy,所以抽时间随便写点.文章中设置的参数都是一个随便写的,具体的还要根据自己的情况来定. 1.内存优化: 说到tomcat不 ...

  7. java处理高并发高负载类网站的优化方法

    java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF ...

  8. java架构师负载均衡、高并发、nginx优化、tomcat集群、异步性能优化、Dubbo分布式、Redis持久化、ActiveMQ中间件、Netty互联网、spring大型分布式项目实战视频教程百度网盘

    15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; ...

  9. [转]java处理高并发高负载类网站的优化方法

    本文转自:http://www.cnblogs.com/pengyongjun/p/3406210.html java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,ja ...

随机推荐

  1. HBase with MapReduce (MultiTable Read)

    hbase当中没有两表联查的操作,要实现两表联查或者在查询一个表的同时也需要访问另外一张表的时候,可以通过mapreduce的方式来实现,实现方式如下:由于查询是map过程,因此这个过程不需要设计re ...

  2. java.io.IOException: Too many open files

    1.描述: 每日一样,例行打开hadoop集群的cloudera manager的管理界面.发现出现了多个bad health的服务.那么出现的这个问题就是查看该服务运行的日志,对应的该服务当中,会包 ...

  3. Bean property '**DAO' is not writable or has an invalid setter method

    ApplicationContext.xml中配置有问题,里面的bean的属性名称写错了. ApplicationContext.xml中写的是loginDAO,在java类里配置的bean却写成了l ...

  4. 【Windows批处理III】实现删除含自定字符串的文件和文件夹(搜索子目录)

    1)目的:实验室小网空间因镜像版本太多,容量告警,希望清出一部分空间 具体需求:删除E盘下,所有含rar字符串的文件: 删除E盘下,所有含hi6620字符串文件夹: 步骤: (风险请知:如果不chec ...

  5. [转]LUA元表

    lua元表和元方法 <lua程序设计> 13章 读书笔记 lua中每个值都有一个元表,talble和userdata可以有各自独立的元表,而其它类型的值则共享其类型所属的单一元表.lua在 ...

  6. IOS网络开发(一)

    1 简易的聊天工具 1.1 问题 Socket的英文原义是孔或者插座的意思,通常也称作套接字,用于描述IP地址和端口,是一个通信链的句柄,本案例使用第三方Socket编程框架AsyncSocket框架 ...

  7. 连HTTPS都有漏洞,这么不安全的互联网我们还要继续用吗?

    转载自 http://www.huxiu.com/article/45302/1.html 10月24日和25日,虎嗅君参加了GeekPwn(极棒)安全极客嘉年华活动.   嗯...说是嘉年华,其实就 ...

  8. 关于在win7内集成usb3.0驱动。

    mac air 装了win7但是折腾良久还是无法升级,只能是重新安装. 很蛋疼.bootcamp 老是找不到驱动.只能是手动分区后U盘引导安装. 驱动的下载,直接在Os x 下用bootcamp 下载 ...

  9. Python-Jenkins 查询job是否存在

    def check_jobs_from_jenkins(job_names): if isinstance(job_names, str): job_names = [job_names] job_d ...

  10. [BZOJ 3503][Cqoi 2014]和谐矩阵

    我觉得这一题的样例输出一点都不和谐,大家千万别像我一样被坑了…… 题目不算难,果然是进错省系列555,不过搞出 O(n*m*2m) 的还是不要挣扎的比较好 我们暴力地推出第 n 行 第 m 列中每个数 ...