ping localhost가 범람하면 RTT가 낮아지는 이유는 무엇입니까?

ping localhost가 범람하면 RTT가 낮아지는 이유는 무엇입니까?

타당성 조사의 일환으로 pingHTTP 요청 시간의 하한을 추정했습니다.

테스트 속도를 높이기 위해 핑 간격을 낮추었고(합리적인 평균을 얻기에 충분한 핑을 얻기 위해) 간격이 짧아지면 localhost에 대한 RTT가 떨어지는 것을 확인했습니다. 예를 들어:

>sudo ping -i 0.01 -c500 -q localhost
PING localhost (127.0.0.1) 56(84) bytes of data.

--- localhost ping statistics ---
500 packets transmitted, 500 received, 0% packet loss, time 5986ms
rtt min/avg/max/mdev = 0.006/0.007/0.055/0.004 ms
>sudo ping -i 0.00 -c500 -q localhost
PING localhost (127.0.0.1) 56(84) bytes of data.

--- localhost ping statistics ---
500 packets transmitted, 500 received, 0% packet loss, time 8ms
rtt min/avg/max/mdev = 0.003/0.004/0.016/0.000 ms, ipg/ewma 0.018/0.004 ms

(실제 -f옵션을 사용하면 비슷한 결과가 나옵니다 -i 0.00).

홍수 시 RTT가 4us ping이고 홍수가 아닌 동안 RTT가 8us인 이유는 무엇입니까? 플래그 를 건너뛰면 -q비홍수는 최대 34us까지 되기 때문에 상황이 더욱 악화됩니다. 각 개별 핑에 대해 한 줄을 인쇄하는 데 왜 그렇게 차이가 있습니까?

내 생각에는 ICMP 패킷이 대기열에 들어가고 커널이 대기열을 처리하기 전에 지연이 있으며, 더 많은 ICMP 패킷이 있으면 동시에 처리할 수 있을 것입니다.

후속 질문은 ping RTT가 localhost와 관련되어 있는지, 아마도 localhost HTTP 요청을 수행할 때 TCP/IP가 사용되지 않는지 여부일 수 있습니다.

참고로 저는 Linux(#1 SMP Debian 3.2.68-1+deb7u2)를 실행하고 있습니다.

답변1

어떤 유형의 CPU를 사용하고 있는지 모르겠습니다. 제 경우에는 -i 0.0145μs rtt가 나오는 반면, -f이 차이(SandyBridge CPU의 경우)는 C6 절전 상태에서 깨어나는 데 걸리는 시간과 대략적으로 일치합니다.

http://ena-hpc.org/2014/pdf/paper_06.pdf

예, 터미널 에뮬레이터(또는 SSH 등)에 따라 콘솔로 인쇄하는 데 비용이 많이 들 수 있습니다.

관련 정보