Halaman ini menjelaskan metrik pemanfaatan CPU yang disediakan Spanner. Anda dapat melihat metrik ini di Google Cloud konsol dan di konsol Cloud Monitoring.
Penggunaan CPU dan prioritas tugas
Spanner mengukur pemakaian CPU berdasarkan sumber dan prioritas tugas.
Sumber: Tugas dapat dimulai oleh pengguna atau sistem.
Prioritas: Prioritas membantu Spanner menentukan tugas mana yang harus dijalankan terlebih dahulu. Prioritas tugas sistem telah ditentukan sebelumnya dan tidak dapat dikonfigurasi. Tugas Pengguna berjalan dengan prioritas tinggi, kecuali jika ditentukan lain. Banyak permintaan data, seperti read dan executeSql, memungkinkan Anda menentukan prioritas yang lebih rendah untuk permintaan. Hal ini dapat berguna, misalnya, saat Anda menjalankan batch, pemeliharaan, atau kueri analitis yang tidak memiliki SLO performa yang ketat.
Tugas dengan prioritas lebih tinggi umumnya akan dieksekusi sebelum tugas dengan prioritas lebih rendah. Spanner memungkinkan tugas berprioritas tinggi menggunakan hingga 100% resource CPU yang tersedia meskipun ada tugas berprioritas rendah yang bersaing. Meskipun tugas sistem berprioritas lebih rendah dapat ditunda dalam jangka pendek, tugas tersebut harus dijalankan pada akhirnya. Oleh karena itu, Anda harus menyediakan instance dengan kapasitas komputasi yang memadai untuk menangani semua tugas.
Jika tidak ada tugas dengan prioritas tinggi, Spanner akan menggunakan hingga 100% resource CPU yang tersedia untuk menyelesaikan tugas dengan prioritas lebih rendah secara lebih cepat. Lonjakan penggunaan di latar belakang bukanlah tanda adanya masalah. Tugas berprioritas lebih rendah dapat digantikan oleh tugas berprioritas lebih tinggi, termasuk tugas pengguna, hampir secara instan.
Tabel berikut menunjukkan contoh untuk setiap tugas:
| Tugas pengguna | Tugas sistem | |
|---|---|---|
| Prioritas tinggi | Mencakup permintaan data, seperti read atau executeSql, dengan tidak ada prioritas atau PRIORITY_HIGH yang ditentukan. | Mencakup pemisahan data. |
| Prioritas sedang |
Mencakup:
|
Mencakup:
|
| Prioritas rendah | Mencakup permintaan data dengan PRIORITY_LOW yang ditentukan. |
Mencakup:
|
Metrik yang tersedia
Spanner menyediakan metrik berikut untuk penggunaan CPU:
Penggunaan CPU yang dihaluskan: Rata-rata penggiliran total penggunaan CPU, sebagai persentase sumber daya CPU instance, untuk setiap database. Setiap titik data adalah rata-rata untuk 24 jam sebelumnya. Gunakan metrik ini untuk membuat pemberitahuan dan menganalisis penggunaan CPU dalam jangka waktu yang lama, misalnya, 24 jam. Anda dapat melihat diagram untuk metrik ini di konsol Google Cloud atau di konsol Cloud Monitoring sebagai Rata-rata bergulir 24 jam.
Penggunaan CPU menurut prioritas: Penggunaan CPU, sebagai persentase resource CPU instance, dikelompokkan menurut prioritas, tugas yang dimulai pengguna, dan tugas yang dimulai sistem. Gunakan metrik ini untuk membuat pemberitahuan dan menganalisis penggunaan CPU secara umum. Anda dapat melihat diagram untuk metrik ini di konsol Google Cloud atau di konsol Cloud Monitoring.
Penggunaan CPU menurut jenis operasi: Penggunaan CPU, sebagai persentase dari resource CPU instance, dikelompokkan menurut operasi yang dimulai pengguna seperti baca, tulis, dan commit. Gunakan metrik ini untuk mendapatkan perincian mendetail tentang penggunaan CPU dan untuk memecahkan masalah lebih lanjut, seperti yang dijelaskan dalam Menyelidiki penggunaan CPU yang tinggi. Anda dapat membuat diagram untuk metrik ini di konsol Cloud Monitoring.
Anda juga dapat menggunakan konsol Cloud Monitoring untuk membuat pemberitahuan untuk pemanfaatan CPU, seperti yang dijelaskan nanti.
Pemberitahuan untuk pemakaian CPU yang tinggi
Tabel berikut menentukan rekomendasi kami untuk penggunaan CPU maksimum untuk instance regional, dual-region, dan multi-region. Jumlah ini untuk memastikan bahwa instance Anda memiliki kapasitas komputasi yang memadai untuk terus melayani traffic Anda jika terjadi kehilangan seluruh zona (untuk instance regional) atau seluruh region (untuk instance dual-region dan multi-region).
| Metrik | Maksimum untuk instance regional | Maksimum per region untuk instance dual-region dan multi-region |
|---|---|---|
| Total prioritas tinggi | 65% | 45% |
| Agregat yang dihaluskan 24 jam | 90% | 90% |
Untuk membantu Anda tetap berada di bawah nilai maksimum yang direkomendasikan, buat pemberitahuan di Cloud Monitoring yang melacak penggunaan CPU prioritas tinggi dan penggunaan CPU rata-rata selama 24 jam.
Penggunaan CPU dapat berdampak pada latensi permintaan. Kelebihan beban pada server backend individual akan memicu latensi permintaan yang lebih tinggi. Aplikasi harus menjalankan tolok ukur dan pemantauan aktif untuk memverifikasi bahwa Spanner memenuhi persyaratan performanya.
Oleh karena itu, untuk aplikasi yang sensitif terhadap performa, Anda mungkin perlu mengurangi lebih lanjut pemakaian CPU menggunakan teknik yang dijelaskan di bagian berikut.
Penggunaan CPU lebih dari 100%
Dalam kasus tertentu, pemakaian CPU instance Spanner dapat mencapai di atas 100%. Artinya, instance menggunakan lebih banyak resource CPU daripada jumlah yang dikonfigurasi untuk instance tersebut.
Resource CPU di atas 100% dapat digunakan untuk memberikan performa yang lebih baik dan lebih dapat diprediksi selama lonjakan pemakaian CPU, misalnya, yang disebabkan oleh peningkatan traffic permintaan secara tiba-tiba.
Kapasitas CPU di atas 100% TIDAK dijamin dan tidak boleh diandalkan untuk operasi database normal.
Menjalankan instance Spanner dengan pemakaian CPU mendekati atau lebih dari 100% selama jangka waktu yang lama berisiko menurunkan performa dan latensi operasi normal. Resource CPU tambahan bukanlah mekanisme yang aman untuk diandalkan demi performa yang konsisten.
Pelanggan tidak ditagih untuk penggunaan CPU tambahan ini.
Mengurangi pemakaian CPU
Bagian ini menjelaskan cara mengurangi penggunaan CPU instance.
Secara umum, sebaiknya Anda meningkatkan kapasitas komputasi instance Anda sebagai titik awal. Setelah meningkatkan kapasitas komputasi, Anda dapat menyelidiki dan mengatasi penyebab utama pemakaian CPU yang tinggi.
Meningkatkan kapasitas komputasi
Jika Anda melampaui maksimum yang direkomendasikan untuk pemakaian CPU, sebaiknya
tingkatkan kapasitas komputasi instance Anda agar dapat terus beroperasi secara efektif. Jika ingin mengotomatiskan proses ini, Anda dapat
membuat aplikasi yang memantau pemakaian CPU, lalu menambah atau mengurangi
kapasitas komputasi sesuai kebutuhan, menggunakan metode UpdateInstance.
Untuk menentukan kapasitas komputasi yang Anda butuhkan, pertimbangkan penggunaan CPU prioritas tinggi puncak serta rata-rata yang dihaluskan selama 24 jam. Selalu alokasikan kapasitas komputasi yang cukup untuk menjaga pemakaian CPU di bawah nilai maksimum yang direkomendasikan. Seperti yang dijelaskan sebelumnya, Anda mungkin perlu mengalokasikan kapasitas komputasi tambahan untuk aplikasi yang sensitif terhadap performa (misalnya, untuk mengakomodasi lonjakan workload).
Jika Anda tidak memiliki kapasitas komputasi yang cukup, Spanner akan menunda tugas berdasarkan tingkat prioritas. Tugas sistem berprioritas rendah, seperti pemadatan database dan validasi perubahan skema, dapat ditunda untuk mendukung tugas pengguna. Namun, tugas ini sangat penting untuk kesehatan instance Anda, dan Spanner tidak dapat menundanya tanpa batas waktu. Jika Spanner tidak dapat menyelesaikan tugas sistem berprioritas rendah dalam jangka waktu tertentu—sekitar beberapa jam hingga satu hari—karena resource komputasi yang tidak memadai, Spanner mungkin meningkatkan prioritas tugas sistem. Perubahan ini memengaruhi performa tugas pengguna.
Menyelidiki lebih lanjut dengan alat introspeksi
Jika metrik Penggunaan CPU menurut jenis operasi menunjukkan bahwa jenis operasi tertentu menyebabkan penggunaan CPU yang tinggi, gunakan alat introspeksi Spanner untuk memecahkan masalah lebih lanjut. Untuk informasi selengkapnya, lihat Menyelidiki pemakaian CPU yang tinggi.
Langkah berikutnya
- Pantau instance Anda dengan konsolGoogle Cloud atau konsol Cloud Monitoring.
- Buat pemberitahuan untuk pemanfaatan CPU Spanner.
- Cari tahu cara mengubah kapasitas komputasi instance Spanner.
Pelajari cara menemukan korelasi antara latensi tinggi dan metrik lainnya.
Untuk mempelajari cara memecahkan masalah penggunaan CPU yang tinggi yang disebabkan oleh jenis operasi tertentu, lihat Menyelidiki penggunaan CPU yang tinggi.