博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Ubuntu下使用ProcDump

Posted on 2026-03-14 20:18  linFen  阅读(2)  评论(0)    收藏  举报

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。
信号编号说明
SIGABRT 6 由abort函数发出的信号,表示进程异常终止。
SIGFPE 8 由浮点运算异常发出的信号,表示进程执行了一个不合法的浮点运算。
SIGILL 4 由非法指令发出的信号,表示进程执行了一个非法指令。
SIGINT 2 由CTRL+C发出的信号,表示进程接收到了一个中断信号。
SIGSEGV 11 由段错误发出的信号,表示进程访问了一个非法的内存地址。
SIGTERM 15 由kill命令发出的信号,表示进程被终止。
SIGKILL 9 由kill -9命令发出的信号,表示强制杀死进程。

使用示例

  1. 使用下面的命令将在进程每次CPU使用率>= 65%时创建一个核心转储,最多3次,每次转储之间至少间隔10秒。

    sudo procdump -c 65 -n 3 1234
    
  2. 以下代码将在进程每次CPU使用率>= 65%时创建一个核心转储,最多3次,每次转储之间至少间隔5秒。

    sudo procdump -c 65 -n 3 -s 5 1234
    
  3. 当CPU使用率超出范围[10,65]时,以下代码将创建一个核心转储。

    sudo procdump -cl 10 -c 65 1234
    
  4. 当CPU使用率为>= 65%或内存使用率为>= 100 MB时,以下命令将创建一个核心转储。

    sudo procdump -c 65 -m 100 1234
    
  5. 下面的操作将立即在~/目录中创建一个核心转储,如果目录不存在则创建失败。

    sudo procdump 871634 ~/