프로세스 "시간"이 맨 위에 멈췄을 때 정확히 무엇을 의미합니까?


11

중요한 스왑 알림을받는 이유를 살펴보고 다음과 같은 내용을 찾을 수 있습니다.

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  SWAP COMMAND
14683 user1     30  10 16.0g 772m  744 S  0.3  0.3 277:24.87 6.5g MATLAB
14576 user1     30  10 8125m 1.1g  736 S  0.3  0.4 261:16.73 4.1g MATLAB

여기서 해당 프로세스에 대해 TIME + 열이 고정됩니다.

내 질문은 위의 내용에서 무엇을 의미합니까?

내가 이해했듯이, 중지 된 시간은 휴면 프로세스이거나 CPU에 의해 처리되지 않음을 의미합니다. 그러나 위의 예는 0.3 % CPU 사용을 보여 주므로 매우 작지만 시간 열이 계속 증가하지 않아야합니까?

이러한 프로세스가 "완료"되었습니까? 어떤 경우에 그들은 어떻게 정리됩니까? 시작한 사용자가 자신을 승인하거나 해당 자원을 확보하기 위해 무언가를 승인해야합니까?


1
0.3 %에서는 3/4 초마다 1 센티 초입니다. 오래 기다렸어?
Stéphane Chazelas

1
정신적 폭로 : 시간 증가는 CPU 사용률로 계산됩니까? 와. CPU 100 %라면 실시간과 동일합니까?
CptSupermrkt

5
TIME은 CPU (모든 CPU)가 시작된 이후 프로세스에서 스레드를 실행하는 데 소요 된 누적 시간입니다. 따라서 여러 CPU 코어가 있고 프로세스가 다중 스레드 인 경우 실시간보다 빠르게 진행될 수 있습니다.
Stéphane Chazelas

답변:


10

예를 들어 가짜 작업을 실행 한 sleep 120다음 htop상태를 확인하면 상태가 S"SLEEP"이고 프로세스 TIME가 해당 시간 동안 0 : 00.00으로 유지됩니다.

그 프로세스는 CPU 시간을 0으로 소비하기 때문에 TIME열의 의도입니다 . 주어진 프로세스가 사용한 CPU 시간을 추적합니다.

              ss # 1

프로세스가 여러 CPU 코어에서 실행될 수 있으면 사용 가능한 시간보다 더 많은 시간을 소비 할 수 있으므로이 수는 때때로 혼란 스러울 수 있습니다. X 개의 코어가 있다면 시간이 X * TIME으로 나타날 수 있다는 것입니다.


4

불일치가 발생할 수있는 이유는 TIME + 열이 나열된 프로세스의 죽은 산란 자식이 사용한 CPU 시간을 고려하지 않기 때문입니다. 거의 즉시 죽어가는 아이들을 낳는다.

So, the CPU usage is due to spawned children which do not count in the TIME+ column. 'S'스위치를 통해 누적 시간을 수행하도록 상단을 변경할 수 있습니다.

그러나 나는 당신이 조사하려는 것에 대한 잘못된 지표를보고 있다고 생각합니다.

strace -p <pid> 여기에 친구가 있으며 실행중인 프로세스와 정확히 무엇을하고 있는지 확인할 수 있습니다.

Strace는 수많은 옵션을 취합니다. 주목할만한 옵션에는 -f, -ff, -i, v 등이 포함됩니다. Strace는 가장 유용한 도구이므로 man strace다음과 같은 문제 해결을 위해 제공되는 옵션을 직접 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.