先週、私のコンピュータで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日のバグ修正
ユーザーは、DNSメッセージの長さのみを含むTCPセグメントを受信すると、次のように報告します。後ろにメッセージを参照すると(つまり、順序が正しくありません)、DSCは100%CPUループに入ります。 dnslenが故障した場合、コードが動作しないことを確認しましたが、CPU 100%エラーを簡単に再現できませんでした。