소규모 전자 상거래 사이트에서 EC2의 OpenLiteSpeed ​​서버 시간이 초과되었습니다.

소규모 전자 상거래 사이트에서 EC2의 OpenLiteSpeed ​​서버 시간이 초과되었습니다.

잘 지내시길 바랍니다. 저는 OpenLiteSpeed ​​웹 서버에서 WooCommerce를 사용하여 Wordpress 사이트를 실행하고 있는데 PHP 사용량이 많으면 시간 초과 504 오류가 표시되기 시작합니다. 저는 AWS에서 모든 것을 호스팅하고 있으며 504 오류의 원인과 이를 방지하기 위해 개선할 수 있는 점을 파악하기 위해 고군분투하고 있습니다. 다음은 몇 가지 세부정보입니다.

AWS 설정:

  • 웹 서버는 Ubuntu 20.04 amd64 및 50Gb EBS 스토리지(I/O 최적화 활성화)가 포함된 t3.medium 인스턴스에 설치됩니다. 현재 약 10Gb가 사용되고 있습니다.
  • PHP 7.4 실행 및
  • 저는 CDN용으로 두 개의 CloudFront 배포판을 사용하고 있습니다. 하나는 서버 이미지(S3)에, 다른 하나는 서버 CSS/JS 파일에 사용됩니다.
  • 웹 서버에 대한 트래픽을 관리하는 ELB가 있고 유휴 시간 초과가 300초로 설정되어 있습니다.
  • Mariadb 10.5.13을 실행하는 db.t3.small RDS 인스턴스(100Gb gp2)가 있고 데이터베이스 크기는 약 1.5gGb입니다.
  • 저는 세 개의 캐시.t3.micro 노드가 있는 Redis ElastiCache를 사용하고 있습니다.

사이트 통계:

  • 사이트의 조회수는 주당 최대 1,000회입니다.
  • 약 350개의 제품 페이지와 50페이지.
  • 페이지 크기는 500kb에서 13.5Mb까지입니다.

뭐가 문제 야?

  • 짧은 시간 내에 OLS 캐시를 여러 번(약 3~4회) 플러시하거나 탐색을 통해 제품 업로드(및 이미지 첨부), 이미지 업로드 등 무거운 PHP 기능을 사용할 때 사이트에서 시간 초과가 발생하고 504 오류가 발생합니다. 여러 제품 페이지를 열고 장바구니에 추가하는 사이트입니다.
  • EC2 CPUUtilization에서는 최대 피크가 99%로 표시되지만 네트워크 대역폭은 2.0Gb의 최대 피크에 도달해도 괜찮은 것 같고 CPU 크레딧은 안정적으로 유지됩니다.
  • DB 연결은 분당 50개로 최고조에 달하며 CPU 사용률은 20%~30% 사이에서 변동합니다.
  • 버스트 크레딧은 안정적으로 유지됩니다.
  • stderr.log에는 "최대 하위 프로세스 제한 도달: 35, 추가: 0, 현재: 35, 사용 중: 35, LSAPI_CHILDREN을 늘리십시오."라는 내용이 많이 표시됩니다.

스크린샷(EC2 인스턴스):

CPU사용률%

넷인+넷아웃

CPU 크레딧 잔액

지금까지 시도한 것:

  • 최대 연결 및 하위 프로세스를 350으로 늘리려고 시도했지만 시간 초과 문제가 남아 있습니다.
  • php.ini 메모리 제한을 512mb로 늘렸지만 아무런 차이가 없었습니다.
  • db 스토리지를 30Gb에서 100Gb로 늘리려고 시도했지만 운이 없었습니다.
  • EC2 인스턴스 스토리지를 30Gb에서 50Gb로 늘리려고 시도했지만 다시는 성공하지 못했습니다.

질문/도움이 필요함:

  • 내 설정에 따라 포인트 시간 초과 근본 원인을 찾아내려면 어떤 측정항목(및 해당 집계)을 찾아야 합니까? AWS에는 정보가 너무 많아서 실제로 바늘을 움직일 수 있는 것이 무엇인지 혼란스럽습니다.
  • 더 많은 CPU 성능을 허용하려면 EC2 인스턴스를 확장해야 합니까? 0r RDS 인스턴스를 확장해야 합니까? 아니면 없나요? 예산이 부족하므로 이 옵션은 실제로 실현 가능하지 않습니다.
  • 웹 서버에 시도할 수 있는 구성이 있습니까? 도움이 된다면 내 conf 파일을 업로드할 수 있습니다.
  • 관리형 호스팅으로 모든 것을 옮기고 오래오래 행복하게 살아야 할까요?

미리 감사드립니다

관련 정보