Tomcat优化和JVM分析工具

Tomcat的常见优化和JVM常见分析工具

Tomcat的常用优化配置

    (1) 内存空间:
        /etc/sysconfig/tomcat
            JAVA_OPTS="-server -Xms32g -Xmx32g -XX:NewSize= -XX:MaxNewSize= -XX:PermSize= -XX:MaxPermSize="
                -server:服务器模型
                -Xms:堆内存初始化大小;
                -Xmx:堆内存空间上限;
                -XX:NewSize=:新生代空间初始化大小;
                -XX:MaxNewSize=:新生代空间最大值;
                -XX:PermSize=:持久代空间初始化大小;
                -XX:MaxPermSize=:持久代空间最大值; 

    (2) 线程池设置:
        <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" />

        常用属性:
            maxThreads:最大线程数;最大并发连接数;
            minSpareThreads:最小空闲线程数;
            maxSpareThreads:最大空闲线程数;
            acceptCount:等待队列的最大长度;
            URIEncoding:URI地址编码格式,建议使用UTF-8;
            enableLookups:是否启用dns解析,建议禁用;
            compression:是否启用传输压缩机制,建议“on";
            compressionMinSize:启用压缩传输的数据流最小值,单位是字节;
            compressableMimeType:定义启用压缩功能的MIME类型;
                text/html, text/xml, text/css, text/javascript

    (3) 禁用8005端口;
        <Server port="-1" shutdown="SHUTDOWN">

    (4) 隐藏版本信息:
        <Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" />

        Server="SOME STRING"

JVM常用的分析工具

    jps:用来查看运行的所有jvm进程;
    jinfo:查看进程的运行环境参数,主要是jvm命令行参数;
    jstat:对jvm应用程序的资源和性能进行实时监控;
    jstack:查看所有线程的运行状态;
    jmap:查看jvm占用物理内存的状态;
    jconsole:
    jvisualvm:
    jps:Java virutal machine Process Status tool,
        jps [-q] [-mlvV] [<hostid>]
            -q:静默模式;
            -v:显示传递给jvm的命令行参数;
            -m:输出传入main方法的参数;
            -l:输出main类或jar完全限定名称;
            -V:显示通过flag文件传递给jvm的参数;
            [<hostid>]:主机id,默认为localhost;
    jinfo:输出给定的java进程的所有配置信息;
        jinfo [option] <pid>
            -flags:to print VM flags
            -sysprops:to print Java system properties
            -flag <name>:to print the value of the named VM flag
    jstack:查看指定的java进程的线程栈的相关信息;
        jstack [-l] <pid>
        jstack -F [-m] [-l] <pid>
            -l:long listings,会显示额外的锁信息,因此,发生死锁时常用此选项;
            -m:混合模式,既输出java堆栈信息,也输出C/C++堆栈信息;
            -F:当使用“jstack -l PID"无响应,可以使用-F强制输出信息;
    jstat:输出指定的java进程的统计信息
        jstat -help|-options
        jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

        # jstat -options
            -class:class loader
            -compiler:JIT
            -gc:gc
            -gccapacity:统计堆中各代的容量
            -gccause:
            -gcmetacapacity
            -gcnew:新生代
            -gcnewcapacity
            -gcold:老年代
            -gcoldcapacity
            -gcutil
            -printcompilation
        [<interval> [<count>]]
            interval:时间间隔,单位是毫秒;
            count:显示的次数;

        -gc:
            YGC:新生代的垃圾回收次数;
            YGCT:新生代垃圾回收消耗的时长;
            FGC:Full GC的次数;
            FGCT:Full GC消耗的时长;
            GCT:GC消耗的总时长;
       图形工具:
        jconsole
        jvisualvm
    jmap:Memory Map, 用于查看堆内存的使用状态;
    jhat:Java Heap Analysis Tool
        jmap [option] <pid>
        查看堆空间的详细信息:
            jmap -heap <pid>
        查看堆内存中的对象的数目:
            jmap -histo[:live] <pid>
                live:只统计活动对象;
        保存堆内存数据至文件中,而后使用jvisualvm或jhat进行查看:
            jmap -dump:<dump-options> <pid>
                dump-options:
                live         dump only live objects; if not specified, all objects in the heap are dumped.
                format=b     binary format
                file=<file>  dump heap to <file>

原文地址:https://www.cnblogs.com/shenxm/p/8466838.html

时间: 2024-10-28 10:34:50

Tomcat优化和JVM分析工具的相关文章

Android 性能优化 五 性能分析工具dumpsys的使用

Android提供的dumpsys工具可以用于查看感兴趣的系统服务信息与状态,手机连接电脑后可以直接命令行执行adb shell dumpsys 查看所有支持的Service但是这样输出的太多,可以通过dumpsys | grep "DUMP OF SERVICE" 仅显示主要的Service的信息 一.列出dumpsys所有支持命令 > adb shell $ dumpsys | grep "DUMP OF SERVICE" 以下是在我个人三星S3手机上的输

java自带的jvm分析工具

http://domark.iteye.com/blog/1924302 这段时间觉得很有必要对java的内存分析工具进行熟悉,这样以后出现机器负载较高,或者反应很慢的时候,我就可以查找原因了.上网搜了搜,发现下面这些是比较常用的,然后我在机器上试试了,把结果也贴出来哈. 1.jps 类似ps -ef|grep java 显示java进程号 或者pgrep java2.jstack 打印jvm内存的堆栈信息,打印出来的结果类似 2010-04-21 20:10:51 Full thread du

android内存优化之三内存分析工具的使用

 anroid内存分析工具的使用 一.Eclipse Heap分析内存泄露 Android开发中避免不了碰到内存泄露问题,这里先大概讲下内存泄露的基本概念:内存泄露官方的解释是是用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元,直到程序结束.它也可以理解为new的新对象用完后,该对象没有得到回收,造成的无用的对象一直占据着内存,这种无用的随着操作的次数越多,占据的内存越多,直到内存溢出程序,报错停止运行.内存溢出问题比起程序直接报错的问题更难定位,光靠阅读代码来分

UAVStack JVM监控分析工具:图形化展示采集及分析监控数据

引言 作为AllInOne的智能化服务技术栈,UAVStack提供了非常全面的监控数据采样功能,同时支持数据监控与预警.近期,我们整合了原有的数据采集展示功能,新增JVM分析功能,推出了更易用的JVM监控分析工具. 熟悉JDK的开发者都知道,JDK本身提供了一套JVM分析工具,包括jinfo.jmap.jstack等.用户可以通过命令行轻松获取JVM内存堆栈信息.内存对象分配以及JVM启动基本参数信息.但这些工具需要在命令行环境中执行,且生产环境下则需要通过堡垒机转发. 开源社区一些不错的JVM

Tomcat性能优化及JVM内存工作原理

Java性能优化原则:代码运算性能.内存回收.应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面) 代码层优化:避免过多循环嵌套.调用和复杂逻辑.   Tomcat调优主要内容如下: 1.增加最大连接数 2.调整工作模式 3.启用gzip压缩 4.调整JVM内存大小 5.作为Web服务器时,与Apache整合或Nginx 6.合理选择垃圾回收算法 7.尽量使用较新JDK版本   生产配置实例: 1 2 3 4 5 6 7 8 9 10 11 12 13 <Connectorpor

Java性能优化指南系列(二):Java 性能分析工具

进行JAVA程序性能分析的时候,我们一般都会使用各种不同的工具.它们大部分都是可视化的,使得我们可以直观地看到应用程序的内部和运行环境到底执行了什么操作,所以性能分析(性能调优)是依赖于工具的.在第2章,我强调了基于数据驱动的性能测试是非常重要的,我们必须测试应用的性能并理解每个指标的含义.性能分析和数据驱动非常类似,为了提升应用程序的性能,我们必须获取应用运行的相关数据.如何获取这些数据并理解它们是本章的主题.[本章重点介绍JDK中提供的性能分析工具] 操作系统工具及其分析 程序分析的起点并不

tomcat启动和jvm性能分析脚本

#!/bin/bash # chkconfig: - 95 15 # description: Tomcat start/stop/status script #Location of JAVA_HOME (bin files) export JAVA_HOME= /usr/java/jdk1.7.0_80 #Add Java binary files to PATH export PATH=$JAVA_HOME/bin:$PATH #CATALINA_HOME is the location

小蚂蚁学习mysql性能优化(3)--SQL以及索引优化--慢查日志分析工具和explain说明

昨天在测试操作数据库的时候碰到两个问题忘了记录下来,今天补充上去,接上篇 1. 安装测试数据库sakila时报错.Mysql server has gone away的问题.解决方法: 查看    show global variables like 'max_allowed_packet'; 一般来说会显示    max_allowed_packet    1048576 修改为    set global max_allowed_packet    =    1024*1024*16;   

通过站点的訪问统计优化站点-10个免费的站点统计和分析工具

站点訪问统计能为你带来什么? 第一,查看訪问者的国家和地区: 第二,查看訪问者来源,如用是从搜索引擎,还是从其它网站的友情链接链接引入 第三,查看訪问者使用的操作系统,显示分辨率等 第四,查看站点哪些文章或页面訪问率较高,受用户欢迎 以下是10个免费的站点统计和分析工具: Google Analytics评分: 8/10 最好最著名的免费站点统计和解析工具.它尽可能提供一切你求之不得的数据.主要长处是没有不论什么限制. Google Analytics 不解析的东西: a. 你无法查看訪客的 I