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입니다. 이것은 "실제" 프로세스가 아닌 커널 스레드입니다. 프로세스처럼 예약되므로 프로세스처럼 보이지만 커널 코드를 실행하고 자체 메모리 공간이 없습니다.
load_calc
공식 Linux 커널에서 호출된 커널 스레드나 커널 함수에 대한 참조를 찾을 수 없습니다 . 단서를 찾으려면 load_calc_func
커널 로그( dmesg
)를 확인하세요.
Google은 거의 나타나지 않으며 load_calc_func
이는 의심스럽습니다. 아마도 중국 OpenAnolis 클론 RHEL의 합법적인 제품일 것입니다. 중국어를 아는 사람은 알 수 있을 것입니다. 맬웨어일 수 있습니다. 이 경우 로그에서 찾은 내용을 신뢰할 수 없으며 디스크에 표시되는 파일이 실제로 메모리에 로드된 파일인지 신뢰할 수 없습니다.알려진 양호한 소스에서 시스템을 다시 설치해야 합니다..