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

Buku Putih Lag Game › L7 OS server (kernel)

Perubahan performa setelah update OS, kernel, driver, atau firmware Performance regression after OS / kernel / driver / firmware update

ID penyebab so-os-update · Penanggung jawab utama Infrastruktur server (Tim Infrastruktur)

Buka kartu interaktif dengan gambar dan simulasi →

Kode game tidak berubah, tetapi server menjadi lambat sejak OS, kernel, driver, atau firmware server diperbarui. Update bisa mengubah nilai default, scheduler, mitigasi kerentanan CPU (mitigations), dan perilaku driver.

Mengapa Kernel, driver, atau firmware berubah karena patch keamanan rutin atau image server baru → Akibatnya Nilai default atau scheduler berubah, atau mitigasi kerentanan baru aktif, sehingga pekerjaan yang sama butuh waktu CPU lebih banyak dan urutan thread mendapat jatah CPU berubah → Di layar Server yang tadinya lancar selalu sedikit lebih lambat sejak hari update, sehingga terjadi input lag, dan saat pemain ramai terjadi patah-patah atau slow motion

Gejala
Input lag, Patah-patah, Slow motion
Faktor
Latensi, Stall, Jitter
Siapa yang mengalami
Seluruh server
Kapan
Selalu, Saat banyak pemain berkumpul
Penanggung jawab
Penanggung jawab utama Infrastruktur server (Tim Infrastruktur)
Tugas Tim Infrastruktur
Terapkan update ke sebagian server lebih dulu dan bandingkan waktu tick, latensi, dan utilisasi CPU dengan versi sebelumnya sebelum diperluas, deploy di hari yang berbeda dari patch game, catat versi kernel, driver, dan firmware serta nilai sysctl penting sebelum dan sesudah update, jika muncul masalah boot dengan kernel sebelumnya untuk memastikan, putuskan pengaturan yang mematikan mitigasi (mitigations=off) setelah menimbang risiko keamanannya.
Kisaran angka
Jika versi kernel berubah, perilaku default juga berubah. Misalnya, sejak 6.6 Linux mulai beralih dari scheduler CFS ke EEVDF, dan nilai default batas antrean koneksi (somaxconn) berubah dari 128 menjadi 4.096 sejak 5.4. Mitigasi kerentanan CPU menambah pekerjaan, misalnya mengosongkan buffer internal CPU saat kembali dari kernel ke program (setiap kali system call selesai) serta saat context switching dan peralihan virtual machine. Akibatnya, server jaringan yang memanggil system call untuk setiap paket lebih terpengaruh. Untuk menutup sebagian kerentanan secara penuh, SMT (fitur yang membuat satu core bekerja seperti dua thread) harus dimatikan, dan mematikan SMT bisa menurunkan performa secara drastis tergantung beban kerjanya. Parameter kernel mitigations=off mematikan semua mitigasi ini sehingga performa kembali, tetapi server terbuka terhadap kerentanan.
Di grafik
Naik seperti anak tangga · Waktu tick server, utilisasi CPU, latensi pada beban yang sama
Yang diperiksa
Cocokkan riwayat update di package manager dan waktu reboot, versi kernel dari uname -r, serta informasi driver NIC dari ethtool -i dengan waktu latensi naik. Bandingkan server yang sudah dan belum diperbarui pada beban yang sama dengan mpstat dan pidstat, lalu bandingkan juga status mitigasi di /sys/devices/system/cpu/vulnerabilities/
Cocok jika
Latensi dan utilisasi CPU naik satu tingkat sejak reboot setelah update lalu tetap di sana, dan pada beban yang sama hanya server yang sudah diperbarui yang tinggi. Kembali normal jika boot dengan kernel atau driver sebelumnya
Tidak cocok jika
Server yang sudah dan belum diperbarui sama lambatnya pada beban yang sama: bukan penyebab ini. Patch game juga dirilis di hari yang sama dan jumlah atau ukuran paket per pemain berubah: lebih mungkin “Pola trafik berubah akibat patch”
Sarana pemeriksaan
Tools infrastruktur (tanpa perlu kode game)
Pelajari lebih lanjut
Status mitigasi diperiksa di file-file di bawah /sys/devices/system/cpu/vulnerabilities/. Nilai default (mitigations=auto) melakukan mitigasi dengan SMT tetap aktif, tetapi dengan auto,nosmt SMT dimatikan pada CPU yang rentan, sehingga setelah kernel diperbarui jumlah core logis bisa berkurang setengah. Jika OS diperbarui di hari yang sama dengan patch game, penyebabnya sulit dibedakan, jadi deploy keduanya secara terpisah.

Sumber

  1. The kernel’s command-line parameters Linux kernel
    mitigations=: off mematikan semua mitigasi kerentanan CPU untuk menaikkan performa tetapi membuka celah kerentanan; default auto melakukan mitigasi dengan SMT tetap aktif; auto,nosmt mematikan SMT jika perlu
  2. MDS - Microarchitectural Data Sampling Linux kernel
    Mitigasi mengosongkan buffer CPU saat kembali dari kernel ke user space dan saat masuk ke virtual machine; status kerentanan dan mitigasi diperiksa lewat file di bawah /sys/devices/system/cpu/vulnerabilities/; pada banyak CPU, perlindungan penuh mengharuskan SMT dimatikan, dan mematikan SMT berdampak besar pada performa tergantung beban kerjanya
  3. Spectre Side Channels Linux kernel
    Untuk mitigasi, buffer branch prediction dikosongkan saat context switching dan peralihan virtual machine; mitigasi yang kuat menambah overhead pada semua program
  4. EEVDF Scheduler Linux kernel
    Sejak 6.6, Linux mulai beralih dari CFS ke scheduler EEVDF
  5. listen(2) — Linux manual page Linux man-pages
    Nilai default somaxconn berubah dari 128 menjadi 4.096 sejak Linux 5.4
  6. ethtool(8) — Linux manual page ethtool
    Melihat informasi driver perangkat jaringan dengan ethtool -i

Lihat juga

Lapisan yang sama: L7 OS server (kernel)

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

Lihat kartu interaktif dengan gambar dan simulasi