您的位置:首页 > 编程语言 > Java开发

Java中常用命令

2017-06-06 10:56 267 查看
查看系统状态:

磁盘空间:df -h
目录占用空间:du -h --max-depth=1[目录或者文件]
内存:free -m
系统负载及CPU:top -c
CPU各核状态:mpstat -p All
进程状态:ps aux | grep xxx
进程内线程数:patree -p [pid]| wc -1
进程打开文件数:lsof -p [pid]| wc -1 
打开文件数排行榜:lsod | awk '{print $1,$2,$NF}' |sort -n |uniq -c |sort -nr | head -n 100
端口状态:netstat -tln | grep [port]
jstat

     jstat -gc 59726 1000
jstat -gc 59726 1000 10
jstat -gcutil [pid] 1000
进程内存及GC状况。第一个参数是PID,第二个频率,第三个是次数。


jmap内存映射


堆视图:jmap -heap $PID
内存占用柱状图(前20):jmap -F -histo $PID | head -20
存活对象占用柱状图(前20):jmap -histo:live $PID | head -20
进程僵死时,需要增加-F参数

dump文件分析。
jmap -dump:format=b,file=文件名 [pid]
jmap -F -dump:live,format=b,file=head.hprof $PID

dump 文件里,值得关注的线程状态有:

死锁,Deadlock(重点关注)
执行中,Runnable
等待资源,Waiting on condition(重点关注)
等待获取监视器,Waiting on monitor entry(重点关注)
暂停,Suspended
对象等待中,Object.wait() 或 TIMED_WAITING
阻塞,Blocked(重点关注)
停止,Parked

jps


Java进程列表

jstack


jstack [pid] | grep waiting

如果在连续几次输出线程堆栈信息都存在于同一个或多个线程上时,则说明系统中有锁竞争激烈,死锁,或锁饿死的现象

进程处于hung死状态可以用-F强制打出

进程内的线程数:pstree -p [pid] | wc -l

kill


kill -3 [pid]或者kill -QUIT [pid]    线程的相关信息就输出到console
kill -15 [pid]
kill -9 [pid]


内存分析工具

Memory Analyzer
VisualVM 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: