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 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 terpenggal 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 fitur ini lebih lanjut, lihat Perlindungan penulisan yang terganggu di halaman ringkasan Hyperdisk.
Persyaratan konfigurasi lingkungan
Agar perlindungan penulisan terputus Hyperdisk efektif, penulisan database tidak boleh terfragmentasi sebelum mencapai lapisan penyimpanan. Bergantung pada database, Anda dapat melakukannya menggunakan salah satu opsi konfigurasi berikut:
Opsi 1: Menyelaraskan lapisan ke batas blok 16 KiB (direkomendasikan untuk MySQL dan PostgreSQL)
Konfigurasi sistem operasi, sistem file, dan lapisan software perantara Anda untuk mempertahankan batas 16 KiB. Saat 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 menjadi 16 KiB (16.384 byte) atau kelipatan pangkat dua 16 KiB yang lebih besar: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 terpenggal di atas lapisan block storage, seperti berikut:
- Menjalankan database dalam container di Google Kubernetes Engine atau Kubernetes yang dihosting sendiri.
- Menyimpan file database pada sistem file
xfs, yang biasanya tidak mendukung ukuran blok yang memadai pada sebagian besar distribusi Linux. - Menggunakan konfigurasi redundant array of independent disks (RAID) atau logical volume manager (LVM) yang menghilangkan 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 dalam opsi 1 asalkan Anda memenuhi
persyaratan berikut:
- Flag RWF_ATOMIC: Aplikasi harus menggunakan panggilan sistem
pwritev2()dengan flagRWF_ATOMIC. Saat menggunakan tanda 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 segera gagal untuk mencegah kerusakan data. - Sistem operasi: Harus berupa kernel Linux versi 6.11 atau yang lebih baru.
- Sistem file: Harus berupa
ext4atauxfspada kernel Linux versi 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 umum). 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, solusi pemantauan terintegrasiCloud de Confiance. 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.