本文共 1594 字,大约阅读时间需要 5 分钟。
可以确定系统运行的整体状态,基本定位问题所在。
1、Linux中的uptime
命令,输出下面信息 04:03:58 up 10 days, 13:19, 1 user, load average: 0.54, 0.40, 0.20
当前时间 04:03:58
系统已运行的时间 10 days,
13:19 当前在线用户 1 user (每一个终端算一个连接)
平均负载:0.54, 0.40,0.20,最近1分钟、5分钟、15分钟系统的负载(运行队列中平均进程数)
2、Linux中top
命令,用来监控Linux系统的系统状况,比如CPU、内存的使用。
下面图表可以知道那个程序占CPU最多。
3、Linux命令vmstat
,可以统计系的CPU、内存,swap,io等情况。 4、Linux中命令pidstat
,可以非常细致的观察到每一个进程。需要进行安装:sudo apt-get install sysstat
,可以监控CPU、监控IO、监控内存。 1、任务管理器
2、命令:perfmon
打开windos自带的性能监控工具。 2、Process Explorer进行浏览器工具(需要安装),不是windows自带的。 3、pslist
,命令行工具(需要安装),可用于自动化数据收集,显示java程序的运行情况。 jps
,列出java进程,类似于ps命令。jinfo
,可以用来查看正在运行的java应用程序的扩展参数,设置支持在运行是,修改部分参数。3、命令:jmap
,生成java应用程序的堆快照和对象的统计信息。
jmap -histo 2972 >c:\s.txt
,在目录下,生成文档信息。 -jmap -dump:format=b,file=c:\heap.hprof 2972
jstack
,打印线程dump信息。 **案例一:**运行一程序ThreadBlockMain,期望输出Hello,World ,结果在程序运行后,程序卡死,没有预期输出。
打印出栈信息,可以看到问题出在java程序中的17行。 **案例二:**Java程序HoldCPUMain运行后,发现占用CPU很高,希望能找到原因。 1)通过jps,查看进行的id。 2)top命令,查看进行占用CPU情况。 3)pitstat命令查看进程下的线程情况,将线程id,转为十六进制,在栈信息中线程ID已十六进制表示。 4)打印栈信息,找到java问题。 **案例三:**死锁转载地址:http://onfoi.baihongyu.com/