全部产品
Search
文档中心

Hologres:Pembatasan Kecepatan Otomatis (Beta)

更新时间:Feb 05, 2026

Hologres V3.1 dan versi yang lebih baru memungkinkan Anda mengonfigurasi pembatasan kecepatan otomatis untuk antrian kueri. Fitur ini secara dinamis menyesuaikan jumlah maksimum kueri konkuren dalam suatu antrian berdasarkan beban kerja kelompok komputasi guna mencapai kontrol trafik otomatis.

Skenario

Pembatasan kecepatan otomatis secara dinamis menyesuaikan konkurensi maksimum suatu antrian kueri berdasarkan beban sistem. Fitur ini mencegah konsumsi sumber daya berlebihan dengan mengontrol jumlah kueri yang dieksekusi secara konkuren dalam suatu compute group. Anda dapat menggunakan fitur ini dalam skenario berikut:

  • Beban kerja dengan konkurensi tinggi: Saat konkurensi tinggi dan setiap permintaan mengonsumsi sumber daya yang serupa, pembatasan kecepatan otomatis secara dinamis menyesuaikan batas konkurensi. Hal ini menstabilkan penggunaan CPU pada level tinggi namun aman, yaitu di bawah 100% utilisasi.

    Catatan
    • Jika konkurensi terlalu rendah, penyesuaian dinamis dapat menyebabkan penggunaan CPU berfluktuasi tajam dalam pola gergaji, sehingga mengakibatkan pemanfaatan CPU menjadi tidak efisien.

    • Dalam kasus ekstrem, seperti saat hanya satu kueri besar yang berjalan, pembatasan kecepatan otomatis tidak berpengaruh.

  • Latensi kueri yang dapat diterima: Karena fitur ini memberlakukan batas trafik, kueri yang melebihi batas konkurensi akan menunggu dalam antrian, sehingga meningkatkan waktu responsnya.

  • Lonjakan trafik tak terduga: Jika Anda tidak dapat memperkirakan lonjakan volume kueri secara tiba-tiba atau tidak dapat menyediakan sumber daya komputasi yang cukup sebelumnya, pembatasan kecepatan otomatis dapat membantu mengurangi risiko ketidakstabilan.

Pertimbangkan solusi alternatif dalam skenario berikut:

  • Pola lalu lintas yang dapat diprediksi: Jika puncak trafik harian terjadi pada waktu yang konsisten, Anda dapat menggunakan elastisitas berbasis waktu untuk compute group guna menjadwalkan penskalaan.

  • Kueri besar dengan konkurensi rendah: Pembatasan kecepatan otomatis memiliki dampak terbatas pada kueri besar dengan konkurensi rendah. Anda dapat menjalankan kueri tersebut menggunakan sumber daya Serverless Computing. Untuk informasi selengkapnya, lihat Serverless Computing User Guide.

  • Toleransi latensi nol: Untuk mendukung konkurensi tinggi sekaligus latensi rendah, Anda harus menambah sumber daya komputasi. Anda dapat melakukan scale out sumber daya komputasi atau menggunakan fitur kontrol kueri besar untuk meneruskan kueri lambat ke Serverless Computing. Untuk informasi selengkapnya, lihat Large Query Control.

Prasyarat

Anda telah membuat antrian kueri.

Catatan

  • Pembatasan kecepatan otomatis hanya didukung pada instans compute group yang menjalankan Hologres V3.1 atau versi yang lebih baru. Instans tujuan umum tidak mendukung fitur ini.

    Catatan

    Anda dapat mengonversi instans tujuan umum menjadi instans compute group sebelum menggunakan fitur ini. Untuk informasi selengkapnya, lihat Convert a General-Purpose Instance to a Compute Group Instance.

  • Hanya kueri yang dirutekan melalui antrian kueri yang dikenai pembatasan kecepatan otomatis. Ini mencakup kueri yang memiliki tipe mesin HQE, PQE, SQE, atau HiveQE. Jenis kueri yang terpengaruh meliputi pernyataan SELECT, INSERT, UPDATE, DELETE, dan INSERT yang dihasilkan oleh perintah seperti COPY dan CTAS.

  • Kueri yang menggunakan fixed plan melewati antrian kueri dan tidak dikenai batas konkurensi dari pembatasan kecepatan otomatis. Untuk informasi selengkapnya, lihat Accelerate SQL Execution with Fixed Plan. Untuk mengelola sumber daya secara efektif, Anda dapat mengisolasi kueri yang menggunakan fixed plan dari beban kerja lainnya dengan menggunakan compute group terpisah. Untuk informasi selengkapnya, lihat Quick Start for Compute Group Instances.

Menggunakan Pembatasan Kecepatan Otomatis

Anda dapat mengonfigurasi pembatasan kecepatan otomatis di tingkat compute group atau tingkat antrian kueri.

Sintaksis

  • Aktifkan atau nonaktifkan pembatasan kecepatan otomatis untuk compute group.

    Penting
    • Jika fitur ini diaktifkan, semua antrian kueri dalam compute group akan menggunakan pembatasan kecepatan otomatis secara default. Anda dapat menonaktifkan fitur ini untuk antrian tertentu sesuai kebutuhan.

    • Jika fitur ini dinonaktifkan (default), sistem akan mengabaikan semua pengaturan pembatasan kecepatan otomatis di tingkat antrian.

    -- Aktifkan pembatasan kecepatan otomatis di tingkat compute group
    CALL hg_set_warehouse_adaptive_concurrency_limiting ('<warehouse_name>', true);
    
    -- Nonaktifkan pembatasan kecepatan otomatis di tingkat compute group
    CALL hg_set_warehouse_adaptive_concurrency_limiting ('<warehouse_name>', false);
  • Aktifkan atau nonaktifkan pembatasan kecepatan otomatis untuk antrian kueri.

    -- Aktifkan pembatasan kecepatan otomatis untuk antrian kueri (diaktifkan secara default)
    CALL hg_set_query_queue_property ('<warehouse_name>', '<query_queue_name>', 'enable_adaptive_concurrency_limiting', 'true');
    
    -- Nonaktifkan pembatasan kecepatan otomatis untuk antrian kueri (setara dengan menambahkan antrian ke daftar putih)
    CALL hg_set_query_queue_property ('<warehouse_name>', '<query_queue_name>', 'enable_adaptive_concurrency_limiting', 'false');
  • Tetapkan konkurensi minimum untuk pembatasan kecepatan otomatis pada antrian kueri.

    Catatan

    Setelah parameter ini ditetapkan, sistem tidak akan mengurangi konkurensi di bawah nilai yang ditentukan, bahkan jika beban kerja tetap tinggi.

    -- Tetapkan konkurensi minimum untuk pembatasan kecepatan otomatis (default: 1, minimum: 1)
    CALL hg_set_query_queue_property ('<warehouse_name>', '<query_queue_name>', 'adaptive_concurrency_limiting_min_concurrency', '<min_concurrency>');

Deskripsi Parameter

Nama Parameter

Deskripsi

warehouse_name

Nama compute group. Untuk detailnya, lihat Quick Start for Compute Group Instances.

query_queue_name

Nama antrian kueri. Untuk detailnya, lihat Query Queue.

min_concurrency

Konkurensi minimum untuk pembatasan kecepatan otomatis pada antrian kueri. Default: 1. Rentang valid: [1, max_concurrency yang ditetapkan saat membuat antrian kueri].

Pemantauan dan Operasi & Pemeliharaan

Di Konsol Manajemen Hologres, klik ID instans target Anda dan buka halaman Monitoring Information untuk melihat metrik Compute Group CPU Utilization (%) dan memantau perilaku pembatasan kecepatan otomatis.

Contoh

Bagian ini memberikan contoh yang menggunakan pgbench, tool benchmarking bawaan PostgreSQL, untuk menunjukkan cara kerja pembatasan kecepatan otomatis dan dampaknya.

  1. Buat tabel uji dan muat data ke Hologres:

    CREATE TABLE tbl_1 (col1 INT, col2 INT, col3 TEXT);
    CREATE TABLE tbl_2 (col1 INT, col2 INT, col3 TEXT);
    INSERT INTO tbl_1 SELECT i, i+1, md5(RANDOM()::TEXT) FROM GENERATE_SERIES (0, 500000) AS i;
    INSERT INTO tbl_2 SELECT i, i+1, md5(RANDOM()::TEXT) FROM GENERATE_SERIES (0, 500000) AS i;
  2. Tetapkan konkurensi maksimum untuk antrian kueri menjadi 100. Contoh ini menggunakan compute group init_warehouse dan antrian kueri default_queue:

    CALL hg_set_query_queue_property ('init_warehouse', 'default_queue', 'max_concurrency', '100');
  3. Di direktori bin klien pgbench, buat file SQL benchmark bernama select.sql dan tambahkan pernyataan SQL berikut ke dalam file tersebut:

    EXPLAIN ANALYZE SELECT * FROM tbl_1 LEFT JOIN tbl_2 ON tbl_1.col3 = tbl_2.col3 ORDER BY 1;
  4. Di file konfigurasi server Anda, tambahkan dan simpan perintah berikut untuk menetapkan password Anda sebagai variabel lingkungan:

    export PGPASSWORD='<AccessKey_Secret>'
  5. Buka direktori bin klien pgbench dan jalankan perintah benchmark berikut:

    ./pgbench
    -c 30 \
    -j 30 \
    -f select.sql \
    -d <Database> \
    -U <AccessKey_ID> \
    -h <Endpoint> \
    -p <Port> \
    -T 1800

    Untuk informasi selengkapnya tentang parameter, lihat Connect to Hologres and Develop.

  6. Selama pengujian benchmark, aktifkan lalu nonaktifkan pembatasan kecepatan otomatis di Hologres, dan pantau utilisasi CPU compute group hingga pengujian selesai:

    -- Aktifkan pembatasan kecepatan otomatis
    CALL hg_set_warehouse_adaptive_concurrency_limiting ('init_warehouse', true);
    
    -- Nonaktifkan pembatasan kecepatan otomatis
    CALL hg_set_warehouse_adaptive_concurrency_limiting ('init_warehouse', false);

Analisis Hasil:

Setelah pengujian benchmark, utilisasi CPU compute group menunjukkan perilaku berikut:

  • Fase awal: Pembatasan kecepatan otomatis dinonaktifkan. Panjang antrian adalah 0. Utilisasi CPU tetap pada 100%, yang menimbulkan risiko ketidakstabilan.

  • Fase tengah: Pembatasan kecepatan otomatis diaktifkan. Panjang antrian dan utilisasi CPU menunjukkan fluktuasi kecil lalu stabil, dengan panjang antrian sekitar 17 dan utilisasi CPU sekitar 80%. Risiko ketidakstabilan berkurang secara signifikan.

  • Fase akhir: Pembatasan kecepatan otomatis dinonaktifkan kembali. Perilakunya sama seperti fase awal.