# 常用命令

# 1.top

查看服务器内存利用率

top -p <pid>        # Java进程的内存情况,pid是java进程号。
top -p <pid> -H     # 查看指定进程下的线程cpu占用比例。 
1
2

# 2.ps

查看进程

ps -ef|grep port  
ps -ef|grep 8903 # 查找端口为8903的进程信息。
    
ps -mp pid -o THREAD,tid,time | sort -rn | more
ps -mp 25990 -o THREAD,tid,time | sort -rn | more  # 查看进程25990的所有线程信息。
1
2
3
4
5

# 3.jstat(Java Virtual Machine Statistics Monitoring Tool)

Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计。

# jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
jstat -gcutil 
jstat -gcutil 25990 1000 10 # 每隔1s打印一次java进程为25990的gc信息,打印10次。
1
2
3

# 4 jstack(Java Stack Trace)

打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息。

jstack -l pid 
jstack -l 25990     # 打印java进程为25990的所有线程信息。

jstack -l pid > logfile
jstack -l 25990 > jstack25990.log  # java进程为25990的所有线程信息输出到jstack25990.log文件。

jstack pid |grep nid #(tid的16进制)
jstack 25990 |grep 7fa0 # 打印java进程为25990中线程tid为32672(16进制:7fa0)的堆栈信息。	
1
2
3
4
5
6
7
8

# 5.jmap(Java Memory Map)

打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。

jmap -histo pid > a.log
jmap -histo 25990 > heap25990.log # 输出25990进程内存中的每个class信息到heap25990.log文件。

jmap -dump:format=b,file=outfile pid
jmap -dump:format=b,file=outfile 25990 # 将25990进程的内存heap输出出来到outfile文件里。
1
2
3
4
5
更新时间: 2021-04-28 08:44:23