한국어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

Giới hạn hàng chờ đăng nhập, thiếu thời gian giữ chỗ khi kết nối lại Login queue cap / no reconnect grace

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

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

Ngay sau khi ra mắt hoặc bảo trì, lượng kết nối dồn đến khiến hàng chờ đăng nhập chạm giới hạn và từ chối lượt chờ mới, còn người chơi đang chờ chỉ cần mất kết nối trong giây lát là mất chỗ và phải quay về cuối hàng.

Vì sao Số người muốn vào nhiều hơn lượng server đăng nhập nhận được cùng lúc nên phải có hàng chờ, và khi hàng chờ quá dài thì server từ chối lượt chờ mới để tự bảo vệ → Dẫn đến Hàng chờ càng dài thì thời gian chờ càng lâu, và trong lúc đó chỉ cần Wi-Fi hoặc mạng di động rớt trong giây lát là mất chỗ trong hàng → Trên màn hình Không vào được, kẹt loading, game thoát kèm thông báo lỗi khi đang chờ, lại phải chờ từ cuối hàng

Triệu chứng
Không vào được·kẹt loading, Mất kết nối
Yếu tố
Ngưng trệ
Ai gặp phải
Cả server, Chỉ mình tôi
Khi nào
Ngay sau đăng nhập hoặc bảo trì, Giờ cao điểm buổi tối
Phụ trách
Phụ trách chính Phát triển server (Đội phát triển game) · Phối hợp Phát triển client (Đội phát triển game), Hạ tầng server (Đội hạ tầng)
Việc cần làm (Đội phát triển game)
Server: đặt giới hạn hàng chờ theo lượng mà server đăng nhập thực sự xử lý được, giữ chỗ cho người chơi bị ngắt khi đang chờ trong một khoảng thời gian (thời gian giữ chỗ khi kết nối lại), hiển thị số thứ tự và thời gian chờ dự kiến, ghi độ dài hàng chờ, số lượt từ chối, số lần mất kết nối khi đang chờ thành chỉ số. Client: nếu mất kết nối khi đang chờ thì không tắt game mà tự động kết nối lại vào đúng chỗ cũ, giãn khoảng cách thử lại bằng exponential backoff và jitter.
Việc cần làm (Đội hạ tầng)
Thiết bị server·OS: chạy kiểm thử tải trước khi ra mắt để đo giới hạn xử lý của server đăng nhập và lobby, chuẩn bị sẵn thiết bị dự phòng để gắn thêm khi ra mắt, xem chỉ số hàng chờ trên cùng đồ thị với số lượt thử kết nối.
Con số tham khảo
Khi ra mắt bản mở rộng FINAL FANTASY XIV năm 2021, mỗi trung tâm dữ liệu logic từ chối lượt chờ mới khi số người chờ vượt 17.000 (Error 2002). Nếu mất kết nối khi đang chờ, server lobby đợi từ vài chục giây đến 1 phút, và nếu kết nối lại trong khoảng đó thì người chơi được tiếp tục từ giữa hàng chờ.
Trên đồ thị
Chạm giới hạn rồi đi ngang · Độ dài hàng chờ đăng nhập, số lượt bị từ chối do chạm giới hạn, số lần mất kết nối khi đang chờ
Chỗ cần xem
Đặt độ dài hàng chờ, thời gian chờ trung bình, số lượt từ chối do chạm giới hạn, số lần mất kết nối khi đang chờ do server đăng nhập và lobby ghi lại lên cùng đồ thị với số lượt thử kết nối
Đúng nếu
ngay sau khi ra mắt hoặc bảo trì, trong lúc độ dài hàng chờ chạm giới hạn và đi ngang thì số lượt từ chối tăng, và mất kết nối khi đang chờ dồn vào người chơi dùng Wi-Fi hoặc mạng di động
Loại trừ nếu
hàng chờ ngắn mà đăng nhập vẫn chậm → xem DB (db-login-storm) hoặc hàng đợi kết nối của hệ điều hành (so-backlog)
Cách kiểm tra
Cần log và chỉ số của server, client game
Tìm hiểu thêm
Trường hợp đăng nhập ồ ạt làm DB chậm được trình bày ở “Đăng nhập ồ ạt và query N+1”, còn trường hợp hàng đợi kết nối của hệ điều hành bị tràn nằm ở “Tràn hàng đợi kết nối (backlog)”. Mục này nói về vấn đề thiết kế của hàng chờ đăng nhập mà game chủ động đặt ra. Giới hạn hàng chờ là cơ chế an toàn bảo vệ server đăng nhập nên không thể bỏ đi, vì phải từ chối sớm các yêu cầu vượt mức thì mới tiếp tục xử lý được những yêu cầu trong khả năng. Thay vào đó, điều cốt lõi là giảm thiệt hại mà việc bị từ chối và bị ngắt gây ra cho người chơi, bởi hàng chờ càng dài thì lỗi càng dồn vào những người chơi có đường truyền không ổn định như Wi-Fi, mạng di động.
Sự cố thực tế
Square Enix 2021: FINAL FANTASY XIV: tình trạng quá đông khi ra mắt bản mở rộng và lỗi hàng chờ đăng nhập

Nguồn

  1. Response to Congestion (as of Dec. 11) Square Enix
    Mỗi trung tâm dữ liệu logic từ chối lượt chờ mới khi số người chờ vượt 17.000 để server đăng nhập không bị sập (Error 2002); nếu mất kết nối khi đang chờ, server lobby đợi từ vài chục giây đến 1 phút, kết nối lại trong khoảng đó thì tiếp tục từ giữa hàng chờ, quá thời gian thì về cuối hàng
  2. Using load shedding to avoid overload Amazon Builders' Library
    Chặn bớt tải (load shedding): từ chối sớm các yêu cầu vượt mức để tiếp tục xử lý được những yêu cầu trong khả năng

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 (Không vào được·kẹt loading)

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