來自root 的進程對 CPU佔用高解決方法

有時候,CPU 佔用很高,而且是root的進程。比如 top

Tasks: 558 total,   1 running, 557 sleeping,   0 stopped,   0 zombie
%Cpu(s): 61.4 us,  0.0 sy,  0.0 ni, 38.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 13191446+total, 10841356+free,  3224532 used, 20276364 buff/cache
KiB Swap: 13409894+total, 13409894+free,        0 used. 12776337+avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                
 3430 root      20   0   81488  75840      4 S  3588  0.1 406637:57 sd-pam                                                                     
11707 user     20   0   40940   3980   3044 R   6.2  0.0   0:00.02 top                                                                    
    1 root      20   0  119924   6064   3968 S   0.0  0.0   0:11.58 systemd                                                                
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.10 kthreadd

這裏 root 進程 sd-pam 佔用了大量CPU資源。如何解決這個問題?

通過 pstree -p 3430 我們得到,該進程的完整的進程樹是 systemd—libserv—libserv
通過 ps -eo pid,comm,unit 我們 得到 security info :

3430 libserv         cron.service

通過 pa -aux 我們得到 see every process on the system using BSD syntax:

root      1630  0.0  0.0  27728  2916 ?        Ss   Jun02   0:08 /usr/sbin/cron -f

我們找到,是cron 服務守護着 libserv 進程。這就是sd-pam 始終kill 不了的原因。
接下來的方法就比較簡單了。

sudo kill 1630 
sudo kill 3430

相似的問題也發生在 sh,就是 top 列出的 sh 命令佔用CPU很高,用上述方法可以解決。

參考:
a strange behavior of sd-pam #11753
Where is this cron job running from?
systemd System and Service Manager

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章