Metrik pemakaian CPU

Halaman ini menjelaskan metrik penggunaan CPU yang disediakan Spanner. Anda dapat melihat metrik ini di konsol Google Cloud 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 dieksekusi 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 kueri batch, pemeliharaan, atau analisis yang tidak memiliki SLO performa yang ketat.

    Tugas dengan prioritas lebih tinggi umumnya akan dijalankan sebelum tugas dengan prioritas lebih rendah. Spanner memungkinkan tugas dengan prioritas tinggi menggunakan hingga 100% resource CPU yang tersedia meskipun ada tugas dengan prioritas lebih rendah yang bersaing. Meskipun tugas sistem dengan prioritas lebih rendah dapat tertunda 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 dengan lebih cepat. Lonjakan penggunaan latar belakang bukanlah tanda adanya masalah. Tugas berprioritas lebih rendah dapat menghasilkan tugas berprioritas lebih tinggi, termasuk tugas pengguna, hampir seketika.

Tabel berikut menunjukkan contoh untuk setiap tugas:

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

Metrik yang tersedia

Spanner menyediakan metrik berikut untuk penggunaan CPU:

  • Pemakaian CPU yang dihaluskan: Rata-rata bergulir dari total penggunaan CPU, sebagai persentase dari 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 selama 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.

  • CPU Utilization by priority: Pemakaian CPU, sebagai persentase dari resource CPU instance, yang dikelompokkan menurut prioritas, tugas yang dimulai pengguna, dan tugas yang dimulai sistem. Gunakan metrik ini untuk membuat pemberitahuan dan menganalisis penggunaan CPU pada tingkat tinggi. Anda dapat melihat diagram untuk metrik ini di konsol Google Cloud atau di konsol Cloud Monitoring.

  • Pemakaian CPU menurut jenis operasi: Pemakaian CPU, sebagai persentase dari resource CPU instance, yang dikelompokkan menurut operasi yang dimulai pengguna seperti operasi baca, tulis, dan commit. Gunakan metrik ini untuk mendapatkan perincian penggunaan CPU yang mendetail 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 penggunaan CPU, seperti yang dijelaskan nanti.

Tabel berikut menentukan rekomendasi kami untuk penggunaan CPU maksimum untuk instance regional, dual-region, dan multi-region. Angka ini untuk memastikan bahwa instance Anda memiliki kapasitas komputasi yang memadai untuk terus menayangkan traffic Anda jika seluruh zona (untuk instance regional) atau seluruh region (untuk instance dual-region dan multi-region) hilang.

Metrik Maksimum untuk instance regional Maksimum per region untuk instance dual-region dan multi-region
Total prioritas tinggi 65% 45%
Gabungan yang dihaluskan selama 24 jam 90% 90%

Untuk membantu Anda tetap berada di bawah batas 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 memengaruhi latensi permintaan. Kelebihan beban pada server backend individual akan memicu latensi permintaan yang lebih tinggi. Aplikasi harus menjalankan benchmark dan pemantauan aktif untuk memverifikasi bahwa Spanner memenuhi persyaratan performanya.

Dengan demikian, 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, penggunaan CPU instance Spanner dapat mencapai di atas 100%. Artinya, instance menggunakan lebih banyak resource CPU daripada jumlah yang dikonfigurasi untuk instance.

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 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 guna mendapatkan performa yang konsisten.

Pelanggan tidak ditagih untuk penggunaan CPU tambahan ini.

Mengurangi penggunaan CPU

Bagian ini menjelaskan cara mengurangi penggunaan CPU instance.

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

Meningkatkan kapasitas komputasi

Jika Anda melebihi batas maksimum yang direkomendasikan untuk penggunaan CPU, sebaiknya tingkatkan kapasitas komputasi instance Anda 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 jumlah kapasitas komputasi yang Anda perlukan, pertimbangkan penggunaan CPU dengan prioritas tinggi puncak serta rata-rata yang dihaluskan selama 24 jam. Selalu alokasikan kapasitas komputasi yang memadai untuk menjaga penggunaan CPU di bawah maksimum yang direkomendasikan. Seperti yang dijelaskan sebelumnya, Anda mungkin perlu mengalokasikan kapasitas komputasi tambahan untuk aplikasi yang sensitif terhadap performa (misalnya, untuk mengakomodasi lonjakan beban kerja).

Jika Anda tidak memiliki kapasitas komputasi yang memadai, Spanner akan menunda tugas berdasarkan level prioritas. Tugas sistem dengan prioritas rendah, seperti pemadatan database dan validasi perubahan skema, dapat ditangguhkan 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 prioritas rendahnya dalam jangka waktu tertentu—sekitar beberapa jam hingga satu hari—karena resource komputasi yang tidak memadai, Spanner dapat meningkatkan prioritas tugas sistem. Perubahan ini memengaruhi performa tugas pengguna.

Menyelidiki lebih lanjut dengan alat introspeksi

Jika metrik CPU Utilization by operation type 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 pemanfaatan CPU yang tinggi.

Langkah selanjutnya