Vector Retrieval Service for Milvus (Milvus) memungkinkan Anda melakukan kueri dan memodifikasi konfigurasi instans di Konsol. Topik ini menjelaskan cara memperbarui konfigurasi instans Milvus.
Prosedur
-
Buka halaman konfigurasi instans.
-
Login ke Alibaba Cloud Milvus console.
-
Pada panel navigasi kiri, klik Instances.
-
Pada bilah menu atas, pilih wilayah.
-
Pada halaman Instances, klik nama instans yang dituju.
-
Klik tab Instance Configuration.
-
-
Pada kotak teks Instance Configuration, masukkan parameter untuk mengganti konfigurasi default, lalu klik Save Configurations.
Parameter harus dalam format YAML. Berikut contohnya.
# Konfigurasi untuk rootCoord, yang menangani permintaan Data Definition Language (DDL) dan Data Control Language (DCL). rootCoord: maxDatabaseNum: 64 # Jumlah maksimum database. maxPartitionNum: 4096 # Jumlah maksimum partisi dalam sebuah koleksi. minSegmentSizeToEnableIndex: 1024 # Ambang batas yang menentukan ukuran segmen minimum untuk pengindeksan. Segmen yang lebih kecil dari nilai ini tidak diindeks. importTaskExpiration: 900 # Durasi dalam detik setelah tugas impor kedaluwarsa dan dihentikan. Default: 900 detik (15 menit). importTaskRetention: 86400 # Durasi minimum dalam detik selama Milvus menyimpan catatan tugas impor. Default: 86400 detik (24 jam). grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 # Konfigurasi untuk proxy, yang memvalidasi permintaan client dan mengurangi hasil yang dikembalikan. proxy: timeTickInterval: 200 # Interval dalam milidetik (ms) saat proxy menyinkronkan time tick. healthCheckTimeout: 3000 # Interval dalam milidetik (ms) untuk pemeriksaan kesehatan komponen. maxNameLength: 255 # Panjang maksimum nama koleksi atau alias. # Jumlah maksimum bidang dalam sebuah koleksi. # Mulai Milvus 2.2.0, sangat tidak disarankan mengatur maxFieldNum ke 64 atau lebih. # Sesuaikan parameter ini dengan risiko Anda sendiri. maxFieldNum: 64 maxTaskNum: 1024 # Jumlah maksimum tugas dalam antrian tugas proxy. grpc: serverMaxSendSize: 268435456 serverMaxRecvSize: 67108864 clientMaxSendSize: 268435456 clientMaxRecvSize: 67108864 # Konfigurasi untuk queryCoord, yang mengelola topologi dan penyeimbangan beban untuk node kueri, serta menangani handoff dari segmen growing ke segmen sealed. queryCoord: autoHandoff: true # Menentukan apakah handoff otomatis diaktifkan. autoBalance: true # Menentukan apakah penyeimbangan beban otomatis diaktifkan. balancer: ScoreBasedBalancer # Algoritma penyeimbangan beban yang digunakan. overloadedMemoryThresholdPercentage: 90 # Persentase penggunaan memori yang memicu kondisi overload. balanceIntervalSeconds: 60 memoryUsageMaxDifferencePercentage: 30 checkInterval: 1000 channelTaskTimeout: 60000 # 1 menit segmentTaskTimeout: 120000 # 2 menit distPullInterval: 500 heartbeatAvailableInterval: 10000 # 10s. Node kueri dianggap tersedia hanya jika mengirim heartbeat dalam interval ini. loadTimeoutSeconds: 600 checkHandoffInterval: 5000 grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 # Konfigurasi untuk queryNode, yang menjalankan pencarian hibrid antara data vektor dan skalar. queryNode: dataSync: flowGraph: maxQueueLength: 16 # Panjang maksimum antrian tugas dalam flow graph. maxParallelism: 1024 # Jumlah maksimum tugas yang dapat berjalan secara paralel dalam flow graph. stats: publishInterval: 1000 # Interval dalam milidetik saat node kueri melaporkan informasinya. segcore: cgoPoolSizeRatio: 2.0 # Rasio ukuran pool cgo terhadap konkurensi baca maksimum. knowhereThreadPoolNumRatio: 4 # Gunakan lebih banyak thread untuk meningkatkan throughput SSD pada indeks on-disk. # Parameter ini hanya berlaku jika enableDisk diatur ke true. # Nilai ini harus berupa angka lebih besar dari 1 dan kurang dari 32. chunkRows: 128 # Jumlah vektor dalam satu chunk. exprEvalBatchSize: 8192 # Ukuran batch untuk pelaksana mendapatkan batch berikutnya. interimIndex: # Membuat indeks vektor sementara untuk segmen growing atau log biner guna mempercepat pencarian. enableIndex: true nlist: 128 # Nilai nlist untuk indeks segmen. nprobe: 16 # Nilai nprobe untuk mencari segmen. Nilai ini bergantung pada kebutuhan akurasi Anda dan harus lebih kecil dari nlist. memExpansionRate: 1.15 # Rasio penggunaan memori untuk membangun indeks sementara terhadap ukuran data mentah. loadMemoryUsageFactor: 1 # Faktor perkalian untuk menghitung penggunaan memori saat memuat segmen. enableDisk: false # Menentukan apakah node kueri dapat memuat indeks disk dan melakukan pencarian di atasnya. maxDiskUsagePercentage: 95 grouping: enabled: true maxNQ: 1000 topKMergeRatio: 20 scheduler: receiveChanSize: 10240 unsolvedQueueSize: 10240 # Rasio konkurensi untuk tugas baca, seperti tugas search dan query. # Konkurensi baca maksimum dihitung sebagai runtime.NumCPU × maxReadConcurrentRatio. # Nilai default adalah 2.0, artinya konkurensi baca maksimum adalah runtime.NumCPU × 2. # Konkurensi baca maksimum harus lebih besar dari atau sama dengan 1 dan kurang dari atau sama dengan runtime.NumCPU × 100. # Rentang: (0, 100]. maxReadConcurrentRatio: 1 cpuRatio: 10 # Rasio yang digunakan untuk memperkirakan penggunaan CPU untuk tugas baca. maxTimestampLag: 86400 # Kebijakan penjadwalan untuk tugas baca. Opsi: fifo (default), user-task-polling. scheduleReadPolicy: # fifo: Antrian First-In, First-Out (FIFO) mendukung penjadwalan. # user-task-polling: # Tugas pengguna dipolling dan dijadwalkan satu per satu. # Penjadwalan adil di tingkat tugas. # Kebijakan ini berdasarkan username untuk otentikasi. # Username kosong dianggap sebagai pengguna yang sama. # Jika tidak ada beberapa pengguna, kebijakan ini berubah menjadi FIFO. name: fifo maxPendingTask: 10240 # Konfigurasi user-task-polling: taskQueueExpire: 60 # Waktu kedaluwarsa dalam detik untuk antrian tugas pengguna internal setelah menjadi kosong. Default: 60 (1 menit). enableCrossUserGrouping: false # Menentukan apakah pengelompokan lintas pengguna diaktifkan saat menggunakan kebijakan user-task-polling. Default: false. Atur ke false jika tugas pengguna tidak dapat digabung dengan pengguna lain. maxPendingTaskPerUser: 1024 # Jumlah maksimum tugas tertunda per pengguna dalam penjadwal. Default: 50. grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 indexCoord: bindIndexNodeMode: enable: false withCred: false segment: minSegmentNumRowsToEnableIndex: 1024 # Ambang batas. Jika jumlah baris dalam segmen kurang dari nilai ini, segmen tersebut tidak diindeks. indexNode: scheduler: buildParallel: 1 enableDisk: true # Menentukan apakah node indeks dapat membangun indeks vektor on-disk. maxDiskUsagePercentage: 95 grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 dataCoord: channel: watchTimeoutInterval: 300 # Timeout dalam detik untuk menonton saluran. Pembaruan tickler DataNode terhadap progres watch akan mereset timer timeout. balanceSilentDuration: 300 # Durasi dalam detik sebelum channelBalancer pada dataCoord dijalankan. balanceInterval: 360 # Interval dalam detik saat channelBalancer pada dataCoord memeriksa status keseimbangan. segment: maxSize: 1024 # Ukuran maksimum segmen, dalam MB. diskSegmentMaxSize: 2048 # Ukuran maksimum dalam MB untuk segmen koleksi yang memiliki indeks on-disk. sealProportion: 0.12 # Waktu kedaluwarsa penugasan, dalam milidetik. # Peringatan: Ini adalah parameter ahli dan sangat terkait dengan integritas data. Jangan ubah tanpa tujuan spesifik # dan pemahaman mendalam tentang skenario. Jika Anda harus mengubah # parameter ini, pastikan nilai barunya lebih besar dari nilai sebelumnya yang digunakan sebelum restart. # Jika tidak, risiko kehilangan data sangat tinggi. assignmentExpiration: 2000 maxLife: 86400 # Masa hidup maksimum segmen, dalam detik. (24 × 60 × 60) # Jika segmen tidak menerima catatan DML dalam maxIdleTime dan ukurannya lebih besar dari # minSizeFromIdleToSealed, Milvus secara otomatis menyegelnya. # Waktu idle maksimum segmen, dalam detik. (10 × 60) maxIdleTime: 600 minSizeFromIdleToSealed: 16 # Ukuran minimum dalam MB agar segmen disegel setelah idle. # Jumlah maksimum file binary logging untuk satu segmen. Segmen akan disegel jika # jumlah file binary logging mencapai nilai ini. maxBinlogFileNumber: 32 smallProportion: 0.5 # Segmen dianggap "segmen kecil" jika jumlah barisnya lebih kecil dari # (smallProportion × jumlah baris maksimum segmen). # Kompaksi terjadi pada segmen kecil jika segmen setelah kompaksi memiliki compactableProportion: 0.85 # lebih dari (compactableProportion × jumlah baris maksimum segmen) baris. # Nilai ini harus lebih besar dari atau sama dengan <smallProportion>. # Selama kompaksi, jumlah baris dalam segmen dapat melebihi jumlah baris maksimum sebesar (expansionRate - 1) × 100%. expansionRate: 1.25 # Menentukan apakah segmen level-nol diaktifkan. enableLevelZero: false enableCompaction: true # Menentukan apakah kompaksi segmen data diaktifkan. compaction: enableAutoCompaction: true rpcTimeout: 10 # Timeout untuk permintaan RPC kompaksi, dalam detik. maxParallelTaskNum: 10 # Jumlah maksimum tugas kompaksi paralel. indexBasedCompaction: true levelzero: forceTrigger: minSize: 8 # Ukuran minimum dalam MB untuk memaksa memicu kompaksi LevelZero. deltalogMinNum: 10 # Jumlah minimum file deltalog untuk memaksa memicu kompaksi LevelZero. enableGarbageCollection: true gc: interval: 3600 # Interval pengumpulan sampah (GC), dalam detik. missingTolerance: 3600 # Durasi toleransi dalam detik untuk metadata file yang hilang. dropTolerance: 10800 # Durasi toleransi dalam detik untuk file yang termasuk entitas yang di-drop. enableActiveStandby: false grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 dataNode: dataSync: flowGraph: maxQueueLength: 16 # Panjang maksimum antrian tugas dalam flow graph. maxParallelism: 1024 # Jumlah maksimum tugas yang dapat berjalan secara paralel dalam flow graph. maxParallelSyncMgrTasks: 256 # Jumlah maksimum tugas sinkronisasi konkuren untuk manajer sinkronisasi DataNode secara global. skipMode: # Jika hanya pesan timetick yang ada dalam flow graph selama periode lebih lama dari coldTime, # flow graph memasuki mode skip untuk melewati sebagian besar timetick. Ini mengurangi biaya, terutama saat ada banyak saluran. enable: true skipNum: 4 coldTime: 60 segment: insertBufSize: 16777216 # Ukuran buffer maksimum untuk flush pada satu segmen. deleteBufBytes: 67108864 # Ukuran buffer maksimum untuk flush penghapusan pada satu saluran. syncPeriod: 600 # Periode dalam detik untuk menyinkronkan segmen jika buffer tidak kosong. # Anda dapat menentukan alamat IP. Contoh: # ip: 127.0.0.1 grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 memory: forceSyncEnable: true # Atur ke `true` untuk memaksa sinkronisasi jika penggunaan memori terlalu tinggi. forceSyncSegmentNum: 1 # Jumlah segmen yang akan disinkronkan. Segmen dengan buffer terbesar disinkronkan terlebih dahulu. watermarkStandalone: 0.2 # Watermark memori untuk mode standalone. Saat watermark ini tercapai, segmen disinkronkan. watermarkCluster: 0.5 # Watermark memori untuk mode kluster. Saat watermark ini tercapai, segmen disinkronkan. timetick: byRPC: true channel: # Menentukan ukuran pool kerja global untuk semua saluran. # Jika parameter ini kurang dari atau sama dengan 0, diatur ke jumlah maksimum CPU yang dapat mengeksekusi. # Disarankan mengatur nilai lebih besar untuk jumlah koleksi yang besar guna menghindari blocking. workPoolSize: -1 # Menentukan ukuran pool kerja global untuk pembaruan checkpoint saluran. # Jika parameter ini kurang dari atau sama dengan 0, diatur ke 1000. # Disarankan mengatur nilai lebih besar untuk jumlah koleksi yang besar guna menghindari blocking. updateChannelCheckpointMaxParallel: 1000 grpc: client: compressionEnabled: false dialTimeout: 200 keepAliveTime: 10000 keepAliveTimeout: 20000 maxMaxAttempts: 10 initialBackOff: 0.2 # detik maxBackoff: 10 # detik quotaAndLimits: enabled: true # Atur ke `true` untuk mengaktifkan kuota dan batasan, atau `false` untuk menonaktifkan. limits: maxCollectionNum: 65536 maxCollectionNumPerDB: 65536 # Interval dalam detik saat quotaCenter # mengumpulkan metrik dari proxy, kluster kueri, dan kluster data. # Rentang: 0 hingga 65536. quotaCenterCollectInterval: 3 ddl: enabled: false collectionRate: -1 # Batas laju dalam permintaan per detik (qps) untuk CreateCollection, DropCollection, LoadCollection, dan ReleaseCollection. Default: tanpa batas. partitionRate: -1 # Batas laju dalam qps untuk CreatePartition, DropPartition, LoadPartition, dan ReleasePartition. Default: tanpa batas. indexRate: enabled: false max: -1 # Batas laju dalam qps untuk CreateIndex dan DropIndex. Default: tanpa batas. flushRate: enabled: false max: -1 # Batas laju dalam qps untuk operasi flush. Default: tanpa batas. compactionRate: enabled: false max: -1 # Batas laju dalam qps untuk kompaksi manual. Default: tanpa batas. dml: # Batasan laju DML. Default: tanpa batas. # Laju tidak melebihi nilai maksimum. enabled: false insertRate: collection: max: -1 # Laju maksimum dalam MB/s. Default: tanpa batas. max: -1 # Laju maksimum dalam MB/s. Default: tanpa batas. upsertRate: collection: max: -1 # Laju maksimum dalam MB/s. Default: tanpa batas. max: -1 # Laju maksimum dalam MB/s. Default: tanpa batas. deleteRate: collection: max: -1 # Laju maksimum dalam MB/s. Default: tanpa batas. max: -1 # Laju maksimum dalam MB/s. Default: tanpa batas. bulkLoadRate: collection: max: -1 # Laju maksimum dalam MB/s. Default: tanpa batas. Belum didukung. TODO: Batasi laju bulkLoad. max: -1 # Laju maksimum dalam MB/s. Default: tanpa batas. Belum didukung. TODO: Batasi laju bulkLoad. dql: # Batasan laju DQL. Default: tanpa batas. # Laju tidak melebihi nilai maksimum. enabled: false searchRate: collection: max: -1 # Laju maksimum dalam vektor per detik (vps). Default: tanpa batas. max: -1 # Laju maksimum dalam vps. Default: tanpa batas. queryRate: collection: max: -1 # Laju maksimum dalam qps. Default: tanpa batas. max: -1 # Laju maksimum dalam qps. Default: tanpa batas. limitWriting: # forceDeny: false memungkinkan permintaan DML (kecuali dalam kondisi tertentu, # seperti memori node mencapai watermark). forceDeny: true selalu menolak semua permintaan DML. forceDeny: false ttProtection: enabled: false # Menunjukkan tekanan balik untuk operasi DML. # Laju DML dikurangi berdasarkan rasio keterlambatan time tick terhadap maxTimeTickDelay. # Jika keterlambatan time tick lebih besar dari maxTimeTickDelay, semua permintaan DML ditolak. # Satuan: detik. maxTimeTickDelay: 300 memProtection: # Jika penggunaan memori > memoryHighWaterLevel, semua permintaan DML ditolak. # Jika memoryLowWaterLevel < penggunaan memori < memoryHighWaterLevel, laju DML dikurangi. # Jika penggunaan memori < memoryLowWaterLevel, tidak ada tindakan. enabled: true dataNodeMemoryLowWaterLevel: 0.85 # memoryLowWaterLevel di DataNode. Rentang: (0, 1]. dataNodeMemoryHighWaterLevel: 0.95 # memoryHighWaterLevel di DataNode. Rentang: (0, 1]. queryNodeMemoryLowWaterLevel: 0.85 # memoryLowWaterLevel di QueryNode. Rentang: (0, 1]. queryNodeMemoryHighWaterLevel: 0.95 # memoryHighWaterLevel di QueryNode. Rentang: (0, 1]. growingSegmentsSizeProtection: # Tidak ada tindakan jika ukuran segmen growing kurang dari watermark rendah. # Saat ukuran segmen growing melebihi watermark rendah, laju DML dikurangi, # tetapi laju tidak akan lebih rendah dari minRateRatio × dmlRate. enabled: false minRateRatio: 0.5 lowWaterLevel: 0.2 highWaterLevel: 0.4 diskProtection: enabled: true # Jika ukuran total file di object storage lebih besar dari diskQuota, semua permintaan DML ditolak. diskQuota: -1 # Kuota disk dalam MB. Rentang: (0, +inf). Default: tanpa batas. diskQuotaPerCollection: -1 # Kuota disk per koleksi dalam MB. Rentang: (0, +inf). Default: tanpa batas. limitReading: # forceDeny: false memungkinkan permintaan DQL (kecuali dalam beberapa # kondisi tertentu, seperti koleksi sedang di-drop). forceDeny: true selalu menolak semua permintaan DQL. forceDeny: false queueProtection: enabled: false # Menunjukkan bahwa sistem mengalami tekanan balik pada jalur Search/Query. # Jika jumlah kueri (NQ) dalam antrian QueryNode mana pun lebih besar dari nqInQueueThreshold, laju search dan query secara bertahap berkurang # hingga NQ dalam antrian tidak lagi melebihi ambang batas. NQ permintaan kueri dianggap 1. # Tipe: integer. Default: tanpa batas. nqInQueueThreshold: -1 # Menunjukkan bahwa sistem mengalami tekanan balik pada jalur Search/Query. # Jika latensi antrian DQL lebih besar dari queueLatencyThreshold, laju search dan query secara bertahap berkurang # hingga latensi antrian tidak lagi melebihi ambang batas. # Latensi mengacu pada latensi rata-rata selama periode tertentu. # Satuan: milidetik. Default: tanpa batas. queueLatencyThreshold: -1 resultProtection: enabled: false # Menunjukkan bahwa sistem mengalami tekanan balik pada jalur Search/Query. # Jika laju hasil DQL lebih besar dari maxReadResultRate, laju search dan query secara bertahap berkurang # hingga laju hasil baca tidak lagi melebihi ambang batas. # Satuan: MB/s. Default: tanpa batas. maxReadResultRate: -1 # Kecepatan pengurangan laju search dan query. # Rentang: (0, 1]. coolOffSpeed: 0.9 -
Pada kotak dialog Note, masukkan alasan perubahan dan klik OK.
Instans akan secara otomatis restart setelah pengiriman jika parameter yang dimodifikasi memerlukannya. Selama proses ini, instans memasuki status Upgrading. Setelah pembaruan selesai, instans kembali ke status Running.