Jika server membaca data dungeon atau map dari disk saat pertama kali diminta, semua pemain berhenti selama tick itu.
Mengapa Seseorang masuk ke dungeon atau area untuk pertama kali → Akibatnya Server membaca data dari disk di thread game → Di layar Semua pemain di server itu mengalami freeze sesaat
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur)
Tugas Tim Pengembang Game
Muat data lebih dulu saat server dinyalakan, gunakan pemuatan asinkron.
Tugas Tim Infrastruktur
Untuk server yang baru dibuat dari snapshot, lakukan pemanasan disk sebelum melayani pemain (baca semua blok sekali) atau gunakan fitur fast snapshot restore.
Di grafik
Melonjak acak sesekali · Waktu tick server, pembacaan disk
Yang diperiksa
Cocokkan waktu berhenti dengan catatan masuk pertama ke dungeon atau area di log server game, lalu periksa pembacaan disk server game saat itu (kB_rd/s di pidstat -d) dan pemanggilan read serta open yang lama dengan perf trace --duration. Untuk server cloud yang baru dinyalakan, bandingkan VolumeAvgReadLatency di EBS dengan server lama
Cocok jika
Berhenti hanya saat masuk pertama kali, dan tidak berhenti saat masuk ke tempat yang sama untuk kedua kalinya. Selama berhenti, thread game menunggu pembacaan file
Tidak cocok jika
Berhenti dengan cara yang sama juga di area yang sudah dimuat: lebih mungkin penyebab lain seperti tick yang melewati budget atau GC
Sarana pemeriksaan
Log dan metrik server atau klien game
Pelajari lebih lanjut
Di cloud, server yang baru dibuat dari snapshot (salinan disk) mengambil setiap blok yang pertama kali dibaca dari storage jarak jauh, sehingga jauh lebih lambat daripada biasanya. Jika masuk pertama kali terasa sangat lama hanya di server yang baru dinyalakan oleh autoscaling, curigai penyebab ini.
Sumber
Initialize Amazon EBS volumesAWS Volume yang dibuat dari snapshot mengalami latensi lebih tinggi dan performa lebih rendah selama bloknya diambil dari S3; inisialisasi lebih dulu dengan membaca semua blok menggunakan dd atau fio
Amazon EBS fast snapshot restoreAWS Fast snapshot restore memberikan volume yang sudah terinisialisasi sejak dibuat, sehingga latensi akses pertama hilang