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


19

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

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

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

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

답변:


22

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

$ time sleep 3

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

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

당신이 호출하는 경우 일반적으로, timewget, 실제 다운로드가 걸리는 시간에 대한 의지 대응 사용자가 (하지 않는 한 무시할 수 있어야 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.