ID penyebab dk-fsync · Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur), Infrastruktur DB (Tim Infrastruktur)
Permintaan agar data ditulis ke disk secara “pasti” memakan 0,1 ms hingga puluhan ms per kali tergantung disknya, dan jika permintaan menumpuk, antreannya memanjang.
Mengapa Permintaan penulisan pasti menumpuk karena penyimpanan berkala dan gelombang logout → Akibatnya Antrean disk memanjang → Di layar Lag setiap kali waktu penyimpanan tiba, logout dan pindah channel tertunda
Penanggung jawab utama Pengembangan server (Tim Pengembang Game) · Turut terlibat Infrastruktur server (Tim Infrastruktur), Infrastruktur DB (Tim Infrastruktur)
Tugas Tim Pengembang Game
Gabungkan penyimpanan (beberapa penyimpanan dengan satu fsync), sebar waktu penyimpanan.
Tugas Tim Infrastruktur
Server/OS: gunakan SSD server dengan power-loss protection, pantau panjang antrean disk dan latensi fsync. Server DB: jika penyimpanan masuk ke DB, gunakan SSD yang sama untuk disk log DB, pantau latensi commit.
Kisaran angka
Waktu per kali berbeda di setiap perangkat, tetapi kira-kira: SSD server (dengan power-loss protection) 0,1 ms, SSD biasa 1 hingga beberapa ms, disk cloud 1–2 ms, HDD minimal 10 ms. Jika satu thread menunggu satu per satu, HDD bahkan tidak sanggup 100 kali per detik.
Di grafik
Melonjak secara berkala · Panjang antrean disk, latensi flush dan tulis
Yang diperiksa
Tumpangkan f/s dan f_await (jumlah flush yang diproses disk dan waktunya), serta w/s, aqu-sz, dan w_await di iostat -x 1 dengan waktu penyimpanan berkala dan logout. sysstat versi lama menampilkan aqu-sz sebagai avgqu-sz. Untuk disk cloud, periksa VolumeQueueLength dan VolumeAvgWriteLatency di EBS
Cocok jika
Setiap waktu penyimpanan dan gelombang logout, jumlah flush dan panjang antrean melonjak bersamaan, dan w_await serta f_await menjadi beberapa kali lipat dari biasanya. Saat itu penyimpanan dan pindah channel melambat
Tidak cocok jika
Antrean melonjak di waktu yang tidak berkaitan dengan penyimpanan atau logout: lebih mungkin backup dan kompresi (dk-backup) atau batas IOPS (dk-iops). Jumlah flush tetap tetapi melambat: lebih mungkin burst credit habis (dk-burst)
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Sumber
fsync(2) — Linux manual pageLinux man-pages fsync juga mengosongkan cache disk dan memblokir sampai perangkat melaporkan selesai
Reliability (PostgreSQL Documentation)PostgreSQL Disk SATA biasa dan banyak SSD punya cache tulis yang isinya hilang saat listrik padam, sehingga penyimpanan yang pasti membutuhkan cache dengan baterai atau power-loss protection
Amazon EBS General Purpose SSD volumesAWS Latensi disk standar cloud (gp3) dalam kisaran satu digit ms, io2 Block Express rata-rata kurang dari 500 µs untuk I/O 16 KiB
iostat(1) — Linux manual pagesysstat -x: f/s dan f_await (jumlah permintaan flush yang diproses disk dan waktu rata-ratanya), w/s, w_await, aqu-sz (nama lamanya avgqu-sz)
Amazon CloudWatch metrics for Amazon EBSAWS VolumeQueueLength (jumlah permintaan yang menunggu selesai), VolumeAvgWriteLatency (rata-rata latensi tulis per 1 menit, instance Nitro)