TCP 재전송의 근본 원인 찾기

TCP 재전송의 근본 원인 찾기

우리는 Firebird(v2.5.3) 데이터베이스에 연결된 Apache 서버에서 실행되는 타사 애플리케이션 기반 제품을 보유하고 있습니다.

안타깝게도 사용자가 서버에 요청을 시도할 때 시간 초과가 발생하는 문제가 발생했습니다. devtools->network 탭을 열면 패킷이 삭제되는 것을 볼 수 있습니다.

이 문제를 디버깅하기 위해 서버에서 Wireshark 트래픽을 기록했으며 많은 재전송 이벤트를 확인했습니다. http 패킷 중 일부는 정상적으로 전달되었지만 일부는 이러한 재전송을 받고 있으며 이로 인해 시간 초과가 발생하는 것으로 의심됩니다.

서버 CPU는 대부분 Firebird 데이터베이스로 인해 높습니다(50-100%). 서버가 호스팅되는 클라우드 제공업체에는 SSD 디스크가 없으며, 이것이 문제가 될 수 있다는 것을 알고 있습니다.

한 가지 이상한 점은 Wireshark 기록에서 사용자의 http 요청을 볼 수 없다는 것입니다. 수신된 패킷을 찾는 방법은 다음과 같습니다.

여기에 이미지 설명을 입력하세요

실패한 특정 IP에서 요청을 잡으려고 시도했을 때 TCP 재전송만 받았습니다(따라서 요청 자체는 표시되지 않습니다). 중요한지 확실하지 않지만 연결은 포트 443에 있습니다. 다음은 모양의 예입니다.

여기에 이미지 설명을 입력하세요

  1. Firebird 데이터베이스가 사용 중이거나 CPU가 높기 때문에 WireShark에 http 요청을 등록하지 않고도 http 패킷이 낮은 수준(4~5초 후)으로 삭제될 수 있습니까?

  2. 디스크를 SSD로 변경할 수 없으므로 CPU를 업그레이드하면 이 문제를 해결하는 데 도움이 될 수 있다고 생각하시나요?

  3. 성능을 향상시킬 수 있는 Apache 또는 Firebird 구성이 있습니까?

문제에 대한 추가 정보를 얻기 위해 수집할 수 있는 다른 정보가 있습니까?

관련 정보