Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan instance pembaca khusus untuk analitik
Untuk beban kerja analitik yang berat, jalankan kueri tabel asing Anda pada instance pembaca Aurora khusus sehingga tidak mengganggu beban kerja OLTP pada penulis Anda. Saat Anda mengatur pembaca ini, pertimbangkan hal berikut.
-
Sesuaikan
shared_buffers: Kueri terhadap tabel asing tidak digunakanshared_buffers, jadi pada pembaca Anda dapat mengurangishared_buffersdan meningkatkanquery_memuntuk membuat lebih banyak memori tersedia per kueri. -
Prioritas Failover: Karena pembaca disetel untuk analitik daripada lalu lintas transaksional, itu adalah penulis yang buruk jika dipromosikan selama failover. Tetapkan promosi tingkat 15 (prioritas terendah) sehingga Aurora mempromosikan pembaca yang disetel transaksi terlebih dahulu. Aurora masih dapat mempromosikannya sebagai upaya terakhir jika tidak ada contoh lain yang tersedia.
-
Titik akhir instans: Hubungkan klien analitik ke titik akhir instans pembaca atau titik akhir kustom, bukan titik akhir pembaca klaster, yang menyeimbangkan beban di semua pembaca dan mengirimkan kueri tabel asing ke instance yang disetel untuk beban kerja lainnya.
Mengelola kueri yang berjalan lama pada pembaca
Long-running Kueri tabel asing pada pembaca memengaruhi penulis dan pembaca.
-
Dampak pada penulis: Kueri tabel asing yang sudah berjalan lama pada pembaca menahan pembersihan tupel mati pada penulis. Sementara kueri berjalan, penulis tidak dapat merebut kembali tupel mati yang biasanya dihilangkan kekosongannya, sehingga mereka menumpuk dan menurunkan kinerja pada penulis. Karena kueri tabel asing dapat berjalan selama beberapa menit atau jam, efek ini lebih terasa pada pembaca analitik.
-
Dampak pada pembaca: Kueri tabel asing juga mengakses tabel katalog lokal dan mungkin bergabung dengan tabel PostgreSQL biasa, sehingga menyematkan buffer halaman pada pembaca seperti kueri lainnya. Sementara buffer tersebut disematkan, operasi DDL atau vakum pada penulis dapat memicu konflik replikasi (snapshot, lock, atau buffer pin) yang membatalkan kueri atau memulai ulang pembaca. Karena kueri tabel asing cenderung berjalan lebih lama, mereka lebih mungkin menghadapi konflik ini.
Untuk membatasi efek ini, atur statement_timeout pembaca analitik untuk mengikat berapa lama satu kueri dapat berjalan, dan pantau penulis oldest_reader_feedback_xid_age di Database Insights atau Amazon CloudWatch. Untuk versi terpandu diagnosis ini dan cara menghentikan kueri pemblokiran, lihat Menyelesaikan penghambat vakum yang dapat diidentifikasi di Aurora PostgreSQL di Panduan Pengguna Amazon Aurora.