Linux成长库

java进程工具及tomcat性能调优

2018-05-30  本文已影响3人  泡菜爱上WaSabi

jps:Java 虚拟机进程状态管理工具

 -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 -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消耗的总时长;

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>

Tomcat的常用优化配置:

(1) 内存空间:

/etc/sysconfig/tomcat
JAVA_OPTS="-server -Xms -Xmx -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:最小空闲线程数;  类似于httpd的worker模型
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">

将端口设置为“-1”即可
示例:

image.png

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

image.png

``

上一篇下一篇

猜你喜欢

热点阅读