Metodologi pengujian performa untuk AlloyDB Omni di VM

Pilih versi dokumentasi:

Dokumen ini menjelaskan rekomendasi untuk menjalankan uji performa di AlloyDB Omni pada VM. Dokumen ini mengasumsikan bahwa Anda sudah memahami PostgreSQL.

Saat mengukur performa, tentukan apa yang ingin Anda pelajari dari pengujian sebelum memulai. Contoh:

  • Berapa throughput maksimum yang dapat dicapai sistem?
  • Berapa lama waktu yang diperlukan untuk kueri atau beban kerja tertentu?
  • Bagaimana perubahan performa saat jumlah data meningkat?
  • Bagaimana perbandingan performa dua sistem yang berbeda?
  • Seberapa besar Columnar Engine mengurangi waktu respons performa kueri saya?
  • Seberapa besar beban yang dapat ditangani database sebelum saya harus mempertimbangkan untuk mengupgrade ke mesin yang lebih canggih?

Memahami tujuan studi performa Anda akan menentukan tolok ukur yang Anda jalankan, lingkungan yang diperlukan, dan metrik yang perlu Anda kumpulkan.

Kemampuan pengulangan

Untuk menarik kesimpulan dari pengujian performa, hasil pengujian harus dapat diulang. Jika hasil pengujian Anda memiliki variasi yang luas, akan sulit untuk menilai dampak perubahan yang Anda lakukan pada aplikasi atau konfigurasi sistem. Menjalankan pengujian beberapa kali atau dalam jangka waktu yang lebih lama untuk memberikan lebih banyak data dapat membantu menurunkan jumlah variasi.

Idealnya, pengujian performa harus dijalankan pada sistem yang terisolasi dari sistem lain. Menjalankan di lingkungan tempat sistem eksternal dapat memengaruhi performa aplikasi Anda dapat menyebabkan penarikan kesimpulan yang salah. Isolasi penuh sering kali tidak mungkin dilakukan saat berjalan di lingkungan cloud multi-tenant, jadi Anda harus mengharapkan variabilitas yang lebih besar dalam hasilnya

Bagian dari pengulangan adalah memastikan bahwa workload pengujian tetap sama di antara pengujian. Beberapa keacakan dalam input ke pengujian dapat diterima selama keacakan tersebut tidak menyebabkan perilaku aplikasi yang berbeda secara signifikan. Jika input klien yang dibuat secara acak mengubah campuran pembacaan dan penulisan dari satu proses ke proses lainnya, performa akan sangat bervariasi.

Ukuran database, pola I/O, dan caching

Pastikan jumlah data yang Anda gunakan untuk pengujian mewakili aplikasi Anda. Menjalankan pengujian dengan sedikit data saat Anda memiliki ratusan gigabyte atau terabyte data kemungkinan tidak akan memberikan representasi yang akurat tentang performa aplikasi Anda. Ukuran set data juga memengaruhi pilihan yang dibuat pengoptimal kueri. Kueri terhadap tabel pengujian kecil dapat menggunakan pemindaian tabel yang memberikan performa buruk pada skala yang lebih besar dan Anda tidak akan mengidentifikasi indeks yang tidak ada dalam konfigurasi ini.

Berusahalah untuk mereplikasi pola I/O aplikasi Anda. Rasio baca dan tulis penting untuk profil performa aplikasi Anda.

Durasi Benchmark

Dalam sistem yang kompleks, ada banyak informasi status yang dipertahankan saat sistem dijalankan: koneksi database dibuat, cache diisi, proses dan thread dibuat. Pada awal pengujian performa, inisialisasi komponen ini dapat menggunakan resource sistem dan memengaruhi performa yang diukur secara negatif jika runtime beban kerja terlalu singkat.

Sebaiknya jalankan pengujian performa setidaknya selama 20 menit untuk meminimalkan efek pemanasan sistem. Ukur performa selama kondisi stabil setelah startup dan cukup lama untuk memastikan semua aspek operasi database disertakan. Misalnya, titik pemeriksaan database adalah fitur penting dari sistem database dan dapat berdampak signifikan pada performa. Menjalankan tolok ukur singkat yang selesai sebelum interval titik pemeriksaan menyembunyikan faktor penting ini dalam perilaku aplikasi Anda.

Pengujian metodis

Saat menyesuaikan performa, ubah hanya satu variabel dalam satu waktu. Jika Anda mengubah beberapa variabel di antara beberapa kali menjalankan, Anda tidak akan dapat mengisolasi variabel mana yang meningkatkan performa. Bahkan, beberapa perubahan dapat saling meniadakan sehingga Anda tidak akan melihat manfaat dari perubahan yang tepat. Jika server database terlalu banyak digunakan, coba beralih ke mesin dengan lebih banyak vCPU sambil menjaga beban tetap konstan. Jika server database kurang dimanfaatkan, coba tingkatkan beban sambil mempertahankan konfigurasi CPU yang konstan.

Topologi dan latensi jaringan

Topologi jaringan sistem Anda dapat memengaruhi hasil pengujian performa. Latensi antar-zona berbeda. Saat melakukan pengujian performa, memastikan bahwa klien dan cluster database berada di zona yang sama akan meminimalkan latensi jaringan dan menghasilkan performa terbaik–terutama untuk aplikasi dengan throughput tinggi dan transaksi singkat karena latensi jaringan dapat menjadi komponen besar dari waktu respons transaksi secara keseluruhan.

Saat membandingkan performa dua sistem yang berbeda, pastikan topologi jaringan sama untuk kedua sistem. Perhatikan bahwa variabilitas latensi jaringan tidak dapat dihilangkan sepenuhnya, bahkan dalam zona yang sama, mungkin ada perbedaan latensi karena topologi jaringan yang mendasarinya.

Saat men-deploy aplikasi, Anda mungkin ingin lebih memahami dampak latensi lintas zona dengan mempertimbangkan aplikasi web bervolume tinggi yang umum. Aplikasi memiliki load balancer yang mengirim permintaan ke beberapa server web yang di-deploy di beberapa zona untuk ketersediaan tinggi. Latensi mungkin berbeda, bergantung pada server web mana yang memproses permintaan karena perbedaan latensi lintas zona.

Gambar berikut menunjukkan arsitektur umum aplikasi web yang menggunakan AlloyDB Omni. Permintaan klien ditangani oleh load balancer, yang meneruskan setiap permintaan ke salah satu server web dari banyak server web. Semua server web terhubung ke AlloyDB Omni. Beberapa server berada di zona yang berbeda dengan tempat AlloyDB Omni berjalan, dan akan mengalami latensi yang lebih tinggi saat membuat permintaan database.

Diagram alur yang menunjukkan arsitektur aplikasi web umum.
Gambar 1: Diagram arsitektur aplikasi web umum. Kita akan mengharapkan latensi yang lebih rendah saat server web di Zona B membuat permintaan ke database karena berada di zona yang sama dengan database AlloyDB Omni.

Pemantauan Resource

Untuk mengoptimalkan performa sistem database, Anda perlu memantau penggunaan resource sistem database dan sistem klien yang menggunakan sistem database. Dengan memantau kedua sistem, Anda dapat memastikan bahwa sistem klien memberikan beban kerja yang cukup untuk mendapatkan pengukuran yang bermakna dalam sistem database. Memantau pemakaian resource sistem yang Anda uji sangatlah penting. Memantau pemanfaatan resource sistem klien yang Anda gunakan untuk mendorong beban kerja sama pentingnya. Misalnya, jika Anda ingin menentukan jumlah maksimum klien yang dapat didukung oleh sistem database sebelum kehabisan resource CPU, Anda akan memerlukan sistem klien yang memadai untuk menghasilkan beban kerja yang diperlukan untuk menggunakan semua resource CPU dalam sistem database. Anda tidak akan dapat mendorong sistem database dengan cukup kuat jika mesin klien yang menghasilkan beban tidak memiliki CPU yang memadai.

Pengujian skalabilitas

Pengujian skalabilitas adalah aspek lain dari pengujian performa. Skalabilitas mengacu pada perubahan metrik performa saat satu karakteristik beban kerja bervariasi. Beberapa contoh studi skalabilitas meliputi:

  • Bagaimana peningkatan jumlah permintaan serentak mengubah throughput dan waktu respons?
  • Bagaimana peningkatan ukuran database mengubah throughput dan waktu respons?

Pengujian skalabilitas terdiri dari beberapa kali menjalankan beban kerja dengan satu dimensi yang bervariasi di antara setiap kali menjalankan dan satu atau beberapa metrik yang dikumpulkan dan diplot. Jenis pengujian ini memberikan informasi untuk mengambil keputusan tentang hambatan yang ada dalam sistem, seberapa besar beban yang dapat ditangani sistem dengan konfigurasi tertentu, beban maksimum yang dapat didukung sistem, dan perilaku sistem saat beban meningkat di luar tingkat tersebut.

Pertimbangan ukuran mesin

AlloyDB Omni memperkenalkan banyak fitur baru ke Postgres untuk meningkatkan keandalan dan ketersediaan database. Pemantauan yang diperlukan untuk melakukan hal ini menggunakan resource di mesin yang menjalankan AlloyDB Omni. Pada ukuran mesin yang sangat kecil, resource memori dan CPU yang tersedia sangat terbatas, jadi untuk benchmarking, sebaiknya gunakan ukuran mesin dengan minimal empat vCPU.