"실제" 시간이 "사용자" 시간과 "시스템" 시간의 합보다 훨씬 높은 이유는 무엇입니까?

"실제" 시간이 "사용자" 시간과 "시스템" 시간의 합보다 훨씬 높은 이유는 무엇입니까?

time나는 많은 명령(예 nslookup:) 을 실행 SSH하고 암시적 서비스를 완료하는 데 필요한 총 시간(예:도메인 명 시스템). 그래서 저는 프로세스가 차단될 때 필요하지 않기 때문에 시간을 user수집 합니다 . 아마도 시간은 시간을 계산할 것입니다.sysreal

그러나 내 테스트 결과 중 일부는 다음과 같습니다.

real 3m22.033s
user 0m0.009s
sys 0m0.014s

리소스가 제한된 Linux 시스템에서 이러한 테스트를 수행했지만 real여전히 시간이 오래 걸렸습니다. 이것은 상자가 다른 프로세스를 실행하는 데 매우 바쁘다는 것을 의미합니까? 서비스에 걸린 시간을 알 수 user있도록 시간을 추가하는 것이 여전히 올바른가요?sys

답변1

진짜프로세스가 종료되는 데 걸린 총 시간입니다(즉, 시작 시간과 중지 시간의 차이).

$ time sleep 3

real    0m3.002s
user    0m0.000s
sys     0m0.000s

이 목록에는사용자그리고체계각각 사용자 모드와 커널 모드에서 소요된 시간을 나타냅니다. 이것들포함되지비활성 상태로 보낸 시간상태. 프로세스가 의도적으로 요청할 때, IO(네트워크/디스크 액세스/사용자 상호 작용)가 사용 가능해질 때까지 기다릴 때 또는 시스템 부하가 매우 높을 때 사용 가능한 CPU가 부족할 때 프로세스는 절전 모드로 전환됩니다. 종료할 다른 프로세스, ETC.

일반적으로 time전화를 wget하면진짜다운로드에 필요한 시간에 해당하며,사용자무시할 수 있어야 합니다( wget집약적인 데이터 처리를 수행하는 데 필요한 경우 제외).체계작아야 합니다. (버퍼를 처리하고 커널 공간에서 사용자 공간으로 데이터를 앞뒤로 이동하는 데 시간이 걸릴 수 있습니다.)

관련 정보