Tomcat性能优化及常用命令整理
1汤姆猫性能优化
1.1连接参数
1.1.1默认连接配置
1.1.2连接参数调优
|
参数配置
|
参数含义
|
|
maxProcessors
|
Tomcat4 支持
|
|
minProcessors
|
Tomcat4 支持
|
|
maxThreads="300"
|
最大线程数
|
|
minSpareThreads="50"
|
初始化时创建的线程数
|
|
maxSpareThreads="100"
|
一旦创建的线程超过这个值, Tomcat 就会关闭不再需要的 socket线程
|
|
acceptCount="1000"
|
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
|
1.1.3非阻塞式IO配置
1.2 JVM参数
1.2.1堆大小
1.2.2方法区大小
1.2.3垃圾回收策略
|
参数配置
|
参数含义
|
|
-XX:+UseParNewGC
|
新生代采用 ParNewGC 多线程收集器
|
|
-XX:+UseConcMarkSweepGC
|
老年代采用 CMS 收集器,降低 GC停顿时间
|
|
-XX:+CMSParallelRemarkEnabled
|
降低标记阶段的停顿时间
|
|
-XX:+UseCMSCompactAtFullCollection
|
CMS 基于标记- 清除,会产生碎片,通过此配置在 CMS 收集后做一次压缩整理
|
|
-XX:CMSFullGCsBeforeCompaction=0
|
配置多少次 CMS GC 后,做一次压缩整理,就不用每次都做压缩整理了
|
|
-XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=80
|
当老年代使用 80 %后开始CMS 收集,默认值为 68% 。因为CMS 收集会有延迟,所以不能等到老年代占满时再收集
|
|
-XX:+CMSClassUnloadingEnabled
|
允许CMS 收集方法区 (PermGen) 。
JDK6 Update 3 及之前版本还需指定 -XX:+CMSPermGenSweepingEnabled参数
|
----------------------------------------------
1: 226810 34953232 <constMethodKlass>
2: 226810 30857024 <methodKlass>
3: 23748 25330568 <constantPoolKlass>
4: 23748 18308832 <instanceKlassKlass>
5: 127546 17364792 [C
6: 18895 14344152 <constantPoolCacheKlass>
7: 23805 13295216 [I
8: 31302 12693272 [B
9: 179826 10561520 <symbolKlass>
10: 140792 4505344 java.lang.String
11: 24852 2584608 java.lang.Class
12: 3056 2019600 <methodDataKlass>
13: 60750 1944000 java.util.HashMap$Entry
14: 31562 1892608 [S
15: 19211 1813536 [Ljava.util.HashMap$Entry;
16: 37068 1746912 [[I
17: 22808 1268080 [Ljava.lang.Object;
18: 14385 1265880 java.lang.reflect.Method
19: 18487 887376 org.apache.catalina.loader.ResourceEntry
20: 20590 823600 java.util.LinkedHashMap$Entry
21: 1075 627800 <objArrayKlassKlass>
22: 12469 598512 java.util.HashMap
23: 14416 576640 java.lang.ref.SoftReference
24: 11032 441280 java.util.concurrent.ConcurrentHashMap$Segment
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid:new对象的信息。
jstat -gcnewcapacity pid:new对象的信息及其占用量。
jstat -gcold pid:old对象的信息。
jstat -gcoldcapacity pid:old对象的信息及其占用量。
jstat -gcpermcapacity pid: perm对象的信息及其占用量。
jstat -util pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
java -cp .:/export/servers/jdk1.6.0_25/lib/sa-jdi.jar DirectMemorySize -e [pid]
Tomcat性能优化及常用命令整理的更多相关文章
- MySQL性能优化以及常用命令
1.将查询操作SELECT中WHERE条件后面和排序字段建立索引 2.按需查询,需要哪个字段就查哪个字段,禁止使用"SELECT * " 3.数据库引擎最好选用InnoDB,少用M ...
- tomcat 性能优化(内存优化 线程优化)
转自:http://blog.sina.com.cn/s/blog_4b5bc01101014s81.html tomcat 性能优化 linux修改TOMCAT_HOME/bin/catalina. ...
- Tomcat性能优化(转载)
出处:微信订阅号GitChat精品课程 — Tomcat性能优化 Tomcat 简单介绍 Sun 公司创建了第一个 Servlet 容器,即 Java Web Server,但 JWS 只是为了演示 ...
- Linux 系统基础优化和常用命令
目录 Linux 系统基础优化和常用命令 软连接 tar解压命令 gzip命令 netstart命令 ps命令 kill命令 killall命令 SELinux功能 iptables防火墙 Linux ...
- 运维 07 Linux系统基础优化及常用命令
Linux系统基础优化及常用命令 Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令 ...
- tomcat 性能优化
tomcat 性能优化tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. tomcat内存优化linux修改TOMCAT_HOME/bin/ ...
- 【linux】---常用命令整理
linux常用命令整理 一.ls命令 就是list的缩写,通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录.文件夹.文件权限)查看目录信息等等 常用参数搭配: l ...
- linux 服务器常用命令整理
linux 服务器常用命令整理 目录 网络分析 - tcpdump \ telnet \ (netstat \ ss \ lsof) \ nload 网络传输 - scp \ rsync \ (rz ...
- (小组)Git 常用命令整理
Git 常用命令整理 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone git@xbc.me:wordpress.git 添加远程版本库origin,语法 ...
随机推荐
- 习题7-1 uva 208(剪枝)
题意:按最小字典序输出a到b 的所有路径. 思路:先处理出个点到目标点b的情况(是否能到达),搜索即可. 最开始我只判了a能否到b,然后给我的是WA,然后看了半天感觉思路没什么问题,然后把所有点都处理 ...
- bzoj1127[POI2008]KUP 悬线法
Time Limit: 10 Sec Memory Limit: 162 MBSec Special JudgeSubmit: 485 Solved: 174[Submit][Status][D ...
- 非Unicode编码的软件如何在Windows系统上运行
我们常常会遇到这样一种情况:点开某些日文软件(我不会说就是galgame( ╯□╰ ))会出现乱码或者直接无法运行. 出现乱码的原因很简单:编码与译码的方式不一致!!!!!!!!!!! 首先大家需要知 ...
- 【python教程01】 编辑器
工欲善其事,必先利其器.学习python,首先应该安装好开发中使用的编辑器. 那么在这里说一下我们推荐的两款:sublime text && pycharm 为什么推荐这两款编辑 ...
- Linux学习之CentOS(二十)------vi/vim 按键说明
vi/vim 按键说明 除了上面简易范例的 i, Esc, :wq 之外,其实 vim 还有非常多的按键可以使用. 第一部份:一般模式可用的光标移动.复制粘贴.搜索替换等 移动光标的方法 h 或 向左 ...
- MyBatis 传入参数之parameterType
在MyBatis的select,insert,update,delete这些元素中都提到了parameterType这个属性.MyBatis现在使用parameterType有基本类型和JAVA复 ...
- event工具集
eventTool = { // 页面加载完成后 readyEvent : function(fn) { if (fn==null) { fn=document; } var oldonload = ...
- The specified JRE installation does not exist异常的原因和解决办法
今天,回首为了学习新框架,于是将JDK的版本从1.7开发标配版换成了1.8,一切前期很顺利,完成了新框架的测试和体验,但在运行原有项目的时候问题出现了,爆出了The specified JRE ins ...
- vue--"卡片层叠" 组件 开发小记
背景:影城移动点餐web App增加会员卡支付功能 需求:确认订单页点击会员卡项弹出会员卡列表,多张会员卡依次叠加覆盖上一张80%的高度,点击任意卡片则改卡片置为当前卡片,只有当前卡片显示全部卡片信息 ...
- Spring统一返回Json工具类,带分页信息
前言: 项目做前后端分离时,我们会经常提供Json数据给前端,如果有一个统一的Json格式返回工具类,那么将大大提高开发效率和减低沟通成本. 此Json响应工具类,支持带分页信息,支持泛型,支持Htt ...