在 Linux 中查看进程时间(包括进程运行时间、CPU 占用时间等)可以使用以下几种方法:
ps
命令最常用的进程查看工具,可以显示进程的 CPU 时间、启动时间等:
ps -eo pid,user,comm,lstart,etime,time,pcpu
lstart
: 进程启动的具体时间(年月日时分秒)etime
: 进程已经运行的时间(格式 DD-HH:MM:SS
)time
: 进程占用 CPU 的累计时间(格式 HH:MM:SS
)pcpu
: CPU 占用百分比示例(查看指定进程的启动时间和运行时间):
ps -p <PID> -o pid,comm,lstart,etime,time
top
/ htop
命令top
:动态显示进程信息,包含 CPU 时间(按 Shift + M
按内存排序,Shift + P
按 CPU 排序)。
top
在 top
界面中:
TIME+
列:进程占用 CPU 的总时间(格式 MM:SS.ss
)。c
可以显示进程的完整启动命令。htop
(需安装):
htop
更直观,直接显示进程的 CPU 时间和启动时间。
uptime
命令查看系统整体运行时间(但不会显示单个进程时间):
uptime
输出示例:
10:30:45 up 2 days, 5:15, 3 users, load average: 0.00, 0.01, 0.05
/proc/<PID>/stat
文件通过内核的 /proc
文件系统获取进程详细信息:
cat /proc/<PID>/stat
转换示例(将 jiffies 转为秒):
awk '{print "CPU Time (sec): " ($14+$15)/100}' /proc/<PID>/stat
pidstat
命令(sysstat 包)监控进程的 CPU 使用情况,包括历史数据:
pidstat -p <PID> 1 5 # 每1秒采样,共5次
输出包含:
- %CPU
:CPU 使用率。
- CPU
:进程使用的 CPU 编号。
- Command
:进程名。
time
命令测量命令执行时间(适用于新启动的进程):
time <command>
示例:
time ls -l
输出:
- real
:实际耗时(墙钟时间)。
- user
:用户态 CPU 时间。
- sys
:内核态 CPU 时间。
需求 | 推荐命令 |
---|---|
查看进程启动/运行时间 | ps -eo pid,lstart,etime,cmd |
实时监控进程 CPU 时间 | top 或 htop |
详细进程统计 | cat /proc/<PID>/stat |
历史 CPU 时间记录 | pidstat |
根据场景选择合适的方法即可!