Panduan Singkat untuk Membandingkan Milvus 2.1
Sampul
Baru-baru ini, kami telah memperbarui laporan benchmark Milvus 2.1. Pengujian dengan dataset 1 juta vektor telah membuktikan bahwa QPS dapat ditingkatkan secara dramatis dengan menggabungkan kueri nq kecil.
Berikut adalah beberapa skrip sederhana bagi Anda untuk mereproduksi pengujian dengan mudah.
Prosedur
Menyebarkan Milvus mandiri atau cluster. Dalam kasus ini, alamat IP server Milvus adalah 10.100.31.105.
Menerapkan sebuah klien. Dalam kasus ini, kita menggunakan Ubuntu 18.04 dan Python 3.8.13 untuk penyebaran. Jalankan kode berikut untuk menginstal PyMilvus 2.1.1.
pip install pymilvus==2.1.1
Unduh dan salin berkas-berkas berikut ini ke direktori kerja yang sama dengan klien. Dalam kasus ini, direktori kerja adalah
/go_ben
.benchmark
(untuk Ubuntu) ataubenchmark-mac
(untuk macOS)
Catatan:
benchmark
danbenchmark-mac
adalah berkas yang dapat dieksekusi yang dikembangkan dan dikompilasi menggunakan Go SDK 2.1.1. Mereka hanya digunakan untuk melakukan pencarian secara bersamaan.Untuk pengguna Ubuntu, silakan unduh
benchmark
; untuk pengguna macOS, silakan unduhbenchmark-mac
.Izin yang dapat dieksekusi diperlukan untuk mengakses
benchmark
ataubenchmark-mac
.Pengguna Mac harus mempercayai file
benchmark-mac
dengan mengonfigurasi Keamanan & Privasi di Preferensi Sistem.Pengaturan tentang pencarian bersamaan dapat ditemukan dan dimodifikasi dalam kode sumber
go_benchmark.py
.
- Buat koleksi dan masukkan data vektor.
root@milvus-pytest:/go_ben# python collection_prepare.py 10.100.31.105
- Buka
/tmp/collection_prepare.log
untuk memeriksa hasil yang sedang berjalan.
...
08/11/2022 17:33:34 PM - INFO - Build index costs 263.626
08/11/2022 17:33:54 PM - INFO - Collection prepared completed
- Hubungi
benchmark
(ataubenchmark-mac
di macOS) untuk melakukan pencarian bersamaan.
root@milvus-pytest:/go_ben# python go_benchmark.py 10.100.31.105 ./benchmark
[write_json_file] Remove file(search_vector_file.json).
[write_json_file] Write json file:search_vector_file.json done.
Params of go_benchmark: ['./benchmark', 'locust', '-u', '10.100.31.105:19530', '-q', 'search_vector_file.json', '-s', '{\n "collection_name": "random_1m",\n "partition_names": [],\n "fieldName": "embedding",\n "index_type": "HNSW",\n "metric_type": "L2",\n "params": {\n "sp_value": 64,\n "dim": 128\n },\n "limit": 1,\n "expr": null,\n "output_fields": [],\n "timeout": 600\n}', '-p', '10', '-f', 'json', '-t', '60', '-i', '20', '-l', 'go_log_file.log']
[2022-08-11 11:37:39.811][ INFO] - Name # reqs # fails | Avg Min Max Median | req/s failures/s (benchmark_run.go:212:sample)
[2022-08-11 11:37:39.811][ INFO] - go search 9665 0(0.00%) | 20.679 6.499 81.761 12.810 | 483.25 0.00 (benchmark_run.go:213:sample)
[2022-08-11 11:37:59.811][ INFO] - Name # reqs # fails | Avg Min Max Median | req/s failures/s (benchmark_run.go:212:sample)
[2022-08-11 11:37:59.811][ INFO] - go search 19448 0(0.00%) | 20.443 6.549 78.121 13.401 | 489.22 0.00 (benchmark_run.go:213:sample)
[2022-08-11 11:38:19.811][ INFO] - Name # reqs # fails | Avg Min Max Median | req/s failures/s (benchmark_run.go:212:sample)
[2022-08-11 11:38:19.811][ INFO] - go search 29170 0(0.00%) | 20.568 6.398 76.887 12.828 | 486.15 0.00 (benchmark_run.go:213:sample)
[2022-08-11 11:38:19.811][ DEBUG] - go search run finished, parallel: 10(benchmark_run.go:95:benchmark)
[2022-08-11 11:38:19.811][ INFO] - Name # reqs # fails | Avg Min Max Median | req/s failures/s (benchmark_run.go:159:samplingLoop)
[2022-08-11 11:38:19.811][ INFO] - go search 29180 0(0.00%) | 20.560 6.398 81.761 13.014 | 486.25 0.00 (benchmark_run.go:160:samplingLoop)
Result of go_benchmark: {'response': True, 'err_code': 0, 'err_message': ''}
- Buka file
go_log_file.log
di bawah direktori saat ini untuk memeriksa log pencarian terperinci. Berikut ini adalah informasi pencarian yang dapat Anda temukan di log pencarian.reqs: jumlah permintaan pencarian dari saat konkurensi terjadi hingga saat ini (rentang waktu saat ini)
gagal: jumlah permintaan yang gagal sebagai persentase dari reqs dalam rentang waktu saat ini
Avg: waktu respons permintaan rata-rata dalam rentang waktu saat ini (unit: milidetik)
Min: waktu respons permintaan minimum dalam rentang waktu saat ini (unit: milidetik)
Maks: waktu respons permintaan maksimum dalam rentang waktu saat ini (unit: milidetik)
Median: waktu respons permintaan rata-rata dalam rentang waktu saat ini (unit: milidetik)
req/s: jumlah permintaan per detik, yaitu QPS
kegagalan/s: jumlah rata-rata permintaan yang gagal per detik dalam rentang waktu saat ini
Mengunduh Skrip dan File yang Dapat Dieksekusi
benchmark untuk Ubuntu
benchmark-mac untuk macOS
Apa yang selanjutnya
Dengan dirilisnya Milvus 2.1 secara resmi, kami telah menyiapkan serangkaian blog yang memperkenalkan fitur-fitur baru. Baca lebih lanjut dalam seri blog ini:
- Cara Menggunakan Data String untuk Memberdayakan Aplikasi Pencarian Kemiripan Anda
- Menggunakan Milvus yang Disematkan untuk Menginstal dan Menjalankan Milvus secara Instan dengan Python
- Tingkatkan Throughput Pembacaan Basis Data Vektor Anda dengan Replika Dalam Memori
- Memahami Tingkat Konsistensi dalam Basis Data Vektor Milvus
- Bagaimana Basis Data Vektor Milvus Memastikan Keamanan Data?
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word