1.1 使用语法
- 可以使用进程程序的程序名称和进程ID进行监测。
- 注意: 在linux下使用procDump都要使用sudo
procdump [-n Count]
[-s Seconds]
[-c|-cl CPU_Usage]
[-m|-ml Commit_Usage]
[-tc Thread_Threshold]
[-fc FileDescriptor_Threshold]
[-sig Signal_Number]
[-e]
[-f Include_Filter,...]
[-pf Polling_Frequency]
[-o]
[-log]
{
{{[-w] Process_Name | [-pgid] PID} [Dump_File | Dump_Folder]}
}
1.2 参数
| 选项 | 说明 |
|---|---|
| -n | 退出前要写入的转储数。 |
| -s | 写入转储之前的连续秒数(默认值为10)。 |
| -c | CPU阈值,超过该阈值可创建进程的转储。 |
| -cl | CPU阈值,低于该阈值可创建进程的转储。 |
| -m | 用于创建转储的内存提交阈值(MB)。 |
| -ml | 当内存提交降至指定的MB值以下时触发。 |
| -tc | 线程计数阈值,超过该阈值将创建进程的转储。 |
| -fc | 文件描述符计数阈值,超过该阈值可创建进程的转储。 |
| -sig | 要拦截的信号,以创建进程的转储。(例如程序段错误会发出SIGSEGV信号) |
| -e | [.NET]当进程遇到异常时创建转储。 |
| -f | [.NET] 对(逗号分隔)异常名称和异常消息进行筛选(包括)。 |
| -pf | 轮询频率。 |
| -o | 覆盖现有转储文件。 |
| -log | 将扩展的ProcDump跟踪写入系统日志。 |
| -w | 如果指定的进程没有运行,请等待它启动。 |
| -pgid | “进程ID”指的是进程组ID。 |
- Linux中详细信号说明
- Linux中常见程序退出信号有以下几种:
| 信号 | 编号 | 说明 |
|---|---|---|
| SIGABRT | 6 | 由abort函数发出的信号,表示进程异常终止。 |
| SIGFPE | 8 | 由浮点运算异常发出的信号,表示进程执行了一个不合法的浮点运算。 |
| SIGILL | 4 | 由非法指令发出的信号,表示进程执行了一个非法指令。 |
| SIGINT | 2 | 由CTRL+C发出的信号,表示进程接收到了一个中断信号。 |
| SIGSEGV | 11 | 由段错误发出的信号,表示进程访问了一个非法的内存地址。 |
| SIGTERM | 15 | 由kill命令发出的信号,表示进程被终止。 |
| SIGKILL | 9 | 由kill -9命令发出的信号,表示强制杀死进程。 |
使用示例
-
使用下面的命令将在进程每次CPU使用率>= 65%时创建一个核心转储,最多3次,每次转储之间至少间隔10秒。
sudo procdump -c 65 -n 3 1234 -
以下代码将在进程每次CPU使用率>= 65%时创建一个核心转储,最多3次,每次转储之间至少间隔5秒。
sudo procdump -c 65 -n 3 -s 5 1234 -
当CPU使用率超出范围[10,65]时,以下代码将创建一个核心转储。
sudo procdump -cl 10 -c 65 1234 -
当CPU使用率为>= 65%或内存使用率为>= 100 MB时,以下命令将创建一个核心转储。
sudo procdump -c 65 -m 100 1234 -
下面的操作将立即在
~/目录中创建一个核心转储,如果目录不存在则创建失败。sudo procdump 871634 ~/
浙公网安备 33010602011771号