全部产品
Search
文档中心

AnalyticDB:Optimasi parameter kinerja

更新时间:Jul 02, 2025

AnalyticDB for PostgreSQL adalah layanan siap pakai yang cocok untuk berbagai skenario. Anda juga dapat mengonfigurasi parameter database untuk meningkatkan kinerja AnalyticDB for PostgreSQL dan memenuhi kebutuhan bisnis tertentu.

Tingkat parameter

AnalyticDB for PostgreSQL menyediakan empat tingkat parameter. Beberapa parameter hanya dapat diatur pada tingkat tertentu.

Tingkat

Ruang lingkup efektif

Metode pengaturan

Tingkat sistem

Semua pengguna dari semua database dalam suatu instans

Ajukan tiket untuk menghubungi staf O&M.

Tingkat database

Semua sesi dalam database yang ditentukan

Jalankan pernyataan berikut:

ALTER DATABASE name SET parameter { TO | = } { value | DEFAULT };

Tingkat peran

Semua sesi dari pengguna yang ditentukan

Jalankan pernyataan berikut:

ALTER ROLE name SET parameter  { TO | = } { value | DEFAULT };

Tingkat sesi

Sesi saat ini

Jalankan pernyataan berikut:

SET parameter  { TO | = } { value | DEFAULT };

Tabel berikut mencantumkan parameter tingkat sistem yang dapat dimodifikasi dengan mengajukan tiket.

Parameter

Nilai default

Tipe data/Satuan

Nilai valid

gp_autostats_mode

ON_NO_STATS

STRING

NONE, ON_CHANGE, dan ON_NO_STATS

gp_autostats_mode_in_functions

NONE

STRING

NONE, ON_CHANGE, dan ON_NO_STATS

gp_max_slices

50

INT

0 hingga 1000

log_rotation_size

102400

KB

0 hingga 4194304

master.rds_enable_vmem_protect

on

STRING

on dan off

master.rds_max_non_super_conns

500

INT

10 hingga 1000

max_stack_depth

2048

KB

100 hingga 2048000

max_statement_mem

2048000

KB

32768 hingga 2147483647

optimizer

on

STRING

on dan off

random_page_cost

4

DOUBLE

0 hingga 1000

rds.rds_enable_aliyun_oss_endpoint

on

STRING

on dan off

rds.rds_enable_oss_endpoint_whitelist_check

on

STRING

on dan off

rds_max_super_conns

50

INT

10 hingga 100

segment.rds_enable_vmem_proctect

off

STRING

on dan off

segment.rds_max_non_super_conns

1000

INT

10 hingga 3000

statement_mem

2047000

KB

50 hingga 2147483647

statement_timeout

10800000

INT

0 hingga 2147483647

Untuk informasi lebih lanjut tentang parameter tersebut, lihat Parameter Konfigurasi.

Catatan

Kami menyarankan Anda memprioritaskan penggunaan parameter pada tingkat sesi, dan hanya memodifikasi parameter pada tingkat yang lebih tinggi jika yakin bahwa perubahan tersebut tidak akan memengaruhi pengguna lain.

Deskripsi parameter

Tabel berikut menjelaskan parameter terkait kinerja dari AnalyticDB for PostgreSQL.

  • Parameter Terkait Koneksi

    Parameter

    Kondisi untuk berlaku

    Ketergantungan

    Deskripsi

    max_connections

    Restart instans

    Nilai parameter ini pada node komputasi harus tiga hingga lima kali nilai parameter ini pada node koordinator.

    Jumlah maksimum koneksi bersamaan antara node dan server database. Parameter ini harus diatur secara terpisah untuk masing-masing node koordinator dan komputasi. Kami menyarankan Anda menyesuaikan nilai rds_max_non_super_conns alih-alih nilai max_connections. Dalam skenario dengan koneksi singkat yang sangat konkuren, Anda dapat memodifikasi parameter rds_max_non_super_conns menjadi nilai antara 500 dan nilai max_connections. Parameter rds_max_super_conns terkait dengan superuser dan biasanya tidak perlu disesuaikan.

    max_prepared_transactions

    Restart instans

    • Kami menyarankan Anda mengatur parameter ini ke nilai yang sama dengan nilai max_connections.

    • Dua kali nilai max_prepared_transactions harus lebih besar dari nilai rds_max_non_super_conns ditambah nilai rds_max_super_conns.

    Jumlah transaksi dalam status commit dua fase (2PC). Kami menyarankan Anda mengatur parameter ini ke nilai yang sama dengan nilai max_connections. Jika terjadi kesalahan dalam skenario dengan konkurensi tinggi, Anda harus meningkatkan nilai ini.

    rds_max_non_super_conns

    Muat ulang konfigurasi

    • Nilai ini harus kurang dari nilai max_connections.

    • Nilai rds_max_non_super_conns ditambah nilai rds_max_super_conns harus kurang dari atau sama dengan nilai max_connections.

    • Nilai parameter ini pada node komputasi harus tiga hingga lima kali nilai parameter ini pada node koordinator.

    Jumlah maksimum koneksi yang dapat digunakan oleh non-superuser.

    rds_max_super_conns

    Muat ulang konfigurasi

    • Nilai ini harus kurang dari nilai max_connections.

    • Nilai rds_max_non_super_conns ditambah nilai rds_max_super_conns harus kurang dari atau sama dengan nilai max_connections.

    • Nilai parameter ini pada node komputasi harus tiga hingga lima kali nilai parameter ini pada node koordinator.

    Jumlah maksimum koneksi yang dapat digunakan oleh superuser.

  • Parameter Kontrol Memori

    Parameter

    Nilai valid/Satuan

    Kondisi untuk berlaku

    Ketergantungan

    Deskripsi

    shared_buffers

    KB

    Restart instans

    Jika sebagian besar data disimpan dalam tabel berorientasi baris, kami menyarankan Anda mengatur nilai ini menjadi 25% dari ukuran memori instans atau sedikit lebih tinggi untuk node komputasi.

    Ukuran buffer bersama. Parameter ini harus diatur secara terpisah untuk masing-masing node koordinator dan komputasi. Halaman cache pada node koordinator berisi tabel kamus data, dan halaman cache pada node komputasi berisi tabel berorientasi baris. Tabel kolom dioptimalkan-append (AOCO) tidak dipengaruhi oleh ukuran buffer bersama. Dalam kebanyakan kasus, parameter ini tidak perlu dimodifikasi. Jika lebih dari 100.000 tabel dibuat, kami menyarankan Anda meningkatkan nilai ini untuk node koordinator dan komputasi. Jika sebagian besar data disimpan dalam tabel berorientasi baris, kami menyarankan Anda meningkatkan nilai ini untuk node komputasi.

    temp_buffers

    KB

    Muat ulang konfigurasi

    Tidak ada

    Ukuran buffer sementara. Buffer sementara digunakan untuk sesi database mengakses tabel sementara. Nilai default parameter ini adalah 8 MB. Untuk meningkatkan kinerja akses ke tabel sementara yang besar, Anda dapat memodifikasi parameter ini untuk sesi tertentu.

    gp_vmem_protect_limit

    KB

    Restart instans

    gp_vmem_protect_limit = gp_vmem/acting_primary_segments

    Jumlah maksimum memori yang dapat digunakan oleh semua proses postgres pada node komputasi. Satuan: MB. Kueri gagal jika ukuran memori yang lebih besar dari nilai ini diperlukan. Parameter ini harus diatur secara terpisah untuk masing-masing node komputasi utama dan sekunder.

    Anda dapat memperkirakan nilai yang sesuai untuk parameter ini berdasarkan rumus berikut:

    gp_vmem = ((SWAP + RAM) - (7.5 GB + 0.05 × RAM))/1.7
    gp_vmem_protect_limit = gp_vmem/acting_primary_segments

    Nilai acting_primary_segment bisa berupa jumlah node komputasi utama atau gabungan node komputasi utama dan sekunder. Jika kueri Anda gagal, Anda harus meningkatkan nilai ini.

    Catatan

    Jika Anda ingin menetapkan batas memori untuk antrian sumber daya, kami menyarankan Anda memodifikasi parameter antrian sumber daya. Untuk informasi lebih lanjut, lihat Gunakan antrian sumber daya untuk manajemen beban kerja.

    gp_vmem_protect_segworker_cache_limit

    KB

    Restart instans

    Tidak ada

    Cache maksimum proses eksekusi kueri. Jika Anda memiliki sejumlah besar koneksi atau proses idle, Anda mungkin perlu menurunkan nilai ini untuk melepaskan lebih banyak memori dari node komputasi. Parameter ini harus diatur secara terpisah untuk masing-masing node komputasi.

    gp_resqueue_memory_policy

    none, auto, dan eager_free

    Muat ulang konfigurasi

    Tidak ada

    Kebijakan manajemen memori yang digunakan dalam AnalyticDB for PostgreSQL. Rencana kueri berisi beberapa tahap. Jika parameter ini diatur ke eager_free, AnalyticDB for PostgreSQL melepaskan memori yang dialokasikan untuk tahap tersebut di akhir tahap, dan mengalokasikan memori ke tahap berikutnya. Nilai eager_free mengurangi kemungkinan kekurangan memori tetapi menimbulkan overhead kinerja tambahan. Jika parameter ini diatur ke auto, penggunaan memori kueri dikontrol berdasarkan statement_mem dan batas memori antrian sumber daya.

    statement_mem

    KB

    Muat ulang konfigurasi

    • Parameter ini valid ketika gp_resqueue_memory_policy diatur ke auto.

    • Nilai ini tidak boleh lebih besar dari nilai max_statement_mem.

    Memori host yang dialokasikan untuk setiap kueri. Jumlah memori yang dialokasikan berdasarkan parameter ini tidak boleh melebihi max_statement_mem atau batas memori pada antrian sumber daya yang digunakan untuk mengirimkan kueri. Jika gp_resqueue_memory_policy diatur ke auto, penggunaan memori kueri dikontrol berdasarkan statement_mem dan batas memori antrian sumber daya.

    Jika lebih banyak memori diperlukan untuk kueri, file spill sementara pada disk digunakan.

    Anda dapat memperkirakan nilai yang sesuai untuk parameter ini berdasarkan rumus berikut:

    (gp_vmem_protect_limit GB × 0.9)/max_expected_concurrent_queries

    Jika gp_vmem_protect_limit diatur ke 8192 MB (8 GB) dan maksimum 40 kueri bersamaan dengan buffer 10% diasumsikan, nilai berikut dapat dihitung:

    (8GB × 0.9)/40 = 184 MB

    max_statement_mem

    KB

    Muat ulang konfigurasi

    (seghost_physical_memory)/(average_number_concurrent_queries)

    Jumlah maksimum memori yang dapat dialokasikan untuk kueri. Parameter ini membantu menghindari kesalahan kehabisan memori pada node komputasi selama pemrosesan kueri jika statement_mem diatur ke nilai tinggi. Jika gp_resqueue_memory_policy diatur ke auto, penggunaan memori kueri dikontrol berdasarkan statement_mem dan batas memori antrian sumber daya. Nilai ini dapat dihitung berdasarkan rumus berikut dengan mempertimbangkan konfigurasi host node komputasi tunggal:

    (seghost_physical_memory)/(average_number_concurrent_queries)

  • Parameter Terkait Beban Kerja

    Parameter

    Nilai valid/Tipe data

    Kondisi untuk berlaku

    Ketergantungan

    Deskripsi

    gp_resqueue_priority

    BOOLEAN

    Restart instans

    Tidak ada

    Menentukan apakah akan mengaktifkan atau menonaktifkan prioritas kueri. Jika prioritas kueri dinonaktifkan, pengaturan prioritas yang ada tidak dievaluasi saat runtime kueri. Kami menyarankan Anda menonaktifkan antrian prioritas dalam skenario yang memerlukan kinerja kueri tinggi.

    gp_resqueue_priority_cpucores_per_segment

    0.1 hingga 512.0

    Restart instans

    Tidak ada

    Jumlah core CPU yang dialokasikan untuk setiap node komputasi dari suatu instans, yang ditentukan saat Anda membuat instans. Jika parameter ini dikonfigurasi secara tidak tepat, CPU mungkin kurang dimanfaatkan, dan prioritas kueri mungkin tidak berfungsi dengan baik.

    gp_resqueue_priority_sweeper_interval

    500 ms hingga 15000 ms

    Restart instans

    gp_resqueue_priority

    Interval penghitungan ulang pemanfaatan CPU untuk semua pernyataan. Saat pernyataan sedang dieksekusi, bagian CPU-nya dihitung berdasarkan prioritas dan gp_resqueue_priority_cpucores_per_segment. Semakin kecil interval dan semakin sering perhitungan, semakin baik hasil yang dicapai oleh pengaturan prioritas tetapi semakin besar overhead.