我有一台2cpu 4G服务器。最近发现负载比较高。故障排除后发现有D状态进程。我查了一些资料,说只有重启才能解决问题。
但我重启了好几次,这个进程还是存在。
请问大家,这个流程是怎样的?过程?如何解决这个问题呢?
Linux 5.10.60-9.al8.x86_64 #1 SMP 9 月 6 日星期一 21:30:37 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
[root@test ~]# cat /proc/137/status
Name: load_calc
Umask: 0000
State: D (disk sleep)
Tgid: 137
Ngid: 0
Pid: 137
PPid: 2
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0
FDSize: 64
Groups:
NStgid: 137
NSpid: 137
NSpgid: 0
NSsid: 0
Threads: 1
SigQ: 1/14009
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: ffffffffffffffff
SigCgt: 0000000000000000
CapInh: 0000000000000000
CapPrm: 000001ffffffffff
CapEff: 000001ffffffffff
CapBnd: 000001ffffffffff
CapAmb: 0000000000000000
NoNewPrivs: 0
Seccomp: 0
Seccomp_filters: 0
Speculation_Store_Bypass: vulnerable
Cpus_allowed: 3
Cpus_allowed_list: 0-1
Mems_allowed: 00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 59154
nonvoluntary_ctxt_switches: 0
[root@test ~]# cat /proc/137/stack
[<0>] load_calc_func+0x55/0x1a0
[<0>] kthread+0x11b/0x140
[<0>] ret_from_fork+0x22/0x30
[root@test ~]# ps -ef |grep load
root 137 2 0 15:34 ? 00:00:00 [load_calc]
root 11317 1645 0 19:01 pts/0 00:00:00 grep --color=auto load
top - 19:03:10 up 3:28, 1 user, load average: 1.00, 1.00, 1.00
Tasks: 143 total, 1 running, 141 sleeping, 0 stopped, 1 zombie
%Cpu(s): 3.2 us, 0.0 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 3538.5 total, 200.4 free, 774.7 used, 2563.3 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 2461.8 avail Mem
答案1
该进程的父进程是kthreadd
pid=2。这是一个内核线程,而不是一个“真正的”进程。它看起来像一个进程,因为它像进程一样被调度,但它运行内核代码,它没有自己的内存空间。
我找不到任何对官方 Linux 内核中调用的内核线程load_calc
或运行的内核函数的引用。load_calc_func
检查内核日志 ( dmesg
) 以获取线索。
谷歌几乎没有搜索到load_calc_func
,这很可疑。它可能是来自中国 OpenAnolis 克隆版 RHEL 的合法产品;懂中文的人(我不会)也许能看出来。它可能是恶意软件,在这种情况下,您不能相信在日志中找到的任何内容,您不能相信您在磁盘上看到的文件是实际加载到内存中的文件,并且您需要从已知的良好来源重新安装系统。