Selain buffer bersama dalam memori PostgreSQL standar, cache disk AlloyDB Omni memungkinkan penyimpanan buffer di penyimpanan cepat seperti solid-state drive (SSD). Penyimpanan dalam cache disk mempercepat pengambilan data di penginstalan AlloyDB Omni dengan direktori data yang berada di penyimpanan yang lebih lambat.
Seperti buffer bersama PostgreSQL, cache disk AlloyDB Omni tidak persisten, yang berarti data yang di-cache akan hilang saat dimulai ulang.
Secara default, cache disk AlloyDB Omni menggunakan semua penyimpanan yang dilaporkan oleh sistem file. Anda dapat menentukan jumlah penyimpanan yang dicadangkan untuk data caching menggunakan parameter omni_disk_cache_file_size
.
Mengaktifkan cache disk AlloyDB Omni
Untuk mengaktifkan cache disk untuk AlloyDB Omni dalam container, ikuti langkah-langkah berikut.
Menyediakan disk dan membuat sistem file
Untuk cache disk AlloyDB Omni, Anda membuat sistem file di satu atau beberapa disk dan memasangnya di dalam container dengan AlloyDB Omni. Selain itu, Anda dapat menggunakan utilitas seperti mdadm
atau lvm
untuk menggabungkan kapasitas menggunakan beberapa disk dan menggunakan sistem file apa pun.
Langkah-langkah berikut menunjukkan penggunaan lvm
dan ext4
pada instance Ubuntu Compute Engine menggunakan SSD NVMe.
Buat grup volume dari semua perangkat fisik yang tersedia:
nvme_prefix="STORAGE_PREFIX" nvme_list=$(ls "$nvme_prefix"*) sudo vgcreate VOLUME_GROUP ${nvme_list}
Ganti kode berikut:
STORAGE_PREFIX
: awalan jalur disk lokal target yang terpasang ke mesin virtual menggunakan antarmuka nonvolatile memory express (NVMe)—misalnya, di Google Cloud, jalur perangkat NVMe selalu dimulai dengan/dev/nvme0n
.VOLUME_GROUP
: nama grup volume tempat SSD Anda digabungkan—misalnya,omni-disk-cache-volume
.
-
Untuk membuat volume logis dari kapasitas kosong grup volume dari langkah sebelumnya, gunakan perintah berikut:
sudo lvcreate -n LOGICAL_VOLUME -l 100%FREE VOLUME_GROUP
Ganti
LOGICAL_VOLUME
dengan nama volume logis yang diperlakukan sebagai partisi oleh LVM—misalnya,omni_disk_cache_device
. - Buat sistem file
ext4
pada volume logis. Jika perlu, Anda dapat menentukan opsiext4
lainnya yang tunduk pada keamanan data.sudo mkfs.ext4 /dev/VOLUME_GROUP/LOGICAL_VOLUME
Untuk membuat direktori yang berfungsi sebagai titik pemasangan di mesin host dan memasang sistem file, gunakan perintah berikut:
sudo mkdir /OMNI_DISK_CACHE_DIRECTORY sudo mount /dev/VOLUME_GROUP/LOGICAL_VOLUME /OMNI_DISK_CACHE_DIRECTORY
Ganti
OMNI_DISK_CACHE_DIRECTORY
dengan nama direktori atau jalur ke direktori yang berfungsi sebagai titik pemasangan—misalnya,omni_disk_cache_directory
.
Pasang direktori cache di dalam AlloyDB Omni
Sebelum mengaktifkan cache disk untuk AlloyDB Omni yang berjalan dalam container, Anda harus memasang direktori cache di dalam AlloyDB Omni.
Untuk mengetahui informasi tentang cara menginstal AlloyDB Omni dari image Docker dan menyesuaikannya, lihat Menyesuaikan penginstalan AlloyDB Omni.
Untuk memasang OMNI_DISK_CACHE_DIRECTORY
di dalam container Docker yang menjalankan AlloyDB Omni, gunakan perintah berikut:
Docker
sudo docker run --name CONTAINER_NAME
-e POSTGRES_PASSWORD=PASSWORD
-e PGDATA=/var/lib/postgresql/data/pgdata
-v DATA_DIR:/var/lib/postgresql/data
-v /OMNI_DISK_CACHE_DIRECTORY:/CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
-d google/alloydbomni
Ganti kode berikut:
CONTAINER_NAME
: nama yang akan ditetapkan ke penampung AlloyDB Omni baru—misalnya,my-omni
.PASSWORD
: sandi untuk administrator root database PostgreSQL Anda.DATA_DIR
: jalur sistem file yang Anda inginkan agar AlloyDB Omni gunakan untuk direktori datanya.CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
: direktori cache di dalam container AlloyDB Omni yang dipetakan ke titik pemasangan di mesin host—misalnya, berdasarkan nilai direktori cache di dalam container, baik/omni_disk_cache_directory
, mirip denganOMNI_DISK_CACHE_DIRECTORY
, atau/disk/cache/inside/container
.
Podman
podman run --name CONTAINER_NAME
-e POSTGRES_PASSWORD=PASSWORD
-e PGDATA=/var/lib/postgresql/data/pgdata
-v DATA_DIR:/var/lib/postgresql/data
-v /OMNI_DISK_CACHE_DIRECTORY:/CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
-d docker.io/google/alloydbomni
Ganti kode berikut:
CONTAINER_NAME
: nama yang akan ditetapkan ke penampung AlloyDB Omni baru—misalnya,my-omni
.PASSWORD
: sandi untuk administrator root database PostgreSQL Anda.CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
: direktori cache di dalam container AlloyDB Omni yang dipetakan ke titik pemasangan di mesin host—misalnya, berdasarkan nilai direktori cache di dalam container, baik/omni_disk_cache_directory
, mirip denganOMNI_DISK_CACHE_DIRECTORY
, atau/disk/cache/inside/container
.
Untuk memberikan izin akses penuh ke OMNI_DISK_CACHE_DIRECTORY
yang di-mount, gunakan perintah berikut:
Docker
sudo docker exec -it CONTAINER_NAME chown postgres:postgres /CACHE_DIRECTORY_PATH_INSIDE_CONTAINER sudo docker exec -it CONTAINER_NAME chmod -R a+rw /CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
Podman
sudo podman exec -it CONTAINER_NAME chown postgres:postgres /CACHE_DIRECTORY_PATH_INSIDE_CONTAINER sudo podman exec -it CONTAINER_NAME chmod -R a+rw /CACHE_DIRECTORY_PATH_INSIDE_CONTAINER
Mengaktifkan cache disk AlloyDB Omni
Untuk mengaktifkan cache disk AlloyDB Omni untuk database Anda, tetapkan parameter Grand Unified Configuration (GUC) yang sesuai setelah Anda memastikan bahwa direktori cache yang ter-mount dapat diakses dari dalam container Docker.
-
Untuk terhubung ke database AlloyDB Omni dalam penampung sebagai superuser, gunakan perintah berikut:
Docker
sudo docker exec -it CONTAINER_NAME psql -h localhost -U postgres
Podman
sudo podman exec -it CONTAINER_NAME psql -h localhost -U postgres
-
Untuk menetapkan nilai parameter, gunakan perintah berikut di dalam database AlloyDB Omni:
alter system set omni_disk_cache_enabled=on; alter system set omni_disk_cache_directory='/CACHE_DIRECTORY_PATH_INSIDE_CONTAINER';
-
Secara default, AlloyDB Omni menggunakan semua ruang yang tersedia di sistem file. Anda dapat mengganti nilai default menggunakan parameter
omni_disk_cache_file_size
jika diperlukan.alter system set omni_disk_cache_file_size=SIZE_IN_MB;
-
Agar perubahan parameter konfigurasi caching diterapkan, mulai ulang container yang sedang berjalan dengan AlloyDB Omni:
Docker
sudo docker restart CONTAINER_NAME
Podman
sudo podman restart CONTAINER_NAME
Memverifikasi konfigurasi cache disk
Setelah mengaktifkan cache disk AlloyDB Omni, verifikasi bahwa cache disk diakses dengan memantau aktivitas baca dan tulis ke disk menggunakan utilitas seperti iotop
atau iostat
.
Selain itu, Anda dapat memeriksa apakah cache disk AlloyDB Omni terbuka.
Untuk memverifikasi konfigurasi cache disk untuk AlloyDB Omni dalam penampung, ikuti langkah-langkah berikut:
Docker
sudo docker logs CONTAINER_NAME 2>&1 | grep "opened omni disk cache"
Podman
sudo podman logs CONTAINER_NAME 2>&1 | grep "opened omni disk cache"
Jika penyiapan cache disk Anda dikonfigurasi dengan benar, pesan
Successfully opened omni disk cache ...
akan ditampilkan di log.