全部产品
Search
文档中心

Elasticsearch:Gunakan Plugin faster-bulk

更新时间:Jul 02, 2025

Plugin faster-bulk dikembangkan oleh tim Elasticsearch Alibaba Cloud. Plugin ini menggabungkan permintaan penulisan bulk dalam batch berdasarkan ukuran permintaan maksimum dan interval agregasi yang ditentukan. Hal ini mencegah permintaan bulk kecil memblokir antrian penulisan, meningkatkan throughput penulisan, dan mengurangi penolakan permintaan penulisan. Topik ini menjelaskan skenario penggunaan plugin serta cara menggunakannya.

Skenario

Plugin faster-bulk sangat ideal untuk skenario dengan throughput penulisan tinggi dan banyak shard indeks. Plugin ini dapat meningkatkan throughput penulisan lebih dari 20% dalam skenario tersebut.
Penting Plugin faster-bulk menggabungkan permintaan penulisan bulk dalam batch sebelum menulis data ke shard. Oleh karena itu, disarankan untuk tidak menggunakan plugin ini dalam skenario sensitif terhadap latensi.
  • Lingkungan pengujian
    • Konfigurasi node: 3 node data dan 2 node klien independen. Setiap node memiliki 16 vCPU dan 64 GiB memori.
    • Dataset: nyc_taixs yang disediakan oleh Rally di Elasticsearch sumber terbuka. Ukuran dokumen tunggal adalah 650 byte.
    • Pengaturan parameter: Parameter apack.fasterbulk.combine.interval diatur ke 200ms.
    • Status Translog: Pengujian dilakukan dalam keadaan sinkron dan asinkron. Jika parameter index.translog.durability diatur ke request, translog berada dalam keadaan sinkron. Jika parameter index.translog.durability diatur ke async, translog berada dalam keadaan asinkron.
  • Hasil pengujian
    Status TranslogKinerja penulisan kluster Elasticsearch sumber terbuka tanpa faster-bulk (dokumen/detik)Kinerja penulisan kluster Elasticsearch Alibaba Cloud dengan faster-bulk (dokumen/detik)Peningkatan kinerja (persentase)
    Sinkron182.314226.24223%
    Asinkron218.732241.06010%
  • Kesimpulan pengujian

    Kinerja penulisan meningkat baik dalam keadaan sinkron (keadaan default) maupun asinkron setelah menggunakan plugin faster-bulk. Dalam keadaan sinkron, kinerja penulisan meningkat sebesar 23%.

Prasyarat

  • Kluster Elasticsearch V6.7.0 atau V7.10.0 Alibaba Cloud telah dibuat.
    Untuk informasi lebih lanjut, lihat Buat kluster Elasticsearch Alibaba Cloud.
    Catatan Hanya kluster Elasticsearch V6.7.0 dan V7.10.0 Alibaba Cloud Edisi Standar atau Edisi Lanjutan yang mendukung plugin faster-bulk.
  • Plugin faster-bulk telah diinstal.

    Untuk informasi lebih lanjut, lihat Instal dan hapus plugin bawaan. Setelah plugin diinstal, fitur agregasi permintaan bulk dinonaktifkan secara default. Sebelum menggunakan plugin ini, Anda harus mengaktifkan fitur tersebut.

Aktifkan fitur agregasi permintaan bulk

  1. Masuk ke konsol Kibana kluster Elasticsearch.
    Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
  2. Di panel navigasi di sebelah kiri, klik Dev Tools.
  3. Pada tab Console halaman yang muncul, jalankan perintah berikut untuk mengaktifkan fitur agregasi permintaan bulk:
    PUT _cluster/settings
    {
       "transient" : {
          "apack.fasterbulk.combine.enabled":"true"
       }
    }
    Catatan Anda juga dapat menggunakan alat cURL atau visualizer pihak ketiga untuk menjalankan perintah di atas.

Konfigurasikan ukuran permintaan maksimum dan interval agregasi

Jalankan perintah berikut untuk mengonfigurasi ukuran permintaan maksimum dan interval agregasi. Jika total ukuran permintaan bulk atau interval agregasi pada node data tunggal mencapai ambang batas yang dikonfigurasi, sistem akan menulis data ke shard.
PUT _cluster/settings
{
   "transient" : {
      "apack.fasterbulk.combine.flush_threshold_size":"1mb",
      "apack.fasterbulk.combine.interval":"50"
   }
}
  • apack.fasterbulk.combine.flush_threshold_size: ukuran maksimum permintaan bulk. Nilai default: 1mb.
  • apack.fasterbulk.combine.interval: interval maksimum di mana permintaan bulk diagregasi. Nilai default: 50. Unit: ms.
Catatan Untuk memproses permintaan bulk dengan konkurensi tinggi dan mencegah permintaan tersebut memblokir antrian penulisan, Anda dapat meningkatkan ukuran permintaan maksimum atau interval agregasi sesuai kebutuhan bisnis Anda.

Aktifkan pengarahan langsung

Jika tidak ada pengaturan routing dan kunci utama yang dikonfigurasi untuk dokumen yang perlu ditulis dalam permintaan penulisan bulk, Anda dapat mengaktifkan pengarahan langsung untuk kluster Elasticsearch atau indeks tertentu guna meningkatkan kecepatan penulisan data. Kunci utama ditentukan oleh parameter _id.
Catatan Jika pengarahan langsung diaktifkan untuk kluster Elasticsearch atau indeks tertentu, dan pengaturan routing serta kunci utama dikonfigurasi untuk dokumen yang perlu ditulis, pengarahan langsung tidak berlaku dan operasi penulisan data tidak terpengaruh.
  • Aktifkan pengarahan langsung untuk kluster Elasticsearch
    PUT _cluster/settings
    {
      "persistent" : {
        "index.direct_routing.global.enable" : "true"
      }
    }
  • Aktifkan pengarahan langsung untuk indeks tertentu
    PUT index/settings
    {
      "index.direct_routing.enable" : "true"
    }

Nonaktifkan fitur agregasi permintaan bulk

Jalankan perintah berikut untuk menonaktifkan fitur agregasi permintaan bulk:
PUT _cluster/settings
{
   "transient" : {
      "apack.fasterbulk.combine.enabled":"false"
   }
}