linux如何检查进程,如何在Linux中检查进程的执行时间

本文介绍了如何在Linux系统中使用Gnomon、ps命令和time命令来查找和跟踪进程的执行时间。Gnomon是一个用于注释控制台日志记录的工具,通过时间戳提供对长时间运行进程的洞察。ps命令可以显示特定进程的运行时间,而time命令则报告命令执行所花费的时间。这些方法对于监控和优化系统性能非常有用。
摘要由CSDN通过智能技术生成

在Linux或Unix系统中,你是否一直想知道如何找到进程的执行时间? 本指南将向你展示一些在Linux中查找进程执行时间时非常方便的工具。

本指南中显示的每个命令都已在Ubuntu服务器上和CentOS上进行了测试。

Gnomon

Gnomon是一个实用程序,用于用时间戳注释控制台日志记录语句,并且在Linux系统上查找缓慢的进程。对于长时间运行的流程,此工具非常有用,因为你需要记录长时间的历史记录。

安装Gnomon

由于Gnomon是用node.js编写的工具,需要安装Node.js,这样你就可以使用npm软件包管理器安装Gnomon ,在Linux系统上有了npm工具后,请继续使用以下方法安装它们:$ npm install -g gnomon

/usr/local/bin/gnomon -> /usr/local/lib/node_modules/gnomon/bin/gnomon

+ [email protected]

added 56 packages in 13.076s

使用Gnomon

默认情况下,gnomon将显示每行之间经过的秒数,但这是可配置的。

3a01dfcaf6e595c92e58d527fe04a629.png

请看下面的例子,该例子打印对google DNS服务器执行5次ping请求所需的时间。$ ping -c 5 8.8.8.8 | gnomon 0.0049s PING 8.8.8.8 (8.8.8.8): 56 data bytes

0.3603s 64 bytes from 8.8.8.8: icmp_seq=0 ttl=59 time=179.114 ms

1.0025s 64 bytes from 8.8.8.8: icmp_seq=1 ttl=59 time=182.345 ms

1.0008s 64 bytes from 8.8.8.8: icmp_seq=2 ttl=59 time=183.636 ms

1.0119s 64 bytes from 8.8.8.8: icmp_seq=3 ttl=59 time=181.139 ms

0.0002s 64 bytes from 8.8.8.8: icmp_seq=4 ttl=59 time=190.970 ms

0.0002s

0.0001s --- 8.8.8.8 ping statistics ---

0.0001s 5 packets transmitted, 5 packets received, 0.0% packet loss

0.0020s round-trip min/avg/max/stddev = 179.114/183.441/190.970/4.048 ms

0.0002s

Total 3.3842s

总所用时间为3.384.

可用选项包括:

以下是可用选项的列表:

-t | --type= < elapsed-line|elapsed-total|absolute > :

要显示的时间戳类型,

elapsed-line:显示最后一行的秒数,

elapsed-total:自流程开始以来经过的秒数。

absolute :UTC中的绝对时间戳。

例如:$ ping -c 3 8.8.8.8 | gnomon --type=elapsed-total

0.0049s PING 8.8.8.8 (8.8.8.8): 56 data bytes

0.2336s 64 bytes from 8.8.8.8: icmp_seq=0 ttl=59 time=46.288 ms

1.2798s 64 bytes from 8.8.8.8: icmp_seq=1 ttl=59 time=35.811 ms

1.2801s 64 bytes from 8.8.8.8: icmp_seq=2 ttl=59 time=80.783 ms

1.2802s

1.2804s --- 8.8.8.8 ping statistics ---

1.2805s 3 packets transmitted, 3 packets received, 0.0% packet loss

1.2821s round-trip min/avg/max/stddev = 35.811/54.294/80.783/19.213 ms

1.2823s

Total 1.2824s

-f | --format="format ":使用PHP日期格式字符串格式化绝对时间戳,如果类型是elapsed-line或elapsed-total,则忽略此选项。默认格式为H:i:s.u O"-r | --real-time=

禁用实时更新的例子:# ping -c 3 8.8.8.8 | gnomon --real-time=false

0.0040s PING 8.8.8.8 (8.8.8.8): 56 data bytes

0.7847s 64 bytes from 8.8.8.8: icmp_seq=0 ttl=59 time=69.803 ms

0.9316s 64 bytes from 8.8.8.8: icmp_seq=1 ttl=59 time=140.597 ms

0.0001s 64 bytes from 8.8.8.8: icmp_seq=2 ttl=59 time=68.122 ms

0.0001s

0.0001s --- 8.8.8.8 ping statistics ---

0.0001s 3 packets transmitted, 3 packets received, 0.0% packet loss

0.0020s round-trip min/avg/max/stddev = 68.122/92.841/140.597/33.776 ms

Total 1.7229s

-h | --high=seconds :高阈值

-m | --medium=seconds : 中等阈值。

使用ps检查运行进程时间

你可以使用ps命令检查特定进程运行的时间,

要识别进程ID可以使用pidof之类的工具$ pidof mpd

1388

然后使用-o etime选项来查找已运行的运行时间。$ ps -p 1388 -o etime

ELAPSED

05-11:03:02

etime选项以[[DD-] hh:] mm的形式显示自启动进程以来经过的时间:ss,因此,从上面的示例来看,该进程已经运行了5天11个小时3分钟。使用etimes选项以秒为单位运行时间。

此命令选项也可用于多个进程,下面的例子将显示我的Ubuntu服务器上所有进程的开始时间和执行时间。$ ps -eo pid,lstart,etime,args

7a230a5aa927df741907ad42e6494b68.png

输出有4列:

正在运行进程的PID -- > ID

进程运行的-- >总运行时间

命令-- >进程执行命令

在Ubuntu上使用time命令

time命令报告命令在Linux系统上执行所花费的时间。如果在Ubuntu系统上缺少,你可以安装它:$ sudo apt-get install time

time命令用法:# time [-p] command [arguments...]

time的输出将有:命令调用与终止之间经过的实时时间,

用户CPU时间,

系统CPU时间,

以下示例检查/root目录的磁盘使用情况。# time du -sh /root/

464K /root/

real 0m0.007s

user 0m0.002s

check-execution-time-of-a-process-linux

从输出中,命令执行的实际时间为0m0.007s。

让我们再做一次,ping到8.8.8.8# time ping -c 3 8.8.8.8

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=60 time=7.28 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=60 time=11.9 ms

64 bytes from 8.8.8.8: icmp_seq=3 ttl=60 time=7.54 ms

--- 8.8.8.8 ping statistics ---

3 packets transmitted, 3 received, 0% packet loss, time 2003ms

rtt min/avg/max/mdev = 7.281/8.925/11.952/2.145 ms

real 0m2.059s

user 0m0.001s

sys 0m

check-execution-time-of-a-process-linux

实际执行时间为2.059秒。

现在你知道了如何在Linux上获得Linux进程的执行时间。第一种方法对于交互式进程非常理想,对于在后台运行的进程,你可以使用ps命令来获取它们的执行时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值