Jika server game sering membuka dan menutup koneksi singkat ke DB atau server lain, koneksi yang sudah ditutup tetap menahan port untuk sementara sehingga koneksi baru tidak bisa dibuka.
Mengapa Koneksi baru dibuka dan ditutup untuk setiap permintaan → Akibatnya Pihak yang menutup koneksi lebih dulu menahan port selama sekitar 60 detik (Linux) dalam status TIME_WAIT, sehingga port yang bisa dipakai habis → Di layar Permintaan internal gagal, sehingga penyimpanan data gagal dan fitur mengalami error
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Tugas Tim Pengembang Game
Pakai ulang koneksi (connection pool), jangan membuka dan menutup koneksi baru untuk setiap permintaan.
Tugas Tim Infrastruktur
Perluas rentang port (ip_local_port_range), pertimbangkan pemakaian ulang TIME_WAIT untuk koneksi keluar (tcp_tw_reuse di Linux), pantau jumlah TIME_WAIT.
Kisaran angka
Rentang port default Linux (32768–60999) berisi sekitar 28.000 port. Jika koneksi baru ke alamat tujuan yang sama dibuat lebih dari 470 kali per detik, port akan habis. Windows punya sekitar 16.000 port default (49152–65535) dan TIME_WAIT-nya juga lebih lama, sehingga lebih cepat habis.
Di grafik
Mendatar di batas · Jumlah socket TIME_WAIT, jumlah kegagalan koneksi internal
Yang diperiksa
Hitung socket TIME_WAIT per alamat tujuan dengan ss -tan state time-wait, lalu cari kegagalan connect (EADDRNOTAVAIL) di log server game
Cocok jika
TIME_WAIT ke tujuan yang sama (misalnya DB) mendatar di dekat batas rentang port ephemeral (default sekitar 28.000), dan connect gagal dengan EADDRNOTAVAIL
Tidak cocok jika
TIME_WAIT sedikit tetapi hanya koneksi keluar yang gagal: lebih mungkin “Batas koneksi dan port NAT gateway cloud”
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Pelajari lebih lanjut
TIME_WAIT 60 detik di Linux adalah nilai tetap di kernel. Menurunkan tcp_fin_timeout, yang namanya mirip, tidak memperpendek TIME_WAIT.
Sumber
IP SysctlLinux kernel ip_local_port_range default 32768–60999, tcp_tw_reuse, tcp_fin_timeout adalah lama status FIN_WAIT_2 dipertahankan
TCP/IP port exhaustion troubleshootingMicrosoft Port dinamis Windows default 49152–65535; koneksi yang sudah ditutup menahan port dalam status TIME_WAIT selama 4 menit secara default