自从上周我在我的机器上运行 apt-get 升级以来,我观察到 perl 进程的 CPU 使用率非常高且周期性
21392 112 39 19 10332 7552 3592 R 53.0 1.5 0:01.63 perl
426 root 20 0 5088 2476 2256 S 0.0 0.5 0:00.33 `- cron
24709 root 20 0 6484 2560 2200 S 0.0 0.5 0:00.03 `- cron
24713 112 20 0 1900 1100 1024 S 0.0 0.2 0:00.01 `- sh
24714 112 20 0 4604 2640 2476 S 0.0 0.5 0:00.02 `- copy-local-and-
24719 112 20 0 1900 1204 1128 S 0.0 0.2 0:00.01 `- refile-and-grok
24725 112 20 0 3536 1516 1436 S 0.0 0.3 0:00.00 `- xargs
24726 112 20 0 1900 1076 1004 S 0.0 0.2 0:00.01 `- refile-and-grok
24728 112 39 19 18592 15008 4996 R 91.2 3.0 0:06.70 `- perl
每次 perl 进程出现时,进程 ID 都会发生变化。
更新
root@raspberrypi:/var/ftp# ps -ef | grep perl
112 25971 25969 91 13:42 ? 00:00:20 perl /usr/share/dsc-statistics-presenter/dsc-xml-extractor
root 25981 22322 0 13:42 pts/0 00:00:00 grep perl
自从我的服务器启动并运行以来,该进程始终运行。自从我将 perl、per-base 和 perl 模块从 5.20.2-3+deb8u5 升级到 5.20.2-3+deb8u6 后,CPU 使用率似乎很高。我正在尝试回滚,但我无法做到
root@raspberrypi:/var/ftp# apt-get install perl=5.20.2-3+deb8u5
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Version '5.20.2-3+deb8u5' for 'perl' was not found
root@raspberrypi:/var/ftp#
任何人都可以帮助我找出CPU使用率如此高的原因或回滚已完成的升级吗?
答案1
DSC:DNS 统计数据收集器
该程序是用 Perl 编写的,但这不是 Perl 问题。您正在使用 DSC。为了解决这个问题,我们必须知道您使用的 DSC 版本。我的建议是升级到较新版本的 DSC。
您可能正在经历2015年10月9日修复的bug
用户报告,当收到仅包含 DNS 消息长度的 TCP 段时后它引用的消息(即无序),然后 DSC 进入 100% CPU 循环。确认当 dnslen 出现乱序时代码无法正常工作,但我无法轻松重现 100% CPU 错误。