미국 중부 지역 서버가 Google Cloud 부하 분산기 뒤에서 어려움을 겪고 있는 이유(최대 CPU)는 무엇인가요?

미국 중부 지역 서버가 Google Cloud 부하 분산기 뒤에서 어려움을 겪고 있는 이유(최대 CPU)는 무엇인가요?

Google Cloud Platform에 부하 분산 환경이 구성되어 있습니다. 로드 밸런서 뒤에는 구성이 거의 동일한 두 대의 서버가 있습니다. 하나의 서버는 미국 동부 지역에 있고 다른 하나는 미국 중부 지역에 있습니다. 미국 동부 지역의 서버는 전체 부하를 자체적으로 쉽게 처리하며 평균 CPU 사용량은 약 45%입니다. 중앙 지역의 서버를 로드 밸런서에 추가할 때마다 CPU가 갑자기 급증하고 로드 밸런서에 연결되어 있는 한 약 99%의 사용량을 유지합니다.

추가 배경: 서버는 ASP.NET Umbraco 7 웹 사이트를 실행하는 Windows 서버입니다. 또한 MariaDB를 실행하는 두 개의 데이터베이스 서버가 있는데, 하나는 마스터이고 다른 하나는 복제 슬레이브입니다. 동부 서버는 마스터(동부 지역에도 있음)에 연결됩니다. 중앙 서버는 슬레이브(역시 중앙 지역에 있음)에 연결됩니다.

중앙 서버가 어려움을 겪고 있는 이유에 대해 설명할 수 있는 사람이 있습니까?

내가 시도한 것들:

  • 중앙 서버의 스트레스를 어느 정도 완화할 수 있다고 생각하여 동부 서버로 더 많은 요청을 보내도록 균형 매개변수를 조정했습니다.
  • 중앙서버를 동부지역의 마스터 데이터베이스에 연결해 보았습니다.
  • 어딘가 손상으로 인해 문제가 발생할 경우를 대비해 사이트 파일의 새로운 사본을 업로드했습니다.
  • 나는 Google의 (자동화된) 조언을 따르고 RAM을 늘렸습니다(처음에는 그다지 스트레스를 받지 않았으며 사용량이 50%를 넘지 않았습니다).
  • 중앙 지역에서도 완전히 새로운 서버를 가동하여 처음부터 구성해 보았습니다. 동일한 성능 문제.

현재 제가 알 수 있는 최선의 것은 서버가 상태 검사기 핑을 따라잡는 데 어려움을 겪고 있는데 다른 서버는 왜 어려움을 겪지 않는다는 것입니다. 문제를 일으키는 다른 지역에 있는 것이 있나요?

아직 시도하지 않은 것들입니다. 다음 사항에 대해 우선순위를 자유롭게 제안해 보세요.

  • 중앙서버를 다른 지역으로 이전합니다.
  • 중앙 서버를 다른 서버와 함께 동부 지역으로 이전합니다.
  • CPU 추가

마지막 것은 근본적인 문제를 찾는 것보다 증상을 치료하는 것처럼 보이기 때문에 피하려고 합니다.

답변1

우선 Google L7 로드 밸런서는 요청자에게 가장 가까운 백엔드로 트래픽을 라우팅하려고 시도합니다. 귀하의 경우, 동부 해안에서 오는 모든 요청은 us-east 백엔드로 이동하고, 북미의 다른 모든 요청은 us-central로 이동합니다. 이는 예상된 동작입니다.

관리 콘솔 > 네트워크 서비스 > 로드 밸런싱으로 이동한 후 "고급 메뉴"를 클릭하면 L7LB 트래픽 분포를 확인할 수 있습니다. 여기에서 "백엔드 서비스"로 이동하여 LB 백엔드를 클릭하세요. 이제 백엔드 내에서 인스턴스당 RPS를 볼 수 있습니다. 2개의 별도 백엔드를 사용하는 경우 각 백엔드를 개별적으로 확인할 수 있습니다.

미국 중앙 서버의 볼륨이 훨씬 높으면 CPU 사용량도 높아집니다.

상태 확인과 관련하여 확인 빈도를 완전히 제어할 수 있습니다(이상적으로는 us-east 서버의 빈도와 일치해야 함). Compute Engine > 상태 확인 또는 부하 분산기 세부정보 화면에서 상태 확인을 검토할 수 있습니다.

현재로서는 이것이 문제이므로 메모리를 늘리지 않고도 언제든지 CPU를 늘릴 수 있습니다. 그러나 이는 문제가 아닌 증상만 해결합니다.

위 내용은 Google Cloud Platform 측면에서 찾아야 할 사항을 설명합니다. 두 인스턴스에 대한 트래픽이 거의 동등한 경우 서버 성능 모니터링을 시작하여 CPU 사용량을 최대화하는 것이 무엇인지 확인하여 실제로 다른 응용 프로그램이 아닌 IIS인지 확인하십시오.

관련 정보