이름을 기반으로 추측 할 수 있지만 UNIX의 벽 시계 시간, 사용자 CPU 시간 및 시스템 CPU 시간은 무엇입니까?
user-cpu 시간은 사용자 코드를 실행하는 데 걸리는 시간입니까? 커널 cpu 시간은 특권 작업 (예 : IO to disk)이 필요하기 때문에 커널에서 보낸 시간입니까?
이 측정 시간은 몇 시간입니까?
그리고 벽시계 시간은 실제로 프로세스가 CPU에 소비 한 시간 (초)입니까, 아니면 이름이 오해의 소지가 있습니까?
답변
벽시계 시간은 벽의 시계 (또는 스톱워치)가 프로세스 시작과 ‘지금’사이에 경과 한 것으로 측정하는 시간입니다.
사용자 CPU 시간과 시스템 CPU 시간은 사용자 코드에서 보낸 시간과 커널 코드에서 보낸 시간의 양과 거의 같습니다.
단위는 초 (마이크로 초 또는 나노초 일 수있는 1 초)입니다.
벽시계 시간은 프로세스가 CPU에서 소비 한 시간 (초)이 아닙니다. CPU의 전원 켜기를 기다리는 데 소요 된 시간 (다른 프로세스가 실행되는 동안)을 포함하여 경과 시간입니다.
답변
벽시계 시간 : 컴퓨터의 내부 시계에 따라 경과 한 시간으로 외부 세계의 시간과 일치해야합니다. 이것은 CPU 사용량과 아무 관련이 없습니다. 참고로 제공됩니다.
사용자 CPU 시간과 시스템 시간 : 정확히 당신이 생각하는 것. I을 포함 시스템 호출, / O는 다음과 같은 호출 read
, write
커널 코드와 그것을 실행에 점프에 의해 실행되는 등.
벽시계 시간 <CPU 시간이면 프로그램을 병렬로 실행하는 것입니다. 벽시계 시간> CPU 시간이면 디스크, 네트워크 또는 기타 장치를 기다리는 것입니다.
모든 것은 SI 당 초 단위로 측정됩니다 .
답변
벽시계 시간은 정확히 말 그대로 벽의 시계 (또는 손목 시계)에 의해 측정 된 시간입니다.
사용자 CPU 시간은 “사용자 랜드”에 소요 된 시간, 즉 비 커널 프로세스에 소요 된 시간입니다
시스템 CPU 시간은 커널에서 보낸 시간이며 일반적으로 시스템 호출을 처리하는 데 소요 된 시간입니다.
답변
time [WHAT-EVER-COMMAND]
real 7m2.444s
user 76m14.607s
sys 2m29.432s
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 24
실제 또는 벽시계
실제 7m2.444s
24 코어 프로세서가있는 시스템에서이 cmd / process는 완료하는 데 7 분 이상이 걸렸습니다. 그것은 주어진 모든 코어와 가장 가능한 병렬 처리를 활용함으로써 가능합니다.
사용자
사용자 76m14.607s
cmd / process는이 많은 양의 CPU 시간을 활용했습니다. 다시 말해, 단일 코어 CPU가 장착 된 시스템에서 실제 사용자와 사용자는 거의 동일하므로 동일한 명령을 완료하는 데 ~ 76 분이 소요됩니다.
sys
시스템 2m29.432s
컨텍스트 전환, 리소스 할당 등을 포함하여이 cmd를 실행하기 위해 커널이 모든 기본 / 시스템 레벨 작업을 실행하는 데 걸리는 시간입니다.
참고 :이 예에서는 명령이 병렬 처리 / 스레드를 사용한다고 가정합니다.
자세한 매뉴얼 페이지 : https://linux.die.net/man/1/time