Sebelum membeli kluster Elasticsearch Alibaba Cloud atau menyesuaikan konfigurasi kluster, Anda dapat menggunakan metode evaluasi umum yang dijelaskan dalam topik ini untuk mengevaluasi spesifikasi sumber daya dan kapasitas penyimpanan yang diperlukan. Evaluasi mencakup spesifikasi node, ruang penyimpanan node, serta jumlah node. Jika mengalami masalah seperti penggunaan disk yang tidak merata atau beban CPU yang tidak seimbang antar node, Anda juga dapat mengevaluasi kapasitas penyimpanan shard dan jumlah shard untuk indeks terkait.
Perhatian
Metode evaluasi yang disediakan dalam topik ini didasarkan pada hasil pengujian aktual dan pengalaman pengguna. Kebutuhan setiap pengguna dapat bervariasi tergantung pada struktur data, kompleksitas kueri, volume data, performa, dan pola perubahan data. Topik ini hanya bertujuan sebagai referensi. Kami menyarankan Anda mengevaluasi spesifikasi dan kapasitas penyimpanan berdasarkan data aktual dan skenario bisnis Anda.
Evaluasi ruang penyimpanan
Ruang penyimpanan kluster Elasticsearch ditentukan oleh faktor-faktor berikut:
Volume data sumber.
Jumlah shard replika: Setiap shard utama harus memiliki setidaknya satu shard replika.
Overhead pengindeksan: Dalam kebanyakan kasus, overhead pengindeksan mencapai 10% lebih besar daripada data sumber.
Contohnya, indeks pemantauan yang digunakan oleh X-Pack untuk analisis pengecualian menghasilkan overhead pengindeksan. Indeks pemantauan mencakup jenis-jenis berikut:
.monitoring-es-6-*: Jenis indeks ini mengonsumsi sejumlah besar ruang penyimpanan. Secara default, Elasticsearch hanya menyimpan data indeks yang dibuat dalam tujuh hari terakhir.
.monitoring-kibana-6-*: Jumlah ruang penyimpanan yang dikonsumsi oleh jenis indeks ini meningkat seiring dengan jumlah indeks. Secara default, Elasticsearch hanya menyimpan data indeks yang dibuat dalam tujuh hari terakhir.
.watcher-history-3-*: Jenis indeks ini hanya mengonsumsi sejumlah kecil ruang penyimpanan. Jika indeks tersebut tidak lagi diperlukan, Anda dapat menghapusnya secara manual.
Overhead internal kluster Elasticsearch: Operasi internal seperti penggabungan segmen dan pencatatan log menghasilkan overhead pengindeksan. 20% dari ruang penyimpanan dicadangkan untuk overhead semacam itu.
Jumlah ruang penyimpanan yang dikonsumsi oleh log kluster meningkat seiring dengan jumlah kueri dan dorongan data yang diterima oleh kluster Elasticsearch. Log kluster mencakup log operasi, log akses, dan log lambat. Secara default, Elasticsearch hanya menyimpan log yang dihasilkan dalam tujuh hari terakhir. Durasi ini tidak dapat diubah.
Ruang penyimpanan yang dicadangkan oleh sistem operasi: Secara default, sistem operasi mencadangkan 5% dari ruang penyimpanan untuk proses kritis, pemulihan sistem, dan fragmen disk.
Overhead ambang batas keamanan: Elasticsearch mencadangkan setidaknya 15% dari ruang penyimpanan sebagai ambang batas keamanan.
Ruang penyimpanan yang direkomendasikan dihitung menggunakan rumus berikut:
Ruang penyimpanan yang direkomendasikan untuk kluster = Volume data sumber × (1 + Jumlah shard replika) × Overhead pengindeksan/(1 - Ruang penyimpanan yang dicadangkan oleh sistem operasi)/(1 - Overhead internal kluster)/(1 - Overhead ambang batas keamanan)
= Volume data sumber × (1 + Jumlah shard replika) × 1.7
= Volume data sumber × 3.4Dalam rumus sebelumnya, jumlah shard replika adalah 1. Saat menghitung ruang penyimpanan, gunakan jumlah shard replika aktual dari kluster Elasticsearch Anda dalam rumus tersebut.
Evaluasi spesifikasi node dan jumlah node
Node data
Jumlah maksimum node per kluster = Jumlah vCPU per node × 5.
Jumlah maksimum data yang dapat disimpan oleh setiap node dalam kluster Elasticsearch bervariasi berdasarkan skenario bisnis:
Skenario umum: Ruang penyimpanan maksimum per node = Ukuran memori per node (GiB) × 30.
Skenario kueri seperti akselerasi atau agregasi pada kueri data: Ruang penyimpanan maksimum per node = Ukuran memori per node (GiB) × 10.
Skenario logging seperti impor data log atau analitik offline: Ruang penyimpanan maksimum per node = Ukuran memori per node (GiB) × 50.
Tabel berikut mencantumkan jumlah maksimum node dan ruang penyimpanan maksimum per node untuk spesifikasi node yang berbeda.
Spesifikasi | Jumlah maksimum node | Ruang penyimpanan maksimum per node | ||
Skenario umum | Skenario kueri | Skenario logging | ||
2 vCPU dan 4 GiB memori | 10 | 120 GiB | 40 GiB | 200 GiB |
2 vCPU dan 8 GiB memori | 10 | 240 GiB | 80 GiB | 400 GiB |
4 vCPU dan 16 GiB memori | 20 | 480 GiB | 160 GiB | 800 GiB |
8 vCPU dan 32 GiB memori | 40 | 960 GiB | 320 GiB | 1.5 TiB |
16 vCPU dan 64 GiB memori | 80 | 1.9 TiB | 640 GiB | 3 TiB |
Total ruang penyimpanan kluster Elasticsearch dihitung menggunakan rumus berikut: Total ruang penyimpanan kluster Elasticsearch = Ruang penyimpanan per node × Jumlah node. Anda dapat menentukan spesifikasi setiap node berdasarkan ruang penyimpanan maksimum setiap node dan jumlah maksimum node.
Jumlah node data memengaruhi jumlah total shard. Sebelum menentukan spesifikasi node, lakukan evaluasi shard terlebih dahulu.
Untuk kueri agregat, kami merekomendasikan agar Anda memilih spesifikasi dengan rasio vCPU-memori 1:2 untuk node data dan mengaktifkan node klien.
Node master khusus
Jika kluster Elasticsearch Anda berisi sejumlah besar node data, kami merekomendasikan agar Anda mengaktifkan node master khusus untuk memastikan stabilitas kluster.
Berikut adalah panduan untuk menentukan spesifikasi node master khusus untuk kluster Elasticsearch Anda:
Spesifikasi default: 2 vCPU dan 8 GiB memori.
Spesifikasi jika jumlah node data melebihi 10: 4 vCPU dan 16 GiB memori.
Spesifikasi jika jumlah node data melebihi 30: 8 vCPU dan 32 GiB memori.
Spesifikasi jika jumlah node data melebihi 50: 16 vCPU dan 64 GiB memori.
Jika kluster Elasticsearch Anda berisi sejumlah besar indeks dan shard atau sangat bergantung pada node master khusus karena data sering berubah, pilih spesifikasi yang lebih tinggi untuk node master khusus.
Node klien
Jika Anda menggunakan node klien independen, Anda dapat melakukan operasi reduce pada hasil evaluasi. Dalam hal ini, jika garbage collection (GC) parah terjadi pada tahap reduce, node data tidak akan terpengaruh.
Jika Anda mengaktifkan node klien, kami merekomendasikan agar Anda mengonfigurasi node klien dan node data berdasarkan rasio 1:5 dan memilih spesifikasi dengan rasio vCPU-memori 1:4 atau 1:8 untuk node klien. Anda harus membeli setidaknya dua node klien. Contohnya, jika Anda mengonfigurasi 10 node data dengan spesifikasi 8 vCPU dan 32 GiB memori, kami merekomendasikan agar Anda mengonfigurasi 2 node klien dengan spesifikasi 8 vCPU dan 32 GiB memori.
Evaluasi shard
Jumlah shard dan ukuran setiap shard memengaruhi stabilitas dan performa kluster Elasticsearch. Rencanakan shard dengan tepat untuk semua indeks dalam kluster Elasticsearch untuk mencegah banyak shard memengaruhi performa kluster atau menyebabkan beban tidak merata dalam skenario bisnis yang kompleks. Misalnya, jika perencanaan shard untuk indeks dalam kluster Elasticsearch tidak sesuai, perbedaan signifikan dalam penggunaan disk node dan beban CPU yang tidak merata di antara node mungkin terjadi.
Shard adalah unit penyimpanan terdistribusi dari indeks dalam kluster Elasticsearch. Shard diklasifikasikan menjadi shard utama dan shard replika. Untuk informasi lebih lanjut, lihat shard dan shard replika.
Sebelum merencanakan shard, pertimbangkan item-item berikut:
Volume data yang disimpan pada setiap indeks.
Apakah volumenya terus bertambah.
Spesifikasi node.
Apakah akan menghapus atau menggabungkan indeks sementara secara berkala.
Alibaba Cloud menyediakan panduan berikut untuk merencanakan shard. Panduan ini hanya untuk referensi.
Volume data yang disimpan pada setiap shard:
Kami merekomendasikan agar Anda menyimpan tidak lebih dari 30 GiB data pada setiap shard. Dalam kasus khusus, Anda dapat menyimpan hingga 50 GiB data pada setiap shard.
Dalam skenario analitik log atau skenario yang memerlukan indeks sangat besar, pastikan bahwa setiap shard menyimpan tidak lebih dari 100 GiB data.
Jumlah shard:
Sebelum mengalokasikan shard untuk kluster Elasticsearch Anda, evaluasi volume data yang ingin Anda simpan.
Jika volume data total besar, kurangi jumlah data yang ditulis untuk mengurangi beban kerja kluster Elasticsearch Anda. Dalam hal ini, konfigurasikan beberapa shard utama untuk setiap indeks dan satu shard replika untuk setiap shard utama.
Jika baik volume data total maupun volume data yang ingin Anda tulis kecil, konfigurasikan satu shard utama untuk setiap indeks dan satu atau lebih shard replika untuk setiap shard utama.
CatatanSecara default, kluster Elasticsearch versi V7.X atau lebih baru dikonfigurasikan dengan satu shard utama untuk setiap indeks dan satu shard replika untuk setiap shard utama. Secara default, kluster Elasticsearch sebelum V7.X dikonfigurasikan dengan lima shard utama untuk setiap indeks dan satu shard replika untuk setiap shard utama.
Jika volume data yang perlu Anda simpan kurang dari 30 GiB, Anda dapat mengonfigurasi satu shard utama untuk setiap indeks dan beberapa shard replika untuk shard utama tersebut. Ini mencapai keseimbangan beban. Contohnya, ukuran setiap indeks adalah 20 GiB, dan kluster Elasticsearch Anda berisi lima node data. Dalam hal ini, Anda dapat mengonfigurasi satu shard utama untuk setiap indeks dan empat shard replika untuk setiap shard utama.
Kami merekomendasikan agar Anda menjaga jumlah shard sama dengan jumlah node data atau kelipatan bulat dari jumlah node data.
Kami merekomendasikan agar Anda mengonfigurasi maksimal lima shard untuk indeks pada sebuah node.
Kami merekomendasikan agar Anda menghitung jumlah total shard untuk semua indeks pada node tunggal menggunakan salah satu rumus berikut:
Untuk kluster dengan spesifikasi kecil: Jumlah shard pada node data tunggal = Ukuran memori node data × 30.
Untuk kluster dengan spesifikasi besar: Jumlah shard pada node data tunggal = Ukuran memori node data × 50.
CatatanSaat menghitung jumlah shard, pertimbangkan juga volume data. Jika volume data kurang dari 1 TiB, gunakan rumus untuk kluster dengan spesifikasi kecil.
Secara default, jumlah maksimum shard pada node tunggal dalam kluster Elasticsearch V7.X adalah 1.000. Kami merekomendasikan agar Anda tidak mengubah jumlah maksimum tersebut. Jika Anda ingin mengubah jumlah shard pada node tunggal, tambahkan jumlah node sebelum menggunakan kluster.
Konfigurasikan shard berdasarkan kebutuhan bisnis Anda. Semakin banyak shard utama menghasilkan lebih banyak overhead performa. Jika Anda mengonfigurasi jumlah shard yang terlalu besar untuk setiap indeks dalam kluster Elasticsearch Anda, file handle mungkin habis. Akibatnya, kesalahan mungkin terjadi pada kluster Elasticsearch Anda.
Untuk informasi lebih lanjut tentang evaluasi shard, lihat Cara Menentukan Ukuran Shard Anda.
Referensi
Anda dapat membeli kluster Elasticsearch atau melihat spesifikasi node yang didukung di berbagai wilayah dan versi Elasticsearch di halaman halaman pembelian Elasticsearch.
Anda dapat merujuk pada hasil uji stres pada kluster Elasticsearch dengan spesifikasi berbeda dan versi berbeda untuk mempelajari performa spesifikasi node yang berbeda. Untuk informasi lebih lanjut, lihat topik dalam direktori Performa.
Untuk informasi tentang perbedaan antara tipe kluster Edisi Standar dan Edisi Kernel-ditingkatkan, serta perubahan fitur dalam setiap versi kluster, lihat Fitur Versi.
Anda dapat menyesuaikan item seperti spesifikasi node, ruang penyimpanan node, dan jumlah node untuk kluster Elasticsearch yang ada berdasarkan hasil evaluasi. Untuk informasi tentang cara melakukan operasi dan tindakan pencegahan terkait, lihat Tingkatkan Konfigurasi Kluster dan Turunkan Konfigurasi Kluster.
Anda dapat menentukan jumlah shard utama untuk indeks hanya saat membuat indeks. Setelah indeks dibuat, Anda tidak dapat mengubah jumlah tersebut. Untuk informasi tentang cara membuat indeks, lihat Buat Indeks.
Jika volume data yang disimpan pada setiap shard untuk indeks yang ada melebihi volume yang direkomendasikan, lakukan reindexing data untuk indeks tersebut. Untuk informasi lebih lanjut, lihat Gunakan API Reindex untuk Memigrasi Data Antar Kluster Elasticsearch Alibaba Cloud.
CatatanReindexing data memastikan kontinuitas layanan tetapi memakan waktu.
Untuk informasi tentang cara menyelesaikan beban tidak seimbang pada kluster Elasticsearch, lihat Beban Tidak Seimbang pada Kluster.
Untuk informasi tentang cara menyelesaikan distribusi tidak merata dari data panas pada node, lihat Distribusi Tidak Merata dari Data Panas pada Node.
Jika Anda mengaktifkan fitur Auto Indexing, gunakan fitur manajemen siklus hidup indeks (ILM) atau skrip API Elasticsearch untuk menghapus indeks yang sudah kedaluwarsa. Untuk informasi lebih lanjut tentang fitur ILM, lihat Gunakan ILM untuk Mengelola Indeks Heartbeat.
Hapus indeks kecil secara tepat waktu untuk membebaskan memori heap.