Bảng conntrack của server bị đầy conntrack table full
ID nguyên nhân so-conntrack · 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), Phát triển client (Đội phát triển game)
Khi bảng theo dõi kết nối (conntrack), nơi tường lửa Linux ghi lại mọi kết nối, chạm giới hạn, gói tin mới sẽ bị bỏ.
Vì sao Kết nối dồn dập và kết nối ngắn lặp lại liên tục làm số mục kết nối tăng → Dẫn đến Bảng đầy, kết nối mới và một phần gói tin bị bỏ → Trên màn hình Không vào được, dịch chuyển tức thời do mất gói không rõ lý do
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), Phát triển client (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Server: giảm kết nối ngắn (tái sử dụng kết nối cho lời gọi giữa các server). Client: khi kết nối thất bại hoặc bị ngắt, tăng dần khoảng cách thử lại và rải ngẫu nhiên.
Việc cần làm (Đội hạ tầng)
Tăng kích thước bảng (nf_conntrack_max), bỏ cổng game khỏi theo dõi (NOTRACK trong bảng raw), cảnh báo theo mức sử dụng.
Con số tham khảo
Giới hạn mặc định khoảng 60.000–260.000 mục tùy bộ nhớ server. Khi tràn, log kernel in ra “nf_conntrack: table full, dropping packet”.
Trên đồ thị
Chạm giới hạn rồi đi ngang · Số mục conntrack (nf_conntrack_count)
Chỗ cần xem
net.netfilter.nf_conntrack_count (số mục hiện tại) trong sysctl, đặt cùng đồ thị với nf_conntrack_max; tìm “nf_conntrack: table full, dropping packet” trong dmesg
Đúng nếu
nf_conntrack_count đi ngang ở mức max, và từ lúc đó log kernel in ra table full
Loại trừ nếu
số mục còn cách xa max. Giới hạn theo dõi kết nối của chính instance AWS thì xem conntrack_allowance_exceeded ở “Vượt giới hạn PPS trên cloud”
Cách kiểm tra
Kiểm tra bằng công cụ hạ tầng (không cần code game)
Nguồn
Netfilter Conntrack Sysfs variablesLinux kernel Giá trị mặc định của nf_conntrack_max bằng số hash bucket (nf_conntrack_buckets), và số bucket được xác định theo dung lượng bộ nhớ
net/netfilter/nf_conntrack_core.c (Linux v6.12)Linux kernel Kích thước mặc định là 65.536 nếu bộ nhớ trên 1 GB, 262.144 nếu trên 4 GB (64-bit); khi đầy, kernel ghi “nf_conntrack: table full, dropping packet” rồi bỏ gói