CONFIG_PARAVIRT_SPINLOCK adalah opsi kernel Linux yang menambahkan lapisan paravirtualisasi pada spinlock. Di Alibaba Cloud Linux, opsi ini dinonaktifkan secara default. Jika Anda tidak yakin mengenai risikonya, jangan aktifkan opsi tersebut. Dokumen ini menjelaskan mengapa mengaktifkan CONFIG_PARAVIRT_SPINLOCK pada instance Elastic Compute Service (ECS) dapat menurunkan kinerja serta cara memeriksa dan menonaktifkannya.
Deskripsi masalah
Pada instance ECS dengan beberapa vCPU, mengaktifkan CONFIG_PARAVIRT_SPINLOCK secara signifikan mengurangi kinerja aplikasi saat aplikasi bersaing intensif untuk mendapatkan lock. Sebagai contoh, throughput NGINX dalam memproses koneksi singkat mengalami penurunan yang terlihat jelas.
Penyebab
Mengaktifkan CONFIG_PARAVIRT_SPINLOCK menambahkan overhead dan meningkatkan kompleksitas mekanisme spinlock kernel, sehingga menyebabkan degradasi kinerja kernel.
Spinlock adalah mekanisme sinkronisasi yang mencegah beberapa thread atau proses mengakses resource bersama secara bersamaan, guna menjaga konsistensi data.
Solusi
Langkah 1: Periksa apakah CONFIG_PARAVIRT_SPINLOCK diaktifkan
Jalankan perintah berikut untuk memeriksa konfigurasi kernel:
grep CONFIG_PARAVIRT_SPINLOCK /boot/config-$(uname -r)Interpretasikan output:
| Output | Makna |
|---|---|
CONFIG_PARAVIRT_SPINLOCKS=y | Opsi diaktifkan |
CONFIG_PARAVIRT_SPINLOCKS is not set | Opsi dinonaktifkan — tidak perlu tindakan lebih lanjut |
Jika opsi tersebut dinonaktifkan, hentikan proses di sini. Jika diaktifkan, lanjutkan ke Langkah 2.
Langkah 2: Kompilasi ulang kernel dengan opsi tersebut dinonaktifkan
Mengubah konfigurasi kernel dan mengompilasi ulang kernel melibatkan komponen sistem tingkat rendah. Jika Anda tidak terbiasa dengan kompilasi atau instalasi kernel, submit a ticket untuk menghubungi dukungan teknis Alibaba Cloud sebelum melanjutkan.
Kompilasi ulang dan instalasi ulang kernel dengan CONFIG_PARAVIRT_SPINLOCK dinonaktifkan.