Setelah Anda menyediakan volume Google Cloud Hyperdisk, aplikasi dan sistem operasi Anda mungkin memerlukan penyesuaian performa untuk memenuhi kebutuhan performa Anda.
Di bagian berikut, kami menjelaskan beberapa elemen utama yang dapat disesuaikan untuk meningkatkan performa dan cara menerapkan beberapa elemen ini ke jenis beban kerja tertentu.
Untuk mengetahui ringkasan cara kerja performa Google Cloud Hyperdisk, lihat Tentang performa Hyperdisk.
Menggunakan antrean I/O berkedalaman lebih
Volume Hyperdisk memiliki latensi lebih tinggi daripada disk yang terpasang secara lokal seperti SSD lokal karena merupakan perangkat yang terhubung ke jaringan. API tersebut dapat memberikan IOPS dan throughput yang sangat tinggi, tetapi Anda harus memastikan bahwa permintaan I/O yang cukup dilakukan secara paralel. Jumlah permintaan I/O yang dilakukan secara paralel disebut sebagai kedalaman antrean I/O.
Tabel berikut menunjukkan kedalaman antrean I/O yang direkomendasikan untuk memastikan Anda dapat mencapai level performa tertentu. Tabel ini menggunakan sedikit perkiraan latensi yang lebih tinggi untuk menampilkan rekomendasi konservatif. Contoh ini mengasumsikan bahwa Anda menggunakan ukuran I/O 16 KB.
| IOPS yang diinginkan | Kedalaman antrean |
|---|---|
| 500 | 1 |
| 1.000 | 2 |
| 2.000 | 4 |
| 4.000 | 8 |
| 8.000 | 16 |
| 16.000 | 32 |
| 32.000 | 64 |
| 64.000 | 128 |
| 100.000 | 200 |
| 200.000 | 400 |
| 320.000 | 640 |
| Throughput yang diinginkan (MB/dtk) | Kedalaman antrean |
|---|---|
| 8 | 1 |
| 16 | 2 |
| 32 | 4 |
| 64 | 8 |
| 128 | 16 |
| 256 | 32 |
| 512 | 64 |
| 1.000 | 128 |
| 1.200 | 153 |
Memastikan CPU Anda kosong
Membaca dan menulis ke volume Hyperdisk memerlukan siklus CPU dari VM Anda. Jika instance VM Anda kekurangan CPU, aplikasi Anda tidak akan dapat mengelola IOPS yang dijelaskan sebelumnya. Untuk mencapai level IOPS yang sangat tinggi dan konsisten, Anda harus memiliki CPU yang bebas untuk memproses I/O.
Menonaktifkan perlindungan penulisan yang terpenggal di tingkat database untuk mengoptimalkan penulisan
Karena Google Cloud Hyperdisk menyediakan perlindungan penulisan yang terpenggal bawaan, Anda dapat menonaktifkan fitur perlindungan tingkat database untuk mengurangi overhead I/O dan meningkatkan throughput penulisan database hingga 25%. Untuk mempelajari lebih lanjut fitur ini, lihat Perlindungan penulisan yang terpenggal di halaman ringkasan Hyperdisk.
Persyaratan konfigurasi lingkungan
Agar perlindungan penulisan yang terpenggal Hyperdisk efektif, penulisan database tidak boleh terpenggal sebelum mencapai lapisan penyimpanan. Bergantung pada database Anda, Anda dapat mencapainya dengan menggunakan salah satu opsi konfigurasi berikut:
Opsi 1: Menyelaraskan lapisan ke batas blok 16 KiB (direkomendasikan untuk MySQL dan PostgreSQL)
Konfigurasikan sistem operasi, sistem file, dan lapisan software perantara untuk mempertahankan batas 16 KiB. Jika menggunakan opsi ini, Anda harus mempertahankan konfigurasi khusus ini:
Sistem file: Gunakan sistem file
ext4. Anda harus membuat sistem file dengan opsibigallocdan mengonfigurasi ukuran cluster sistem file ke 16 KiB (16.384 byte) atau kelipatan dua yang lebih besar dari 16 KiB:mkfs.ext4 -O bigalloc -C 16384 /dev/<var>DEVICE_NAME</var>Ganti
DEVICE_NAMEdengan nama perangkat penyimpanan.Konfigurasi yang tidak didukung: Hindari konfigurasi yang dapat menyebabkan penulisan yang terpenggal di atas lapisan block storage, seperti berikut:
- Menjalankan database dalam container di Google Kubernetes Engine atau Kubernetes yang dihosting sendiri.
- Menyimpan file database di sistem file
xfs, yang biasanya tidak mendukung ukuran blok yang memadai di sebagian besar distribusi Linux. - Menggunakan konfigurasi array disk independen yang redundan (RAID) atau pengelola volume logis (LVM) yang menghapus I/O.
- Menggunakan Hyperdisk dengan cache SSD Lokal, termasuk
lvmcache,dm-cache, ataubcache. - Menggunakan virtualisasi bertingkat untuk VM database.
Opsi 2: Menggunakan I/O atomik blok Linux (direkomendasikan untuk MariaDB)
Jika database atau aplikasi Anda mendukung I/O atomik blok Linux dan mengakses
file menggunakan I/O langsung (O_DIRECT), Anda dapat melewati aturan konfigurasi
yang tercantum di opsi 1 asalkan Anda memenuhi
kondisi berikut:
- Flag RWF_ATOMIC: Aplikasi harus menggunakan
pwritev2()panggilan sistem denganRWF_ATOMICflag. Saat menggunakan flag ini, kernel Linux memastikan bahwa operasi tulis diproses sebagai satu blok yang berdekatan oleh perangkat Hyperdisk yang mendasarinya. Jika kernel tidak dapat menjamin atomisitas, panggilan tulis akan langsung gagal untuk mencegah kerusakan data. - Sistem operasi: Harus Linux kernel versi 6.11 atau yang lebih baru.
- Sistem file: Harus
ext4atauxfsdi Linux versi kernel 6.13 atau yang lebih baru. - Akses file: Aplikasi harus membuka file database menggunakan I/O langsung
(
O_DIRECT). - Database yang didukung: Sebaiknya gunakan opsi ini hanya untuk MariaDB versi 11.x atau yang lebih baru (untuk dukungan RWF_ATOMIC Linux generik). MySQL dan PostgreSQL tidak mendukung fitur ini.
Untuk mengetahui petunjuk pengoptimalan khusus database yang mendetail, lihat Mengonfigurasi MySQL di Compute Engine.
Meninjau metrik performa Hyperdisk
Anda dapat meninjau metrik performa disk di Cloud Monitoring, Google Cloud's solusi pemantauan terintegrasi. Anda dapat menggunakan metrik ini untuk mengamati performa disk dan resource VM lainnya di berbagai beban kerja aplikasi.
Untuk mempelajari lebih lanjut, baca Meninjau metrik performa disk.
Anda juga dapat menggunakan halaman Kemampuan observasi di konsol untuk melihat metrik performa disk.