Sebelum membeli instans Vector Search Edition, gunakan kalkulator spesifikasi untuk mendapatkan rekomendasi konfigurasi node kueri dan node data. Topik ini juga menyediakan data benchmark HNSW dan IVF_SQ8 pada berbagai skala data sebagai referensi performa dalam pemilihan spesifikasi.
Gunakan kalkulator spesifikasi
Pada halaman pembelian Vector Search Edition, klik Specification Calculator.
Kotak dialog OpenSearch Vector Search Edition Specification Calculator akan muncul, berisi bagian Basic Configurations, Vector Data Configurations, dan Query Configurations. Setelah mengisi parameter, klik Perform Operation untuk mendapatkan rekomendasi spesifikasi.
Basic configurations
Instance region: Wilayah tempat engine akan dibuat.
Disaster recovery: Apakah diperlukan disaster recovery. Pilih Yes atau No dari daftar drop-down.
Vector data configurations
Number of vector docs: Jumlah entri data vektor yang akan ditulis ke engine.
Vector dimension: Dimensi vektor yang akan ditulis ke engine.
Vector algorithm: Pilih algoritma vektor sesuai kebutuhan Anda. Tiga algoritma berikut didukung:
HNSW: Algoritma pengambilan vektor berbasis graf dengan tingkat recall sangat tinggi dan performa baik. Konsumsi memori dan storage-nya sebanding dengan Linear. HNSW bekerja baik pada dataset vektor berdimensi rendah maupun tinggi, sehingga cocok untuk sebagian besar skenario pencarian vektor.
QC: Algoritma pengambilan vektor berbasis kuantisasi dan pengelompokan dengan akurasi recall sangat tinggi, konsumsi resource rendah, serta performa baik. Performanya lebih unggul pada dataset vektor berdimensi rendah. Konsumsi memori dan storage-nya biasanya sekitar seperempat dari yang dibutuhkan oleh Linear dan HNSW. QC cocok untuk skenario pengambilan berskala besar yang tidak memiliki persyaratan ketat terhadap tingkat recall.
Linear: Algoritma pencarian linear (brute-force search) yang menjamin hasil pengambilan sepenuhnya akurat tetapi mengonsumsi banyak resource dan menawarkan performa lebih rendah. Biasanya digunakan untuk pencarian presisi pada dataset kecil hingga 10.000 entri.
Query configurations
Average QPS: Permintaan per detik (QPS) yang diharapkan untuk engine.
Expected average response time: Waktu respons rata-rata target untuk hasil recall. Satuannya dapat berupa detik (s) atau milidetik (ms).
Setelah mengisi parameter, klik Perform Operation.
Rekomendasi mencakup parameter seperti query node specification family, number of query nodes, query node specification, data node specification family, number of data nodes, data node specification, dan storage space/disk space per data node. Beli spesifikasi yang sesuai berdasarkan hasil rekomendasi tersebut.
HNSW benchmark data
Data uji berikut didasarkan pada dataset publik, menggunakan versi engine vector_service 1.5.9, dengan konfigurasi 1 query node + 1 data node cloud disk. Parameter pembuatan indeks: M = 100, ef-construction = 500.
Dataset | Specification | Parameters | recall@k (serial) | P95 latency (serial) | Peak QPS (concurrent) | Peak concurrency | Query node CPU/Mem | Data node CPU/Mem | Index memory usage |
OpenAI 1536D 50K | 2C8G query node + 2C16G data node | ef=20, k=10 | 0,9793 | 20ms | 643 | 10 | 89%/12% | 61%/10% | 311MB |
ef=200, k=100 | 0,9991 | — | — | — | — | — | |||
4C16G query node + 4C32G data node | ef=20, k=10 | 0,9805 | 27ms | 1.035 | 20 | 99%/7% | 38%/18% | ||
ef=200, k=100 | 0,9989 | 35ms | 744 | 20 | 88%/7% | 88%/18% | |||
Cohere 768D 1M | 4C16G query node + 4C32G data node | ef=20, k=10 | 0,9560 | 18ms | 1.413 | 20 | 96%/7% | 48%/18% | 3,13GB |
ef=200, k=100 | 0,9919 | 131ms | 745 | 80 | 68%/7% | 91%/18% | |||
4C16G query node + 8C64G data node | ef=20, k=10 | 0,9598 | 26ms | 1.601 | 30 | 99%/8% | 29%/8% | ||
ef=200, k=100 | 0,9921 | 25ms | 1.527 | 30 | 97%/7% | 93%/8% | |||
Cohere 768D 10M | 8C32G query node + 8C64G data node | ef=20, k=10 | 0,9429 | 24ms | 1.534 | 30 | 70%/3% | 95%/55% | 33GB |
ef=200, k=100 | 0,9552 | 55ms | 662 | 30 | 40%/5% | 95%/55% |
Hubungan antara watermark memori node data dan performa
Uji berikut menggunakan dataset Cohere 768D, dengan konfigurasi 4C16G query node + 4C32G data node cloud disk, dan indeks HNSW (InnerProduct, ef-construction = 500, M = 100). Data dimasukkan secara inkremental (1 juta entri per kali) untuk mengamati dampak persentase penggunaan memori node data terhadap QPS.
Data volume | Index memory usage | Process memory usage | QPS (k=10, ef=20) | QPS (k=100, ef=200) |
2M | 6,3GB | 26,6% | 1.368 | 647 |
4M | 12,5GB | 47,8% | 1.324 | 378 |
5M | 15,6GB | 59,2% | 1.068 | 334 |
6M | 18,8GB | 69% | 1.112 | 341 |
7M | 21,8GB | 80% | Nearly unusable | |
8M | — | — | — | — |
Pada konfigurasi umum, indeks vektor, indeks PK, dan indeks terbalik dikunci di memori fisik menggunakan mlock untuk latensi pengambilan terendah. Data lain (atribut, ringkasan, dll.) tidak dikunci dengan mlock dan mengandalkan cache halaman OS untuk pemuatan sesuai permintaan. Saat persentase penggunaan memori meningkat, cache halaman dikompresi, dan akses atribut yang sering memicu page faults, sehingga menyebabkan peningkatan latensi:
Watermark > 70%: QPS turun tajam.
Watermark > 80%: Layanan menjadi hampir tidak dapat digunakan.
IVF_SQ8 benchmark data
Uji berikut menggunakan dataset Cohere 768D 10M, dengan konfigurasi 4C16G query node + 4C32G data node cloud disk.
Parameter pembuatan indeks:
{
"proxima.qc.builder.quantizer_class": "Int8QuantizerConverter",
"proxima.qc.builder.quantize_by_centroid": true,
"proxima.qc.builder.optimizer_class": "BruteForceBuilder",
"proxima.qc.builder.thread_count": 10,
"proxima.qc.builder.optimizer_params": {
"proxima.linear.builder.column_major_order": true
},
"proxima.qc.builder.store_original_features": false,
"proxima.qc.builder.train_sample_count": 3000000,
"proxima.qc.builder.train_sample_ratio": 0.5
}Uji serial: tingkat recall dan latensi
Scan ratio | Recall rate | Latency (P99) | Latency (P95) |
0,01 | 0,9123 | 39,5ms | 35,7ms |
0,05 | 0,9454 | 84ms | 75ms |
Uji performa konkuren: penyisipan inkremental
10 juta entri data vektor berdimensi 768 dimasukkan secara inkremental untuk mengamati perubahan ukuran indeks dan QPS kueri pada berbagai volume data.
Data volume | Index memory usage | Memory usage | QPS (scan ratio 0,01, k=100) | QPS (scan ratio 0,05, k=100) |
1M | 2,25GB | 7,4% | 1.000 | 558 |
2M | 3,11GB | 10,4% | 766 | 258 |
4M | 4,95GB | 16% | 408 | 122 |
10M | 9,9GB | 32,4% | 131 | 46 |