如何在一段时间内监控正在运行的进程的CPU时间(Linux)?

如何在一段时间内监控正在运行的进程的CPU时间(Linux)?,linux,cpu-usage,Linux,Cpu Usage,我想在执行查询时测量正在运行的数据库服务器的CPU使用情况。 目标是获得wallclock时间、总CPU时间、用户CPU时间和内核(系统)CPU时间,这样我就可以估计出在计算上花费了多少时间,以及在I/O上花费了多少时间 服务器专用于此实验,当没有查询运行时,CPU使用率接近0%,因此我的计划是 启动监视器 运行查询 停止监视器并收集间隔期间的CPU使用情况 监视器可以给出该时间段内CPU时间的总和,也可以给出采样结果的列表,我可以自己对其进行汇总 我曾寻找过类似的问题,并尝试过几种解决方案,但

我想在执行查询时测量正在运行的数据库服务器的CPU使用情况。 目标是获得wallclock时间、总CPU时间、用户CPU时间和内核(系统)CPU时间,这样我就可以估计出在计算上花费了多少时间,以及在I/O上花费了多少时间

服务器专用于此实验,当没有查询运行时,CPU使用率接近0%,因此我的计划是

  • 启动监视器
  • 运行查询
  • 停止监视器并收集间隔期间的CPU使用情况
  • 监视器可以给出该时间段内CPU时间的总和,也可以给出采样结果的列表,我可以自己对其进行汇总

    我曾寻找过类似的问题,并尝试过几种解决方案,但都不能满足我的需要

  • pidstat
    pidstat看起来不错,但是粒度太粗了。最小的间隔是1秒,我需要一个更精细的间隔,比如100ms

  • mpstat
    与pidstat的问题相同。大间隔

  • top
    top可以在批处理模式下运行,但采样间隔也很大(2s-3s)。它也不提供用户/内核时间细分

  • 谢谢大家的建议

    尝试使用“time”或“times”命令。要使用这些命令,您可能需要进行一些变通

    时间程序名称

    “times”需要从启动数据库服务器的同一个shell中执行


    您应该看到on和/或linux admin for umseaborating关于这个答案,您的命令应该是这样的:
    time psql-f file\u with_sql.sql