Java项目相关监控与调优

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

上一篇:OllyUni.dll


下一篇:Django JWT Token RestfulAPI用户认证