Linux JVM Tomcat
=========Linux ===============
监控 nmon 命令:nmon -s 10 -c 60 -f -m /home
-s 10 每10s收集一次
-c 60 一共收集60次
-f 保存带时间的文件名
-m 保存目录
=========JVM ====================
监控 jps jstack jstat
jps在linux系统获得java应用进程号 命令:jps -m -l
-------------------------------------
jstat获得gc 内存分配情况 命令:stat -gcutil pid 3000 6
3000 每3秒收集一次
6 收集6次
------------------------------------
jstack获得java进程中的堆栈信息 命令:jstack -l pid >d:stack.txt
可以在里面搜寻deadlock等信息,线程死锁。热锁。
也可以统计线程状态信息,如果大量线程都处于wait on condition,若看到线程正在等待网络读写,那么可能会出现了网络瓶颈。
---------------------------------
top查找出哪个进程消耗的cpu高 得到pid
top -p pid,然后再按shift+h。这里意思为只查看pid的进程,并且显示线程tid。
jstack [进程pid]|grep -A 10 [线程tid的16进制]
-A 10表示查找到所在行的后10行。21233用计算器转换为16进制52f1,注意字母是小写。
说不定可以一下子定位到出问题的代码。
---------------------------------------
命令:jstack executable core
如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
JVM内存、垃圾回收相关的一些参数设置
JVM 类装载器,执行引擎,运行时数据区(内存)
GC 年轻代 年老代 永久代 gc, full gc
=========Tomcat=================
Tomcat是web容器,装载jsp servlet; Apache装载静态页面html
tomcat 开启文件压缩 线程池 设置等调优
Mysql监控 mysqlmtop
Oracle监控spotlight on oracle