Điểm:0

Máy chủ OpenLiteSpeed ​​trên EC2 hết thời gian chờ trên trang web thương mại điện tử nhỏ

lá cờ ph

Hy vọng bạn đang làm tốt - Tôi đang chạy một trang web Wordpress với Wooc Commerce trên máy chủ web OpenLiteSpeed ​​mà việc sử dụng PHP nhiều bắt đầu hiển thị lỗi 504 Hết thời gian chờ.Tôi đang lưu trữ mọi thứ trong AWS và tôi đang cố gắng xác định nguyên nhân gây ra lỗi 504 cũng như những gì có thể được cải thiện để tránh chúng. Dưới đây là một số chi tiết:

Thiết lập AWS:

  • Máy chủ web được cài đặt trong phiên bản t3.medium với Ubuntu 20.04 AMD64 và 50Gb dung lượng lưu trữ EBS (đã bật tối ưu hóa I/O). Khoảng 10Gb đang được sử dụng tính đến thời điểm hiện tại.
  • Chạy PHP 7.4 và
  • Tôi đang sử dụng hai bản phân phối CloudFront cho CDN: một cho máy chủ hình ảnh (trong S3) và một cho các tệp CSS/JS của máy chủ.
  • Tôi có ELB để quản lý lưu lượng truy cập vào máy chủ Web, Thời gian chờ không hoạt động được đặt thành 300 giây.
  • Tôi có phiên bản db.t3.small RDS (100Gb gp2) chạy Mariadb 10.5.13, kích thước cơ sở dữ liệu khoảng 1,5gGb.
  • Tôi đang sử dụng Redis ElastiCache với ba nút cache.t3.micro.

thống kê trang web:

  • Trang web có ~1.000 lượt truy cập mỗi tuần.
  • Khoảng 350 trang sản phẩm và 50 trang.
  • Kích thước trang nằm trong khoảng từ 500kb đến 13,5Mb.

Vấn đề là gì?

  • Trang web đã hết thời gian chờ và đưa ra lỗi 504 khi sử dụng các chức năng PHP nặng như tải sản phẩm lên (và đính kèm hình ảnh vào sản phẩm), tải hình ảnh lên, bằng cách xóa bộ đệm OLS nhiều lần (khoảng 3-4 lần) trong một khoảng thời gian ngắn hoặc điều hướng qua trang web mở một loạt các trang sản phẩm và thêm chúng vào giỏ hàng.
  • EC2 CPUUtilization hiển thị mức cao nhất tối đa là 99% nhưng băng thông mạng có vẻ ổn khi đạt mức cao nhất tối đa là 2.0Gb và tín dụng CPU vẫn ổn định.
  • Kết nối Db đạt mức cao nhất là 50 mỗi phút và mức sử dụng CPU dao động trong khoảng từ 20% đến 30%.
  • Tín dụng bùng nổ vẫn ổn định.
  • stderr.log hiển thị rất nhiều "Đã đạt đến giới hạn quy trình con tối đa: 35, bổ sung: 0, hiện tại: 35, bận: 35, vui lòng tăng LSAPI_CHILDREN.".

Ảnh chụp màn hình (ví dụ EC2):

CPUUtilization%

NetIn+NetOut

Số dư tín dụng CPU

Những gì tôi đã cố gắng cho đến nay:

  • Tôi đã cố gắng tăng kết nối tối đa và quy trình con lên 350 nhưng vấn đề hết thời gian chờ vẫn còn.
  • Tôi đã tăng giới hạn bộ nhớ php.ini lên 512mb, nhưng không tạo ra bất kỳ sự khác biệt nào.
  • Đã thử tăng dung lượng lưu trữ db từ 30Gb lên 100Gb, không gặp may.
  • Đã thử tăng dung lượng lưu trữ phiên bản EC2 từ 30Gb lên 50Gb nhưng một lần nữa không gặp may.

Câu hỏi/Cần trợ giúp:

  • Dựa trên thiết lập của tôi, tôi nên tìm những chỉ số nào (và tổng hợp của chúng) để xác định nguyên nhân gốc rễ hết thời gian chờ? AWS có quá nhiều thông tin khiến tôi bối rối về những gì thực sự có thể di chuyển kim.
  • Tôi có nên tăng quy mô phiên bản EC2 của mình để tăng thêm sức mạnh cho CPU không? Tôi có nên mở rộng quy mô phiên bản RDS của mình không? hay không? Tôi bị hạn chế về ngân sách nên phương án này không thực sự khả thi.
  • Có bất kỳ cấu hình nào tại máy chủ web mà tôi có thể thử không? Tôi có thể tải lên tệp conf của mình nếu điều đó hữu ích.
  • Tôi có nên chuyển mọi thứ sang dịch vụ lưu trữ được quản lý và sống hạnh phúc mãi mãi không?

Cảm ơn trước

lá cờ jp
Đối với máy chủ 2 CPU 4 GB RAM, bộ đệm ẩn sẽ không gây ra sự cố hết thời gian chờ PHP. Có lẽ bạn có thể gửi một vé tới [email protected] để được hỗ trợ thêm.
Tim avatar
lá cờ gp
Tim
1000 lượt truy cập mỗi tuần là một yêu cầu cứ sau _mười phút_, không hoạt động, bạn có một lượng lớn phần cứng cho tải nhỏ đó. Hoặc là tải của bạn cao hơn? Bạn đang sử dụng 2GB mỗi phút như thế nào, đó là 86TB/tháng, LỚN cho 1000 lượt truy cập mỗi giờ. Không đời nào CPU của bạn ở mức 100%, hãy xem đó là vấn đề chính của bạn - hãy sử dụng tiện ích "hàng đầu" của Linux làm điểm bắt đầu. Phiên bản của bạn sẽ hết tín dụng CPU do CPU được cố định ở mức 100%, chạy trên cơ sở là 20% lõi, điều này có thể gây ra thời gian chờ PHP. Tôi nghĩ bạn cần xem lại câu hỏi của mình cho chính xác.
lá cờ ph
@Eric cảm ơn, sẽ làm được.
lá cờ ph
@Tim cảm ơn vì đầu vào của bạn. Tôi đã chỉnh sửa câu hỏi của mình để làm rõ rằng ý tôi là các đỉnh tối đa chứ không phải trung bình mỗi phút, các khoản tín dụng CPU trông không thay đổi. Ví dụ, tôi đã thêm liên kết vào biểu đồ số dư tín dụng CPUUtilization, NetIn+NetOut và CPU.
Tim avatar
lá cờ gp
Tim
Cái đó tốt hơn. Bạn có chắc là chỉ có 1000 yêu cầu trang mỗi tuần không? Đó là mức sử dụng CPU rất thấp. Vui lòng bật nhật ký lỗi/truy cập PHP và tạo lại sự cố. Chỉnh sửa câu hỏi của bạn để bao gồm nhật ký truy cập máy chủ web, nhật ký lỗi/truy cập PHP và nhật ký lỗi máy chủ web cho yêu cầu duy nhất đó. Lý tưởng nhất là làm điều đó cho một vài yêu cầu khác nhau. Tôi nghi ngờ vấn đề là ở PHP vốn rất ngốn CPU, nhưng trình độ CPU của bạn vẫn ổn và tín dụng CPU tốt.
Tim avatar
lá cờ gp
Tim
Một bước chẩn đoán khả thi khác là dừng phiên bản của bạn, thay đổi nó thành loại phiên bản lớn trong 15 phút (m5.4xlarge hoặc thứ gì đó tương tự), thử tạo lại sự cố, dừng và thay đổi lại. Làm điều này thậm chí còn tốt hơn với phiên bản thứ hai được khôi phục từ ảnh chụp nhanh để trang web của bạn không ngừng hoạt động nếu bạn có thể quản lý phiên bản đó và sử dụng phiên bản giao ngay để giảm chi phí.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.