jvm系列(五):tomcat性能调优和性能监控(visualvm)
转自:https://www.cnblogs.com/ityouknow/p/5378874.html
tomcat服务器优化
1、JDK内存优化
根据服务器物理内容情况配置相关参数优化tomcat性能。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。 Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大.
Tomcat默认可以使用的内存为128MB,Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置: JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】 -XX:PermSize=64M -XX:MaxPermSize=128m' 需要把几个参数值调大。例如: JAVA_OPTS='-Xms256m -Xmx512m' 表示初始化内存为256MB,可以使用的最大内存为512MB。
参数详解
-server 启用jdk 的 server 版;-Xms java虚拟机初始化时的最小内存;-Xmx java虚拟机可使用的最大内存;-XX:PermSize 内存永久保留区域-XX:MaxPermSize 内存最大永久保留区域 -Xmn jvm最小内存
32G 内存配置示例:
JAVA_OPTS="$JAVA_OPTS -Xms10g -Xmx10g -XX:PermSize=1g -XX:MaxPermSize=2g -Xshare:off -Xmn1024m
2、tomcat线程优化
在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:
maxThreads: Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值150。
acceptCount: 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。
minSpareThreads: Tomcat初始化时创建的线程数。默认值25。
maxSpareThreads: 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。默认值75。
enableLookups: 是否反查域名,默认值为true。为了提高处理能力,应设置为false
connnectionTimeout: 网络连接超时,默认值60000,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
maxKeepAliveRequests: 保持请求数量,默认值100。 bufferSize: 输入流缓冲大小,默认值2048 bytes。
compression: 压缩传输,取值on/off/force,默认值off。 其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。
32G 内存配置示例:
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000" maxThreads="1000" minSpareThreads="60" maxSpareThreads="600" acceptCount="120" redirectPort="8443" URIEncoding="utf-8"/>
使用visualvm性能监控
1、什么是VisualVM
visualvm是jdk自带的一款监控工具。它提供了一个可视界面,用于查看 Java 虚拟机上运行的基于 Java 技术的程序的详细信息。VisualVM 对 Java Development Kit (JDK) 工具所检索的 JVM 软件相关数据进行组织,并通过一种使您可以快速查看有关多个 Java 应用程序的数据的方式提供该信息。您可以查看本地应用程序以及远程主机上运行的应用程序的相关数据
2、如何安装
在jkd bin目录下有一个jvisualvm.exe文件 双击就可以使用
3、如何使用jvisualvm
1、配置JMX管理tomcat:
set JAVA_OPTS=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9008 -Dcom.sun.management.jmxremote.authenticate=false - Dcom.sun.management.jmxremote.ssl=false
2、重启tomcat即可
3、双击jvisualvm.exe 添加服务器IP地址,添加需要监控jmx端口即可
效果如下:
转载于:https://www.cnblogs.com/sharpest/p/10965494.html
jvm系列(五):tomcat性能调优和性能监控(visualvm)相关推荐
- tomcat jsvc 调优及JMX监控
Tomcat jsvc 调优及JMX监控 实验背景 ====================================================== 系统版本:CentOS releas ...
- java 性能调优_Java性能调优调查结果(第二部分)
java 性能调优 这是系列文章的第二篇,我们将分析2014年10月进行的性能调整调查的结果.如果您尚未阅读第一部分,我们建议从此处开始 . 第二部分将重点监视Java应用程序的性能问题. 特别是,我 ...
- java 性能调优_Java性能调优调查结果(第四部分)
java 性能调优 这是本系列中的最后一篇文章,我们将分析我们在2014年10月进行的Java Performance Tuning Survey的结果.如果您尚未阅读第一篇文章,建议您首先阅读以下内 ...
- java 性能调优_Java性能调优调查结果(第三部分)
java 性能调优 这是本系列文章的第三篇,我们将分析2014年10月进行的调查的结果.如果您尚未这样做,我建议从本系列的前两篇文章开始: 问题严重性分析和监视域分析 . 这篇文章着重于故障排除/根本 ...
- java 性能调优_Java性能调优调查结果(第一部分)
java 性能调优 我们在2014年10月进行了Java性能调优调查.该调查的主要目的是收集对Java性能世界的见解,以改善Plumbr产品. 但是,我们也很高兴与您分享有趣的结果. 我们收集的数据为 ...
- 记一次PHP并发性能调优实战 -- 性能提升104%
作者: 万千钧(祝星) 适合阅读人群 文中的调优思路无论是php, java, 还是其他任何语言都是用. 如果你有php使用经验, 那肯定就更好了 业务背景 框架及相应环境 laravel5.7, m ...
- tomcat性能调优和性能监控(visualvm)
tomcat服务器优化 1.JDK内存优化 根据服务器物理内容情况配置相关参数优化tomcat性能.当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃.因此一般建议堆的最 ...
- 深入理解Java虚拟机:Jvm性能调优
本篇内容包括:Jvm 性能调优简介:根据需求目标进行 Jvm 调优规划(即 调优的目标.调优的步骤):Jvm 调优参数.命令.工具:以及 Java 中的内存泄露问题的详解- 一.Jvm 性能调优简介 ...
- 一步步带你详解JVM性能调优
性能调优 性能调优包含多个层次,比如:架构调优.代码调优.JVM调优.数据库调优.操作系统调优等. 架构调优和代码调优是JVM调优的基础,其中架构调优是对系统影响最大的. 性能调优基本上按照以下步骤进 ...
- 文件上传服务器jvm调优,JVM性能调优解决方案(12页)-原创力文档
精品文档 JVM性能调优解决方案(总结) 一.引言 本文的读者是技术支持人员.阅读本文后,你将理解 jboss 的启动脚本文件 (run.sh )中有一系列的 JVM配置参数的含义,以及如何调整它们, ...
最新文章
- 前端交易型系统设计原则
- Sql Server中判断表或者数据库是否存在
- oracle磁盘使用率很高,oracle安装磁盘使用率100%导致数据插入等操作报错
- linux哪些端口占用了,如何查看某个端口被谁占用(Linux如何查询哪些端口被占用)...
- centos设置服务开机启动
- 致年轻开发人员的一封信
- 卖shell看站什么意思_粤语俚语卖咸鸭蛋是什么意思?
- 我花600小时,调研30家银行,为你讲透银行数据架构,小白都能懂
- 如何让VsCode自动格式化代码?
- 支付宝要给全国人民发100亿,7月1日起!
- php抽奖设置数量,php实现自定义中奖项数和概率的抽奖函数示例
- 分位数回归(Quantile Regression)
- ios开发/iphone开发 (收藏)
- php 继承 父类使用子类,在PHP中使用 来 实现子类和父类之间的继承 。
- B. Cat Cycle
- 前端开发的workers——web workers、share workers和service workers
- 【VBA】提取 Word|PPT|Excel 批注实例(Excel一键导入办公文档中的批注)
- 照片修复校正DxO ViewPoint 3
- 一张图快速get浅层辛普森公式
- 电脑云便签怎么设置语音电话提醒待办事项?
热门文章
- DRF + react 实现TodoList
- idea 项目启动找不到页面问题和run/debug只能启动一个的问题
- queryrunner对于数据库的快速操作
- 我在 B 站学习深度学习(生动形象,跃然纸上)
- 使用jekins自动构建部署java maven项目(jdk1.7+tomcat7.0+jenkins2.19.3)
- 实验七——Web应用测试(bookstore项目上完成)
- SQL window身份登陆 SQL server不能登陆
- 函数和存储过程的区别
- 使用Redis+java(模仿数据库)实现对象存取和读取
- 在idea中配置jetty