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
- 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 Translog Kinerja penulisan kluster Elasticsearch sumber terbuka tanpa faster-bulk (dokumen/detik) Kinerja penulisan kluster Elasticsearch Alibaba Cloud dengan faster-bulk (dokumen/detik) Peningkatan kinerja (persentase) Sinkron 182.314 226.242 23% Asinkron 218.732 241.060 10% - 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
- Masuk ke konsol Kibana kluster Elasticsearch.Untuk informasi lebih lanjut, lihat Masuk ke konsol Kibana.
- Di panel navigasi di sebelah kiri, klik Dev Tools.
- 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
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.
Aktifkan pengarahan langsung
- 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
PUT _cluster/settings
{
"transient" : {
"apack.fasterbulk.combine.enabled":"false"
}
}