![일반적으로 Linux "ping"이 Windows "hrping"보다 빨라야 합니까?](https://linux55.com/image/57566/%EC%9D%BC%EB%B0%98%EC%A0%81%EC%9C%BC%EB%A1%9C%20Linux%20%22ping%22%EC%9D%B4%20Windows%20%22hrping%22%EB%B3%B4%EB%8B%A4%20%EB%B9%A8%EB%9D%BC%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
저는 HP DL360p Gen8을 사용하고 있습니다. 이중 부팅 Windows Server 2008 R2 및 RHEL7을 설치했습니다. 두 시스템 모두 LACP와 VLAN을 구성했습니다. 따라서 동일한 서버, 동일한 하드웨어, 동일한 네트워크, 동일한 라우팅 테이블 등입니다.
나는 이 서버를 고주파 거래에 사용하기 때문에 네트워크 지연을 포함하여 지연이 걱정됩니다.
이제 Windows와 Linux에서 동일한 호스트를 ping하면 Linux가 약간 더 좋아질 것으로 기대합니다. 놀랍게도 전혀 나아지지 않았습니다. 실제로 동일한 호스트에 대해 ping을 실행하면 Windows보다 5~10마이크로초 더 나쁩니다.
hrping
Windows와 Linuxping
에서 사용합니다 .- Windows에서는 그룹화를 위해 HP 유틸리티를 사용하고 RHEL 7에서는 기본 제공 "그룹화"(바인딩 아님)를 사용합니다.
나는 다음과 같은 이유로 Linux가 더 좋아질 것으로 기대합니다.
- RHEL 7 네트워크 구현이 Windows Server 2008 R2보다 빠르다고 생각합니다.
- RHEL 7 팀 구성/LACP/VLAN 구현이 Windows Server 2008 R2/HP보다 빠르다고 생각합니다.
내 질문:
- 그러한 숫자가 존재하는 경우: RHEL 7의 핑은 Windows Server 2008 R2보다 몇 마이크로초 더 빠릅니까?
- Linux가 5~10마이크로초 느려지는 잠재적인 문제를 나타내는 경우
ping
, 아니면 이 사실을 무시해야 합니까? - Linux 핑을 Windows보다 빠르게 만들기 위해 수행/진단/문제 해결 방법은 무엇입니까?
물론 실생활에서는 TCP/UDP 등 실제 트래픽의 레이턴시가 더 걱정되겠지만, 이를 ping
첫 번째 단계로 다루겠습니다. ping
"단순"하기 때문에 동일한 숫자가 표시 될 수 있지만 Linux가 실제 TCP/UDP 트래픽에서 더 빠를까요?
답변1
많은 요인이 있습니다. 첫 번째는 실행 중인 머신입니다. Windows와 Linux가 다른 하드웨어에 있으면 측정이 의미가 없습니다.
물론 여러 번의 시도에 걸쳐 평균 핑을 측정해야 합니다. 처음 몇 번의 핑에는 추가 지연이 포함될 수 있습니다.
패킷은 커널(IP 스택 및 네트워크 장치 드라이버)을 통해 나갔다가 응답이 수신되면 다시 들어와야 합니다. 이 단계에서는 차이에 영향을 미치는 많은 요소가 있을 수 있습니다.
- 실제 시간 측정: 두 가지 다른 ping 구현은 타이머 시작과 실제로 무언가를 보내는 것(수신 경로에서도) 사이에서 어느 정도 상용구 작업을 수행할 수 있습니다.
- 추가 단계를 도입할 수 있는 필터: 방화벽 등이 있습니다.
- 시계 세분성: 커널이 얼마나 세밀하게 프로세스를 다중화할 수 있습니까? 서로 다른 Linux 레벨 내에서도 틱 길이는 크게 다를 수 있으며, 커널은 다소 틱이 없을 수 있습니다(프로세스가 하나만 실행 중인 경우 중단 없이 실행됨).
- 프로세스 관리: 패킷이 반환될 때 프로세스가 얼마나 빨리, 어떻게 깨어납니까? Windows와 Linux는 이를 완전히 다른 방식으로 구현합니다.
- 나머지 시스템은 무엇을 하고 있나요? 동시에 많은 IO가 발생하여 커널이 바쁘게 작동합니까?
nice
더 높은 우선순위로 ping 하면 변경되나요? - 주파수 스케일링: CPU 주파수 관리는 크게 다를 수 있습니다. Linux에는 다양한 작업을 수행하는 많은 "거버너"가 있습니다. 결과적으로 Linux는 유휴 상태일 때 더 낮은 클럭 속도로 실행될 수 있으며 주파수 전환 순간에 추가 대기 시간이 생성됩니다.
- 유틸리티 구현 및 컴파일
ping
도 약간의 영향을 미칠 수 있습니다(커널의 지연이 큰 영향을 미칠 수 있음).
Linux 커널의 네트워크 처리량이 한계에 도달했다는 것은 비밀이 아닙니다.10기가비트 수준. 따라서... 마이크로초 속도에서는 큰 차이가 없어야 합니다. 이는 일정, 운영 체제 대기 시간 등과 관련된 문제일 수 있습니다. 그리고 핑 대기 시간은 로드 시 실제 성능을 나타내지 않습니다. 이 조치는 귀하가 어떤 결정을 내릴 때 하나의 요소가 되어서는 안 됩니다. 특히 실제 로드 시에는 다른 많은 벤치마크가 필요합니다.
마지막으로 Linux 커널 설정은 성능에 큰 영향을 미칠 수 있습니다. 실시간 프로젝트에는 최적의 수준에서 성능을 발휘하려면 전용 커널이 필요합니다. 이 두 가지 시도에서 볼 수 있는 것보다 두 플랫폼 모두에서 서로 다른 구성 간에 더 많은 변형을 찾을 수 있습니다.