Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memantau cache write-through dan slot logis untuk replikasi logis Aurora Postgre SQL
Pantau cache penulisan replikasi logis dan kelola slot logis untuk meningkatkan kinerja cluster Aurora Postgre DB Anda. SQL Berikut, temukan informasi lebih lanjut tentang cache tulis dan slot logis.
Topik
Memantau cache penulisan replikasi logis Aurora Postgre SQL
Secara default, Aurora Postgre SQL versi 14.5, 13.8, 12.12, dan 11.17 dan yang lebih tinggi menggunakan cache write-through untuk meningkatkan kinerja replikasi logis. Tanpa cache write-through, Aurora Postgre SQL menggunakan lapisan penyimpanan Aurora dalam implementasi proses replikasi logis Postgre asli. SQL Ia melakukannya dengan menulis WAL data ke penyimpanan dan kemudian membaca data kembali dari penyimpanan untuk memecahkan kode dan mengirim (mereplikasi) ke targetnya (pelanggan). Hal ini dapat mengakibatkan kemacetan selama replikasi logis untuk cluster Aurora Postgre DB. SQL
Cache write-through meminimalkan ketergantungan pada lapisan penyimpanan Aurora. Alih-alih secara konsisten menulis ke dan membaca dari lapisan ini, Aurora Postgre SQL menggunakan buffer untuk menyimpan WAL aliran logis untuk digunakan selama proses replikasi, mengurangi kebutuhan untuk mengakses disk. Buffer ini adalah SQL cache Postgre asli yang digunakan dalam replikasi logis dan diidentifikasi dalam parameter cluster Aurora Postgre DB sebagai. SQL rds.logical_wal_cache
Saat Anda menggunakan replikasi logis dengan cluster Aurora SQL Postgre DB Anda (untuk versi yang mendukung cache write-through), Anda dapat memantau rasio hit cache untuk melihat seberapa baik kerjanya untuk kasus penggunaan Anda. Untuk melakukannya, sambungkan ke instance tulis cluster Aurora Postgre SQL DB Anda menggunakan psql
dan kemudian gunakan fungsi Auroraaurora_stat_logical_wal_cache
, seperti yang ditunjukkan pada contoh berikut.
SELECT * FROM aurora_stat_logical_wal_cache();
Fungsi mengembalikan output seperti berikut ini.
name | active_pid | cache_hit | cache_miss | blks_read | hit_rate | last_reset_timestamp
-----------+------------+-----------+------------+-----------+----------+--------------
test_slot1 | 79183 | 24 | 0 | 24 | 100.00% | 2022-08-05 17:39...
test_slot2 | | 1 | 0 | 1 | 100.00% | 2022-08-05 17:34...
(2 rows)
Nilai-nilai last_reset_timestamp
telah dipersingkat untuk keterbacaan. Untuk informasi selengkapnya tentang fungsi ini, lihat aurora_stat_logical_wal_cache.
Aurora Postgre SQL menyediakan dua fungsi berikut untuk memantau cache write-through.
Fungsi
aurora_stat_logical_wal_cache
– Untuk dokumentasi referensi, lihat aurora_stat_logical_wal_cache.Fungsi
aurora_stat_reset_wal_cache
– Untuk dokumentasi referensi, lihat aurora_stat_reset_wal_cache.
Jika Anda menemukan bahwa ukuran WAL cache yang disesuaikan secara otomatis tidak cukup untuk beban kerja Anda, Anda dapat mengubah nilai secara rds.logical_wal_cache
manual. Pertimbangkan hal berikut:
-
Ketika
rds.logical_replication
parameter dinonaktifkan,rds.logical_wal_cache
diatur ke nol (0). -
Ketika
rds.logical_replication
parameter diaktifkan,rds.logical_wal_cache
memiliki nilai default 16 MB. -
rds.logical_wal_cache
Parameternya statis dan memerlukan reboot instance database agar perubahan diterapkan. Parameter ini didefinisikan dalam hal blok 8 Kb. Perhatikan bahwa setiap nilai positif kurang dari 32 Kb diperlakukan sebagai 32 Kb. Untuk informasi selengkapnya,wal_buffers
lihat Menulis Ahead Logdi dokumentasi PostgreSQL.
Mengelola slot logis untuk Aurora Postgre SQL
Aktivitas streaming ditangkap dalam tampilan pg_replication_origin_status
. Untuk melihat konten tampilan ini, Anda dapat menggunakan fungsi pg_show_replication_origin_status()
, seperti yang ditunjukkan berikut:
SELECT * FROM pg_show_replication_origin_status();
Anda bisa mendapatkan daftar slot logis Anda dengan menggunakan SQL kueri berikut.
SELECT * FROM pg_replication_slots;
Untuk meletakkan slot logis, gunakan pg_drop_replication_slot
dengan nama slot, seperti yang ditunjukkan dalam perintah berikut.
SELECT pg_drop_replication_slot('test_slot');