其中的重中之重是 jstat 命令!而它最常用的参数就是 -gcutil,使用格式如下:
jstat -gcutil [pid] [intervel] [count]
输出如下:
S0
:堆上 Survivor space 0 区已使用空间的百分比S1
:堆上 Survivor space 1 区已使用空间的百分比E
:堆上 Eden 区已使用空间的百分比O
:堆上 Old space 区已使用空间的百分比P
:堆上 Perm space 区已使用空间的百分比YGC
:从程序启动到采样时发生的 Minor GC 次数YGCT
:从程序启动到采样时 Minor GC 所用的时间FGC
:从程序启动到采样时发生的 Full GC 次数FGCT
:从程序启动到采样时 Full GC 所用的时间GCT
:从程序启动到采样时 GC 的总时间
对于 jps
命令,其实没必要使用,一般使用 Linux 里的 ps
就够了,ps
为我们提供了当前进程状态的一次性的查看,它所提供的查看结果并不动态连续的,如果想对进程时间监控,应该用 top
工具。
Linux 上进程的 5 种状态
- 运行 [R, Runnable]:正在运行或者在运行队列中等待;
- 中断 [S, Sleep]:休眠中, 受阻, 在等待某个条件的形成或接受到信号;
- 不可中断 [D]:收到信号不唤醒和不可运行, 进程必须等待直到有中断发生;
- 僵死 [Z, zombie]:进程已终止, 但进程描述符存在, 直到父进程调用 wait4() 系统调用后释放;
- 停止 [T, Traced or stop]:进程收到 SIGSTOP, SIGSTP, SIGTIN, SIGTOU 信号后停止运行运行。
ps -A # 列出所有进程信息(非详细信息)
ps aux # 列出所有进程的信息
ps aux | grep zsh
ps -ef # 显示所有进程信息,连同命令行
ps -ef | grep zsh
ps -u root # 显示指定用户信息
ps -l # 列出这次登录bash相关信息
ps axjf # 同时列出进程树状信息