WebSocket 연결을 테스트하던 중 일부 TCP 패킷이 지연되는 것을 발견했습니다. 그래서 목적지에 핑을 보내기 시작했습니다. TCP 패킷이 더 이상 지연되지 않습니다. 나는 핑을 멈추었고 다시 긴장하기 시작했습니다.
특정 트래픽 임계값이 있으면 네트워크 어댑터에 더 이상 해당 임계값 이하의 지터가 없지만 패킷이 지연되는 것 같습니다.
WebSocket 연결 경로와 별개로 다른 사이트에 ping을 실행하여 다시 테스트했는데, 이 결과 역시 지터가 제거되었습니다. 또한 트래픽과 경로에 관계없이 발생합니다. 예를 들어 다른 대상에서 데이터를 스트리밍하고 WS 연결을 테스트하면 지터가 없습니다. 이는 여기서 유일한 상수이기 때문에 로컬 네트워크 인터페이스에만 해당되는 것으로 보입니다.
트래픽이 많지 않으면 로컬 네트워크 어댑터가 "절전/저전력" 상태로 전환되는 것 같습니다. 가능합니까? 이 문제를 진단하거나 조사할 수 있는 방법이 있습니까?
답변1
이는 무선 카드의 활성 전원 관리로 인해 발생합니다.
문제를 해결하려면 다음 명령을 실행하여 NIC의 전원 관리를 끄십시오.
sudo iwconfig wlp3s0 power off
이 특정 NIC에 대한 전원 관리가 매우 짧은 시간 초과 동안 활성화된 것으로 보입니다. 예를 들어 약 200밀리초 동안 트래픽이 없으면 NIC가 저전력 모드로 전환됩니다. 즉, 트래픽이 적은 시간 동안 NIC가 계속 깨어나야 하므로 패킷 지연이 발생합니다.