読者です 読者をやめる 読者になる 読者になる

プログラミングとかLinuxとかの備忘録

プログラミング、Linuxでハマった箇所や環境構築のメモ

CentOS7でatdのCPU使用率が高い

Linux CentOS

状況

KVMホストでCPU使用率が異常に高くなっていたのでtopしてみると
ゲストの1つがCPU200%になっていた

$ top
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND          
2598 qemu      20   0 2665936 2.072g   9320 S 205.0  6.7   1551:03 qemu-kvm         
2562 qemu      20   0 2820920 1.385g   9640 S   8.3  4.5  65:58.03 qemu-kvm         
2627 qemu      20   0 4743384 1.362g   9096 S   0.7  4.4  65:39.06 qemu-kvm         

そのゲストでは,下のようにatdがCPU40%になっていた

$ top
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
1069 root      20   0   25844   1056    852 R  40.0  0.1  82:20.66 atd
 476 root      20   0   36820   2032   1716 R  13.3  0.1  25:15.65 systemd-journal
 957 root      20   0  322352   4224   3396 S   3.3  0.2   4:54.21 rsyslogd

このゲストではepgrecを動かしていて,前日にepgrecを新しくしたついでにUIDを変更したのが原因だろうと思われる

解決方法

[CentOS]atdとrsyslogdのCPU使用率が高い - Qiitaの通りに,日時が過ぎているジョブを削除すると治った

$ sudo atq
1311    実行日時 a ユーザ名
1312    実行日時 a ユーザ名
1313    実行日時 a ユーザ名
1315    実行日時 a ユーザ名
1316    実行日時 a ユーザ名
1317    実行日時 a ユーザ名
1318    実行日時 a ユーザ名
1319    実行日時 a ユーザ名
1302    実行日時 = ユーザ名

atdを停止させてから

$ sudo systemctl stop atd

修了しているジョブを削除する

$ sudo at -d ジョブ番号

atdの起動

$ sudo systemctl start atd