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

Buku Putih Lag Game › L11 Disk

Batas IOPS dan antrean jenuh IOPS limit / queue saturation

ID penyebab dk-iops · Penanggung jawab utama Infrastruktur server (Tim Infrastruktur) · Turut terlibat Pengembangan server (Tim Pengembang Game), Infrastruktur DB (Tim Infrastruktur)

Buka kartu interaktif dengan gambar dan simulasi →

Jika permintaan melebihi jumlah yang bisa diproses disk per detik, antrean memanjang dan latensi melonjak tajam.

Mengapa Permintaan baca dan tulis mendekati kemampuan proses disk → Akibatnya Antrean memanjang (biasanya melonjak tajam saat utilisasi 90% atau lebih) → Di layar Penyimpanan dan loading tertunda; jika pemanggilannya sinkron, terjadi freeze

Gejala
Input lag, Freeze
Faktor
Latensi, Stall
Siapa yang mengalami
Seluruh server
Kapan
Saat banyak pemain berkumpul, Jam sibuk malam hari
Penanggung jawab
Penanggung jawab utama Infrastruktur server (Tim Infrastruktur) · Turut terlibat Pengembangan server (Tim Pengembang Game), Infrastruktur DB (Tim Infrastruktur)
Tugas Tim Pengembang Game
Gabungkan permintaan, simpan data yang sering dibaca di cache, gunakan I/O asinkron agar thread game tidak menunggu disk.
Tugas Tim Infrastruktur
Server/OS: gunakan disk yang lebih cepat, periksa batas bandwidth disk dan IOPS per tipe instance, pasang alert utilisasi dan antrean disk, salin file besar di jam sepi. Server DB: pasang alert utilisasi IOPS dan throughput untuk disk DB juga, periksa batas disk pada spesifikasi instance DB.
Kisaran angka
HDD sekitar 150 IOPS, SSD SATA puluhan ribu, NVMe ratusan ribu IOPS. Disk standar cloud (AWS gp3) 3.000 IOPS dan 125 MiB per detik. Batas throughput per detik ini terpisah dari IOPS, dan jika salinan file besar menghabiskannya, penulisan kecil pun ikut tertahan.
Di grafik
Mendatar di batas · IOPS, panjang antrean disk
Yang diperiksa
Periksa r/s dan w/s, rkB/s dan wkB/s, aqu-sz, serta r_await dan w_await di iostat -x 1. Di cloud, periksa VolumeReadOps, VolumeWriteOps, dan VolumeQueueLength di EBS, indikator pelampauan batas VolumeIOPSExceededCheck dan VolumeThroughputExceededCheck, serta InstanceEBSIOPSExceededCheck dan InstanceEBSThroughputExceededCheck di sisi instance
Cocok jika
Jumlah permintaan per detik atau throughput mendatar di nilai batas, dan aqu-sz serta await melonjak bersamaan. Di cloud, metrik pemeriksaan pelampauan bernilai 1
Tidak cocok jika
%util 100% tetapi await rendah: mungkin masih ada ruang. Pada SSD dan RAID yang memproses permintaan secara paralel, %util tidak menunjukkan batas. Belum mencapai batas tetapi hanya await yang tinggi: lebih mungkin latensi disk itu sendiri (dk-hdd) atau fsync (dk-fsync)
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Pelajari lebih lanjut
Di cloud, selain batas disk, setiap spesifikasi server (tipe instance) juga punya batas bandwidth disk dan IOPS. Walaupun disk mahal dipasang, jika servernya kecil, kinerjanya tertahan di batas instance.

Sumber

  1. Exos X18 Data Sheet Seagate
    Baca acak 4K pada HDD server 7.200 rpm: 170 IOPS (QD16)
  2. D3-S4520 SSD Solidigm
    Baca/tulis acak 4 KB pada SSD SATA server: maksimal 92K/48K IOPS
  3. Solidigm™ D7-P5520 and D7-P5620 Product Brief Solidigm
    Baca/tulis acak pada SSD NVMe server: 1.000K/200K IOPS
  4. Amazon EBS General Purpose SSD volumes AWS
    Performa dasar gp3 3.000 IOPS dan 125 MiB/s; keduanya batas terpisah yang bisa dinaikkan masing-masing
  5. Amazon EBS-optimized instance types AWS
    Setiap tipe instance punya batas baseline dan maksimum tersendiri untuk bandwidth, throughput, dan IOPS EBS
  6. iostat(1) — Linux manual page sysstat
    -x: r/s dan w/s, rkB/s dan wkB/s, aqu-sz (nama lamanya avgqu-sz), r_await dan w_await, %util. Pada RAID dan SSD modern yang memproses permintaan secara paralel, %util tidak menunjukkan batas performa
  7. Amazon CloudWatch metrics for Amazon EBS AWS
    VolumeIOPSExceededCheck dan VolumeThroughputExceededCheck: bernilai 1 jika ada upaya melewati batas IOPS atau throughput volume (instance Nitro), VolumeQueueLength
  8. CloudWatch metrics that are available for your instances AWS
    InstanceEBSIOPSExceededCheck dan InstanceEBSThroughputExceededCheck: bernilai 1 jika ada upaya melewati batas IOPS atau throughput EBS instance

Lihat juga

Lapisan yang sama: L11 Disk

Penyebab di lapisan lain dengan gejala yang sama (Input lag)

Lihat kartu interaktif dengan gambar dan simulasi