다른 프로세스를 위해 작업을 수행하는 프로세스의 PID나 기타 정보를 어떻게 찾을 수 있나요? kworker
예를 들어, 스레드 또는 커널의 다른 프로세스에 대한 작업을 수행하는 다른 스레드/프로세스에 대해 이야기하고 있습니다.
내 딜레마는 CPU 선호도가 CPU 0에 바인딩된 sched prio 99로 실행되는 실시간 예약 프로세스가 있지만 (SCHED_FIFO)
내 컴퓨터에 CPU 압력을 주입할 때 중요한 rt 프로세스가 중요하지 않은 다른 프로세스를 선점하지 못한다는 것입니다. 프로세스. 아마도 와 에 -a 옵션을 지정 kworkers
했음에도 불구하고 taskset
이 중요한 프로세스를 담당하는 프로세스가 메인 프로세스의 우선순위를 상속받지 않기 때문인 것 같습니다 chrt
. 현재 내 생각은 스레드를 수동으로 taskset
조작하여 RT가 아닌 다른 프로세스가 선점하지 않도록 하는 것입니다.chrt
kworker
답변1
시작된 프로세스의 PID를 알고 있으면 해당 프로세스에서 시작된 모든 작업의 트리를 얻을 수 있습니다 ps
.
$ ps f -g2305957
PID TTY STAT TIME COMMAND
2305957 pts/20 Ss 0:00 bash
2310399 pts/20 S+ 0:00 \_ stress -t 300 -c 16
2310400 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310401 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310402 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310403 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310404 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310405 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310406 pts/20 R+ 0:23 \_ stress -t 300 -c 16
2310407 pts/20 R+ 0:25 \_ stress -t 300 -c 16
2310408 pts/20 R+ 0:22 \_ stress -t 300 -c 16
2310409 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310410 pts/20 R+ 0:25 \_ stress -t 300 -c 16
2310411 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310412 pts/20 R+ 0:23 \_ stress -t 300 -c 16
2310413 pts/20 R+ 0:24 \_ stress -t 300 -c 16
2310414 pts/20 R+ 0:25 \_ stress -t 300 -c 16
2310415 pts/20 R+ 0:22 \_ stress -t 300 -c 16
이는 stress
16개의 스레드에서 실행됩니다. 관련된이 답변.
답변2
pstree -p -H <PID>
이 명령은 모든 PID가 포함된 시스템의 전체 프로세스 트리를 표시하고 프로세스를 강조 표시합니다.
아마도 이것이 무슨 일이 일어나고 있는지 알아내는 데 도움이 될 것입니다.