“실시간”이“사용자”및“시스템”시간을 합한 것보다 훨씬 높은 이유는 무엇입니까?


19

나는 실행하고 time많은 명령 (예 nslookup)를 통해 SSH나는 완전한 (즉에 대한 묵시적 서비스에 필요한 총 시간 수집 DNS를 ). 따라서 프로세스가 차단되는 시간이 필요하지 않은 시간을 카운트 하면서 시간 user과 sys시간을 수집합니다 real.

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

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

제한된 리소스 Linux 상자에서 이러한 테스트를 실행하지만 여전히 real시간이 상당히 높습니다. 이것은 상자가 다른 프로세스를 실행하는 데 매우 바쁘다는 것을 나타냅니다. 서비스가 얼마나 걸 렸는지 알기 위해 시간 user과 sys시간 을 더하는 것이 여전히 옳 습니까?

답변:


22

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

$ time sleep 3

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

이 목록에서 user 및 sys 는 각각 사용자 모드 및 커널 모드에서 소요 된 시간을 나타냅니다. 여기 에는 비활성 상태, 수면 상태 에서 소비 한 시간이 포함되지 않습니다 . 프로세스가 의도적으로 요청하거나 IO (네트워킹 / 디스크 액세스 / 사용자 상호 작용)가 사용 가능할 때까지 기다리거나 다른 프로세스가 종료 될 때까지 대기하는 경우 (시스템이 매우 높은로드 상태 일 때 사용 가능한 CPU 부족) 등

당신이 호출하는 경우 일반적으로, time에 wget, 실제 다운로드가 걸리는 시간에 대한 의지 대응 사용자가 (하지 않는 한 무시할 수 있어야 wget집중적 인 데이터 처리를 수행하도록 요청), SYS가 작아야한다 (일부 시간 데이터 다시 이동, 버퍼를 처리하기 위해 소비 될 수있다 커널 공간에서 사용자 공간으로.)


나는 wget질문에 덧붙여서 미안 time하지만 실제로는 그렇지 않지만 설명에 감사드립니다. 그 말 real과 같은 네트워크 IO 대기로 배를 차단 포함하는 것은 실제로 네트워크를 테스트하고있어 나 때문에 너무 시간을 포함하도록 생각하게한다. 감사합니다.
— Muhammad Gelbana

네트워크 성능과 쿼리 된 시스템이 DNS서버 인지 핑된 시스템인지에 대한 응답 성을 테스트하려면 다음을 확인 하시겠습니까 real? 시간 만 측정하면 충분 합니까?
— Muhammad Gelbana

@MuhammadGelbana :이 실시간 은 스톱워치 일뿐입니다. 당신이 허락한다면 ping삼분 (22)에 대해 실행, 그것은이 경우에는 단지 쓸모없는 (그리고 벤치 마크는 대부분의 시간, 결과가 외부 요인에 따라 달라집니다로서 실제로 쓸모) 삼분 (22)를 반환합니다.
— Stéphane Gimenez

감사. 그러나 시간이 초과되지 않은 이유를 알고 있습니까? 기본 시간 제한 nslookup이 5 초라는 것을 읽었습니다 !
— Muhammad Gelbana
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.