JDK命令行工具
其中的重中之重是 jstat 命令!而它最常用的参数就是 -gcutil,使用格式如下:
jstat -gcutil [pid] [intervel] [count]
输出如下
D:Javajdk1.6.0_21in > jstat -gcutil 2764
s0 s1 E O P YGC YGCT FGC FGCT GCT
0.00 0.00 6.20 41.42 47.20 16 0.105 3 0.472 0.577
说明:
- 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 的总时间
ps 命令 (Linux)
对于 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 zshps -u root # 显示指定用户信息
ps -l # 列出这次登录bash相关信息
ps axjf # 同时列出进程树状信息