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

Sách trắng lag game › L11 Ổ đĩa

Ghi core dump Core dump writing

ID nguyên nhân dk-coredump · 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 server sập, việc ghi vài GB bộ nhớ xuống ổ đĩa có thể làm việc khởi động lại chậm mất vài phút.

Vì sao Server crash, ghi toàn bộ bộ nhớ ra file → Dẫn đến Không thể khởi động lại trong lúc ghi vài GB → Trên màn hình Server sập làm mất kết nối, sau đó rất lâu vẫn không vào được

Triệu chứng
Không vào được·kẹt loading
Yếu tố
Ngưng trệ
Ai gặp phải
Cả server
Khi nào
Thỉnh thoảng bất chợt
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)
Cân nhắc dùng dump nhỏ chỉ chứa phần bộ nhớ cần thiết (minidump), sửa nguyên nhân crash.
Việc cần làm (Đội hạ tầng)
Giới hạn kích thước dump (cấu hình core dump của OS), ổ đĩa nhanh, tách việc khởi động lại khỏi việc dump (nén và tải dump lên được xử lý riêng sau khi đã khởi động lại).
Trên đồ thị
Rớt kết nối hàng loạt · Số kết nối, thời điểm khởi động lại server
Chỗ cần xem
Đặt cạnh nhau thời điểm crash, kích thước file core (coredumpctl list, info, hoặc file ở chỗ core_pattern trỏ tới), thời điểm ghi file xong, thời điểm dịch vụ chạy lại, và xem wkB/s của iostat -x trong khoảng đó
Đúng nếu
sau crash, trong lúc ghi file core vài GB, lượng ghi ổ đĩa bám sát giới hạn, và chỉ khi ghi xong thì việc khởi động lại mới bắt đầu
Loại trừ nếu
core dump đã tắt hoặc ghi xong nhanh vì nhỏ mà khởi động lại vẫn chậm → quá trình khởi động server như loading bản đồ hoặc cache lạnh của DB (db-cold-cache)
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)

Nguồn

  1. core(5) — Linux manual page Linux man-pages
    Giới hạn kích thước file core bằng RLIMIT_CORE, chọn vùng bộ nhớ cần ghi bằng coredump_filter, pipe core dump sang một chương trình để xử lý riêng
  2. Minidump Files Microsoft
    Minidump chỉ chứa phần hữu ích của thông tin crash dump nên tạo nhanh và nhỏ
  3. coredumpctl(1) — Linux manual page systemd
    list: danh sách core dump còn trong journal (TIME là thời điểm crash do kernel báo), info: chi tiết từng dump và kích thước đã ghi xuống ổ đĩa
  4. iostat(1) — Linux manual page sysstat
    -x: wkB/s (lượng ghi ổ đĩa mỗi giây)

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

Cùng tầng: L11 Ổ đĩa

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