Menafsirkan hasil performa di AlloyDB Omni pada VM

Pilih versi dokumentasi:

Dokumen ini menjelaskan cara menafsirkan hasil performa di AlloyDB Omni pada VM. Dokumen ini mengasumsikan bahwa Anda sudah memahami PostgreSQL.

Saat Anda membuat grafik throughput dari waktu ke waktu saat variabel lain diubah, biasanya Anda akan melihat peningkatan throughput hingga throughput mencapai titik kehabisan resource.

Gambar berikut menunjukkan grafik penskalaan throughput yang umum. Saat jumlah klien meningkat, workload dan throughput akan meningkat hingga semua resource habis.

Grafik penskalaan throughput yang menunjukkan throughput untuk jumlah klien. Seiring bertambahnya jumlah klien, throughput akan meningkat hingga semua resource habis.
Gambar 1: Gambar yang menunjukkan grafik penskalaan throughput yang umum. Saat jumlah klien meningkat, workload dan throughput akan meningkat hingga semua resource habis.

Idealnya, saat Anda menggandakan beban pada sistem, throughput juga akan berlipat ganda. Dalam praktiknya, akan ada pertentangan pada resource yang menyebabkan peningkatan throughput yang lebih kecil. Pada titik tertentu, kehabisan atau pertentangan resource akan menyebabkan throughput menjadi datar atau bahkan menurun. Jika Anda mengoptimalkan throughput, ini adalah poin penting yang perlu diidentifikasi karena akan mendorong upaya Anda untuk menyesuaikan sistem aplikasi atau database guna meningkatkan throughput.

Alasan umum throughput menjadi datar atau menurun mencakup hal berikut:

  • Kehabisan resource CPU di server database
  • Kehabisan resource CPU di klien sehingga server database tidak dikirimi lebih banyak pekerjaan
  • Pertentangan kunci database
  • Waktu tunggu I/O saat data melebihi ukuran kumpulan buffer Postgres
  • Waktu tunggu I/O karena penggunaan mesin penyimpanan
  • Hambatan bandwidth jaringan yang menampilkan data ke klien

Latensi dan throughput berbanding terbalik. Saat latensi meningkat, throughput akan menurun. Secara intuitif, hal ini masuk akal. Saat hambatan mulai terwujud, operasi akan mulai membutuhkan waktu lebih lama dan sistem akan melakukan lebih sedikit operasi per detik.

Grafik penskalaan latensi yang menunjukkan latensi tetap konstan hingga terjadi gesekan karena pertentangan resource.
Gambar 2: Gambar yang menunjukkan grafik penskalaan latensi yang umum. Latensi tetap konstan hingga terjadi gesekan karena pertentangan resource.

Grafik penskalaan latensi menunjukkan perubahan latensi saat beban yang ditempatkan pada sistem meningkat. Latensi tetap relatif konstan hingga terjadi gesekan karena pertentangan resource. Titik infleksi kurva ini umumnya sesuai dengan perataan kurva throughput dalam grafik penskalaan throughput.

Cara berguna lainnya untuk mengevaluasi latensi adalah sebagai histogram. Dalam representasi ini, kita mengelompokkan latensi ke dalam bucket dan menghitung jumlah permintaan yang termasuk dalam setiap bucket.

Grafik penskalaan latensi yang menunjukkan latensi tetap konstan hingga terjadi gesekan karena pertentangan resource.
Gambar 3: Gambar yang menunjukkan histogram latensi yang umum. Latensi tetap konstan hingga terjadi gesekan karena pertentangan resource.*

Histogram latensi ini menunjukkan bahwa sebagian besar permintaan berada di bawah 100 milidetik, dan latensi lebih lama dari 100 milidetik. Memahami penyebab permintaan dengan ekor latensi yang lebih panjang dapat membantu menjelaskan variasi performa aplikasi yang terlihat. Penyebab ekor panjang latensi yang meningkat sesuai dengan peningkatan latensi yang terlihat dalam grafik penskalaan latensi yang umum dan perataan grafik throughput.

Histogram latensi paling berguna saat ada beberapa modalitas dalam aplikasi. Modalitas adalah kumpulan kondisi operasi normal. Misalnya, sebagian besar waktu aplikasi mengakses halaman yang ada di cache buffer. Sebagian besar waktu, aplikasi memperbarui baris yang ada, tetapi mungkin ada beberapa mode. Sebagian waktu, aplikasi mengambil halaman dari penyimpanan, menyisipkan baris baru, atau mengalami pertentangan kunci.

Saat aplikasi menemukan mode operasi yang berbeda dari waktu ke waktu, histogram latensi akan menampilkan beberapa modalitas ini.

Grafik penskalaan latensi yang menunjukkan latensi tetap konstan hingga terjadi gesekan karena pertentangan resource.
Gambar 4: Gambar yang menunjukkan histogram latensi bimodal yang umum. Latensi tetap konstan hingga terjadi gesekan karena pertentangan resource.

Gambar ini menunjukkan histogram bimodal yang umum, dengan sebagian besar permintaan dilayani dalam waktu kurang dari 100 milidetik, tetapi ada cluster permintaan lain yang membutuhkan waktu 401-500 milidetik. Memahami penyebab modalitas kedua ini dapat membantu meningkatkan performa aplikasi Anda. Mungkin ada lebih dari dua modalitas.

Modalitas kedua mungkin disebabkan oleh operasi database normal, infrastruktur dan topologi heterogen, atau perilaku aplikasi. Beberapa contoh yang perlu dipertimbangkan adalah sebagai berikut:

  • Sebagian besar akses data berasal dari kumpulan buffer PostgreSQL, tetapi beberapa berasal dari penyimpanan
  • Perbedaan latensi jaringan untuk beberapa klien ke server database
  • Logika aplikasi yang melakukan operasi berbeda bergantung pada input atau waktu
  • Pertentangan kunci sporadis
  • Lonjakan aktivitas klien