Metrik pemakaian CPU

Halaman ini menjelaskan metrik pemakaian CPU yang disediakan Spanner. Anda dapat melihat metrik ini di Google Cloud Console dan di konsol Cloud Monitoring.

Pemakaian CPU dan prioritas tugas

Spanner mengukur penggunaan 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 sudah ditentukan sebelumnya dan tidak dapat dikonfigurasi. Tugas User dijalankan dengan prioritas tinggi kecuali jika ditentukan lain. Banyak permintaan data, seperti read dan executeSql, memungkinkan Anda menentukan prioritas yang lebih rendah untuk permintaan tersebut. Hal ini dapat berguna, misalnya, saat Anda menjalankan kueri batch, pemeliharaan, atau analisis yang tidak memiliki SLO performa yang ketat.

    Tugas dengan prioritas lebih tinggi umumnya akan dijalankan sebelum tugas berprioritas lebih rendah. Spanner memungkinkan tugas berprioritas tinggi memanfaatkan hingga 100% resource CPU yang tersedia meskipun ada tugas berprioritas lebih rendah yang bersaing. Meskipun tugas sistem dengan prioritas lebih rendah dapat tertunda dalam jangka pendek, tugas tersebut nantinya harus dijalankan. Oleh karena itu, Anda harus menyediakan instance dengan kapasitas komputasi yang cukup untuk menangani semua tugas.

    Jika tidak ada tugas berprioritas tinggi, Spanner akan menggunakan hingga 100% resource CPU yang tersedia untuk menyelesaikan tugas berprioritas lebih rendah dengan lebih cepat. Lonjakan pada penggunaan latar belakang bukanlah pertanda masalah. Tugas dengan prioritas lebih rendah dapat mengakibatkan tugas dengan prioritas lebih tinggi, termasuk tugas pengguna, hampir seketika.

Tabel berikut menampilkan contoh untuk setiap tugas:

Tugas pengguna Tugas sistem
Prioritas tinggi Mencakup permintaan data, seperti read atau executeSql, yang tidak memiliki prioritas atau PRIORITY_HIGH yang ditentukan. Mencakup pemisahan data.
Prioritas sedang Mencakup:
  • Permintaan data yang menentukan PRIORITY_MEDIUM
  • Operasi baca dan tulis yang dikeluarkan dari tugas Dataflow, termasuk Import dan Export.
Mencakup:
Prioritas rendah Mencakup permintaan data yang menentukan PRIORITY_LOW. Mencakup:
  • Mengisi ulang indeks.
  • Mengisi ulang kolom yang dibuat

Metrik yang tersedia

Spanner memberikan metrik berikut untuk penggunaan CPU:

  • Smoothed CPU utilization: Rata-rata penggiliran total penggunaan CPU, sebagai persentase resource 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 lama, misalnya 24 jam. Anda dapat melihat diagram untuk metrik ini di Google Cloud Console atau di konsol Cloud Monitoring sebagai Rolling average 24 jam.

  • Pemakaian CPU berdasarkan prioritas: Pemakaian CPU, sebagai persentase resource CPU instance, yang dikelompokkan menurut prioritas, tugas yang dimulai oleh pengguna, dan tugas yang dimulai oleh sistem. Gunakan metrik ini untuk membuat pemberitahuan dan menganalisis penggunaan CPU secara umum. Anda dapat melihat diagram untuk metrik ini di Google Cloud Console atau di konsol Cloud Monitoring.

  • Pemakaian CPU menurut jenis operasi: Pemakaian CPU, sebagai persentase resource CPU instance, yang dikelompokkan berdasarkan operasi yang dimulai pengguna seperti bacaan, penulisan, dan commit. Gunakan metrik ini untuk mendapatkan perincian penggunaan CPU secara terperinci dan untuk memecahkan masalah lebih lanjut, seperti yang dijelaskan dalam Menyelidiki pemakaian CPU yang tinggi. Anda dapat membuat diagram untuk metrik ini di konsol Cloud Monitoring.

    Anda juga dapat menggunakan konsol Cloud Monitoring guna membuat pemberitahuan untuk penggunaan CPU, seperti yang akan dijelaskan nanti.

Tabel berikut menentukan rekomendasi penggunaan CPU maksimum untuk instance dengan region tunggal dan multi-region. Angka ini dimaksudkan untuk memastikan bahwa instance Anda memiliki kapasitas komputasi yang cukup untuk terus menyalurkan traffic jika seluruh zona hilang (untuk instance dengan region tunggal) atau seluruh region (untuk instance multi-region).

Metrik Maksimum untuk instance dengan satu region Maksimum per region untuk instance multi-region
Total prioritas tinggi 65% 45%
Agregat mulus 24 jam 90% 90%

Untuk membantu Anda tetap di bawah batas maksimum yang direkomendasikan, buat pemberitahuan di Cloud Monitoring yang melacak pemakaian CPU prioritas tinggi dan rata-rata pemakaian CPU selama 24 jam.

Pemakaian CPU dapat berdampak pada latensi permintaan. Kelebihan beban setiap server backend akan memicu latensi permintaan yang lebih tinggi. Aplikasi harus menjalankan benchmark dan pemantauan aktif untuk memverifikasi bahwa Cloud Spanner memenuhi persyaratan performanya.

Oleh karena itu, untuk aplikasi yang sensitif terhadap performa, Anda mungkin perlu mengurangi penggunaan CPU lebih lanjut menggunakan teknik yang dijelaskan di bagian berikut.

Pemakaian 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 penggunaan CPU, misalnya, yang disebabkan oleh peningkatan traffic permintaan yang tiba-tiba.

Kapasitas CPU apa pun di atas 100% TIDAK dijamin dan tidak boleh diandalkan untuk operasi database normal.

Menjalankan instance Spanner mendekati atau di atas 100% penggunaan CPU dalam jangka waktu yang lama berisiko menurunkan latensi dan performa operasi normal. Resource CPU tambahan bukanlah mekanisme yang aman untuk diandalkan dalam menghasilkan performa yang konsisten.

Pelanggan tidak akan ditagih untuk pemakaian CPU tambahan ini.

Mengurangi penggunaan CPU

Bagian ini menjelaskan cara mengurangi pemakaian CPU instance.

Secara umum, sebaiknya tingkatkan kapasitas komputasi instance Anda sebagai titik awal. Setelah meningkatkan kapasitas komputasi, Anda dapat menyelidiki dan mengatasi penyebab utama penggunaan CPU yang tinggi.

Meningkatkan kapasitas komputasi

Jika Anda melebihi batas maksimum penggunaan CPU yang direkomendasikan, sebaiknya tingkatkan kapasitas komputasi instance agar dapat terus beroperasi secara efektif. Jika ingin mengotomatiskan proses ini, Anda dapat membuat aplikasi yang memantau penggunaan CPU, lalu meningkatkan atau mengurangi kapasitas komputasi sesuai kebutuhan, menggunakan metode UpdateInstance.

Untuk menentukan kapasitas komputasi yang Anda perlukan, pertimbangkan puncak pemakaian CPU berprioritas tinggi serta rata-rata yang lancar selama 24 jam. Selalu alokasikan kapasitas komputasi yang cukup agar penggunaan CPU tetap di bawah batas 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 demi 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 rendahnya dalam jangka waktu tertentu—dalam beberapa jam hingga sehari—karena resource komputasi tidak memadai, Spanner dapat meningkatkan prioritas tugas sistem. Perubahan ini memengaruhi performa tugas pengguna.

Menyelidiki lebih lanjut dengan alat introspeksi

Jika metrik Pemakaian CPU menurut jenis operasi menunjukkan bahwa jenis operasi tertentu berkontribusi pada penggunaan CPU yang tinggi, gunakan alat introspeksi Spanner untuk memecahkan masalah lebih lanjut. Untuk informasi selengkapnya, lihat Menyelidiki pemakaian CPU yang tinggi.

Langkah selanjutnya