我有多个用Perl编写的cron作业,它们似乎导致了高服务器负载。
当我通过SSH运行top
时,它显示Perl使用的CPU和内存最多。但是,由于有多个cron作业,我需要具体了解哪一个使用了最多的资源。
有没有办法检查哪个Perl文件使用的资源最多?
答案 0 :(得分:1)
好吧,如果查看ps -ef
,您应该看到哪个脚本映射到该进程ID。您还可以使用strace -fTt -p <pid>
将调试程序附加到特定的进程ID,以查看它正在执行的操作。
或者您可以修改脚本以将$0
更改为有意义的内容,告诉您哪个脚本是哪个。
但如果没有更多细节,很难说。脚本运行的时间是否超过了你的cron工作需要更长的时间才能解决问题?&#39;?因为如果你开始记录一个cron工作,你会越来越慢,因为越来越多的人开始堆积它。
答案 1 :(得分:1)
注意进程top show的PID是使用cpu。然后做一个
ps -ef | grep perl
将PID与列出的PID匹配,您将看到高cpu作业的perl进程的完整命令行。