한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Sách trắng lag game › L13 Kiến trúc và vận hành server

Autoscaling chậm Autoscaling lag

ID nguyên nhân in-autoscale · Phụ trách chính Hạ tầng server (Đội hạ tầng) · Phối hợp Phát triển server (Đội phát triển game)

Mở thẻ gốc có hình minh họa và thí nghiệm →

Khi đông người, số server được tự động tăng lên nhưng phải mất vài phút mới sẵn sàng, và trong thời gian đó các server hiện có bị quá tải.

Vì sao Sự kiện bắt đầu làm lượng kết nối tăng vọt → Dẫn đến Mất vài phút để server mới bật lên và sẵn sàng → Trên màn hình Vài phút ngay sau khi sự kiện bắt đầu bị quay chậm, không vào được

Triệu chứng
Quay chậm, Không vào được·kẹt loading
Yếu tố
Ngưng trệ
Ai gặp phải
Cả server
Khi nào
Khi đông người, Ngay sau đăng nhập hoặc bảo trì
Phụ trách
Phụ trách chính Hạ tầng server (Đội hạ tầng) · Phối hợp Phát triển server (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Phân tán theo kênh (người đang ở kênh đã đông thì không thể chuyển sang server mới), rút ngắn thời gian khởi động và tải dữ liệu của server mới.
Việc cần làm (Đội hạ tầng)
Mở rộng trước khi sự kiện bắt đầu, chuẩn bị server dự phòng đã làm nóng, khi thu nhỏ thì chờ người còn lại thoát hết rồi mới tắt.
Con số tham khảo
Mất 1 đến vài phút để phát hiện tải (vì chỉ số được lấy trung bình trong vài phút), rồi thêm vài phút nữa để bật server mới, đọc dữ liệu game và làm đầy cache.
Trên đồ thị
Tăng vọt ngay sau đăng nhập hoặc bảo trì · Số instance, mức sử dụng CPU, hàng chờ đăng nhập
Chỗ cần xem
Chồng nhật ký hoạt động autoscaling (thời điểm quyết định mở rộng, thời điểm instance mới vào phục vụ) lên đồ thị mức sử dụng CPU và số kết nối. Với AWS: chỉ số của Auto Scaling group (phải bật mới thấy) GroupDesiredCapacity (số máy mục tiêu), GroupPendingInstances (đang chuẩn bị), GroupInServiceInstances (đang phục vụ)
Đúng nếu
sau khi kết nối tăng vọt, trong vài phút chỉ có số máy mục tiêu và số instance đang chuẩn bị tăng, CPU của các server hiện có bám sát giới hạn, rồi tình trạng được giải tỏa từ lúc số instance đang phục vụ tăng lên
Loại trừ nếu
instance mới đã vào phục vụ mà vẫn chậm → nguyên nhân nằm ngoài số lượng server (tài nguyên dùng chung như DB, sự cố dây chuyền)
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)
Tìm hiểu thêm
Autoscaling chủ yếu dùng cho những chỗ chỉ cần đưa người mới vào server mới, như đăng nhập, gateway, phó bản. Thu nhỏ cũng gây rắc rối. Nếu lúc rạng sáng vắng người mà giảm server và tắt ngay, không chờ những người còn lại thoát ra, thì những người đó bị mất kết nối.
Sự cố thực tế
AWS 2021: AWS us-east-1: tắc nghẽn mạng nội bộ
AWS 2025: AWS us-east-1: sự cố DNS của DynamoDB và quá trình phục hồi kéo dài

Nguồn

  1. Target tracking scaling policies for Amazon EC2 Auto Scaling AWS
    Chỉ số cơ bản của EC2 có khoảng cách 5 phút (bật giám sát chi tiết thì 1 phút), nên muốn phản ứng nhanh thì khuyến nghị dùng chỉ số có khoảng cách 1 phút trở xuống
  2. Amazon CloudWatch metrics for Amazon EC2 Auto Scaling AWS
    Chỉ số của group phải bật mới được công bố, với chu kỳ 1 phút; GroupDesiredCapacity (số máy muốn duy trì), GroupPendingInstances (số instance chưa vào phục vụ), GroupInServiceInstances (số instance đang phục vụ)
  3. Scheduled scaling for Amazon EC2 Auto Scaling AWS
    Tăng và giảm dung lượng trước vào thời điểm định sẵn, theo những thay đổi tải có thể dự đoán được
  4. Decrease latency for applications with long boot times using warm pools AWS
    Ứng dụng khởi động lâu thì giảm độ trễ mở rộng bằng pool instance đã khởi tạo sẵn (warm pool)

Nguyên nhân nên xem cùng

Cùng tầng: L13 Kiến trúc và vận hành server

Nguyên nhân ở tầng khác gây cùng triệu chứng (Quay chậm)

Xem thẻ gốc có hình minh họa và thí nghiệm