Anda dapat melihat dan memodifikasi konfigurasi instans di Konsol Vector Retrieval Service for Milvus. Topik ini menjelaskan cara memperbarui konfigurasi instans Milvus.
Prosedur
Buka halaman konfigurasi instans.
Di panel navigasi kiri, klik Instances.
Di bilah menu atas, pilih wilayah yang sesuai.
Di halaman Instances, klik nama instans Milvus Anda.
Pilih tab Configurations.
Di kotak teks Configurations, salin dan tempel kode berikut untuk menimpa konfigurasi default, lalu klik Save Configurations.
Kode harus dalam format YAML. Contoh:
# Konfigurasi untuk rootCoord, yang menangani permintaan DDL dan DCL. rootCoord: maxDatabaseNum: 64 # Jumlah maksimum database. maxPartitionNum: 4.096 # Jumlah maksimum partisi dalam sebuah koleksi. minSegmentSizeToEnableIndex: 1.024 # Jika segmen lebih kecil dari nilai ini, maka tidak diindeks. importTaskExpiration: 900 # Durasi dalam detik setelah impor tugas kedaluwarsa dan dihentikan. Nilai default: 900 (15 menit). importTaskRetention: 86.400 # Durasi minimum dalam detik bahwa Milvus menyimpan catatan tugas impor. Nilai default: 86.400 (24 jam). grpc: serverMaxSendSize: 536.870.912 serverMaxRecvSize: 268.435.456 clientMaxSendSize: 268.435.456 clientMaxRecvSize: 536.870.912 # Konfigurasi untuk proxy, yang memvalidasi permintaan klien dan mengurangi hasil yang dikembalikan. proxy: timeTickInterval: 200 # Interval dalam milidetik di mana proxy menyinkronkan waktu tick. healthCheckTimeout: 3.000 # Interval dalam milidetik untuk pemeriksaan kesehatan komponen. maxNameLength: 255 # Panjang maksimum nama koleksi atau alias. # Jumlah maksimum bidang dalam sebuah koleksi. # Mulai dari Milvus 2.2.0, jangan atur maxFieldNum menjadi 64 atau lebih besar. # Sesuaikan parameter ini dengan risiko Anda sendiri. maxFieldNum: 64 maxTaskNum: 1.024 # Jumlah maksimum tugas dalam antrian tugas proxy. grpc: serverMaxSendSize: 268.435.456 serverMaxRecvSize: 67.108.864 clientMaxSendSize: 268.435.456 clientMaxRecvSize: 67.108.864 # Konfigurasi untuk queryCoord, yang mengelola topologi dan penyeimbangan beban untuk node query, serta menangani handoff dari segmen bertumbuh ke segmen disegel. queryCoord: autoHandoff: true # Mengaktifkan atau menonaktifkan handoff otomatis. autoBalance: true # Mengaktifkan atau menonaktifkan penyeimbangan otomatis. balancer: ScoreBasedBalancer # Penyeimbang yang digunakan. overloadedMemoryThresholdPercentage: 90 # Ambang batas overload memori, sebagai persentase. balanceIntervalSeconds: 60 memoryUsageMaxDifferencePercentage: 30 checkInterval: 1.000 channelTaskTimeout: 60.000 # 1 menit segmentTaskTimeout: 120.000 # 2 menit distPullInterval: 500 heartbeatAvailableInterval: 10.000 # Interval dalam detik. Hanya Query Nodes yang mengambil denyut jantung dalam interval ini yang dianggap tersedia. loadTimeoutSeconds: 600 checkHandoffInterval: 5.000 grpc: serverMaxSendSize: 536.870.912 serverMaxRecvSize: 268.435.456 clientMaxSendSize: 268.435.456 clientMaxRecvSize: 536.870.912 # Konfigurasi untuk queryNode, yang menjalankan pencarian hibrid antara data vektor dan skalar. queryNode: dataSync: flowGraph: maxQueueLength: 16 # Panjang maksimum antrian tugas dalam graf aliran. maxParallelism: 1.024 # Jumlah maksimum tugas paralel dalam graf aliran. stats: publishInterval: 1.000 # Interval dalam milidetik di mana Query Node melaporkan informasi node. segcore: cgoPoolSizeRatio: 2.0 # Rasio ukuran kolam cgo terhadap konkurensi baca maksimum. knowhereThreadPoolNumRatio: 4 # Gunakan lebih banyak thread untuk meningkatkan throughput SSD untuk indeks berbasis disk. # Parameter ini hanya berlaku jika enable-disk diatur ke true. # Nilai ini harus lebih besar dari 1 dan kurang dari 32. chunkRows: 128 # Jumlah vektor dalam sebuah chunk. exprEvalBatchSize: 8.192 # Ukuran batch untuk pelaksana mendapatkan batch berikutnya. interimIndex: # Membuat indeks vektor sementara untuk segmen bertumbuh atau log biner untuk mempercepat pencarian. enableIndex: true nlist: 128 # Nilai nlist untuk indeks segmen. nprobe: 16 # Nilai nprobe untuk mencari segmen. Nilai ini harus lebih kecil dari nlist dan bergantung pada kebutuhan akurasi Anda. 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 akan mengaktifkan query node untuk memuat indeks disk dan mencarinya. maxDiskUsagePercentage: 95 grouping: enabled: true maxNQ: 1.000 topKMergeRatio: 20 scheduler: receiveChanSize: 10.240 unsolvedQueueSize: 10.240 # Rasio konkurensi untuk tugas baca, seperti tugas pencarian dan kueri. # Konkurensi baca maksimum dihitung sebagai runtime.NumCPU × maxReadConcurrentRatio. # Nilai default adalah 2, artinya konkurensi baca maksimum adalah runtime.NumCPU × 2. # Konkurensi baca maksimum harus lebih besar 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: 86.400 # Kebijakan penjadwalan untuk tugas baca. Nilai default: fifo. Nilai opsional: 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 pada tingkat tugas. # Kebijakan ini didasarkan pada nama pengguna untuk otentikasi. # Nama pengguna kosong dianggap sebagai pengguna yang sama. # Jika tidak ada beberapa pengguna, kebijakan default ke FIFO. name: fifo maxPendingTask: 10.240 # Konfigurasi user-task-polling: taskQueueExpire: 60 # Waktu kedaluwarsa dalam detik untuk antrian tugas pengguna internal setelah menjadi kosong. Nilai default: 60 (1 menit). enableCrossUserGrouping: false # Mengaktifkan atau menonaktifkan pengelompokan lintas pengguna saat menggunakan kebijakan user-task-polling. Nilai default: false. Atur ini ke false jika tugas pengguna tidak dapat digabungkan dengan lainnya. maxPendingTaskPerUser: 1.024 # Jumlah maksimum tugas tertunda per pengguna dalam penjadwal. Nilai default: 50. grpc: serverMaxSendSize: 536.870.912 serverMaxRecvSize: 268.435.456 clientMaxSendSize: 268.435.456 clientMaxRecvSize: 536.870.912 indexCoord: bindIndexNodeMode: enable: false withCred: false segment: minSegmentNumRowsToEnableIndex: 1.024 # Ambang batas minimum. Jika jumlah baris dalam segmen kurang dari nilai ini, segmen tidak diindeks. indexNode: scheduler: buildParallel: 1 enableDisk: true # Mengaktifkan atau menonaktifkan index node untuk membangun indeks vektor disk. maxDiskUsagePercentage: 95 grpc: serverMaxSendSize: 536.870.912 serverMaxRecvSize: 268.435.456 clientMaxSendSize: 268.435.456 clientMaxRecvSize: 536.870.912 dataCoord: channel: watchTimeoutInterval: 300 # Timeout dalam detik untuk memantau saluran. Pembaruan kemajuan oleh DataNode me-reset timer timeout. balanceSilentDuration: 300 # Durasi dalam detik sebelum channelBalancer pada dataCoord berjalan. balanceInterval: 360 # Interval dalam detik di mana channelBalancer pada dataCoord memeriksa status keseimbangan. segment: maxSize: 1.024 # Ukuran maksimum segmen, dalam MB. diskSegmentMaxSize: 2.048 # Ukuran maksimum dalam MB segmen untuk koleksi yang memiliki indeks berbasis disk. sealProportion: 0,12 # Waktu kedaluwarsa penugasan, dalam milidetik. # Peringatan: ini adalah parameter ahli dan sangat berkaitan dengan integritas data. Jangan ubah tanpa tujuan spesifik dan pemahaman solid tentang skenario. Jika Anda harus mengubah parameter ini, pastikan nilai baru lebih besar dari nilai sebelumnya yang digunakan sebelum restart. # Jika tidak, ada risiko tinggi kehilangan data. assignmentExpiration: 2.000 maxLife: 86.400 # Umur 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 untuk segmen disegel setelah idle. # Jumlah maksimum file log biner untuk satu segmen. Segmen disegel jika jumlah file log biner mencapai nilai ini. maxBinlogFileNumber: 32 smallProportion: 0,5 # Segmen dianggap "segmen kecil" ketika jumlah barisnya lebih kecil dari (smallProportion × jumlah maksimum baris segmen). # Penggabungan terjadi pada segmen kecil jika segmen setelah penggabungan memiliki lebih dari (compactableProportion × jumlah maksimum baris segmen) baris. compactableProportion: 0,85 # Nilai ini harus lebih besar atau sama dengan <smallProportion>. # Selama penggabungan, jumlah baris dalam segmen dapat melebihi jumlah maksimum baris dengan (expansionRate - 1) × 100%. expansionRate: 1,25 # Mengaktifkan atau menonaktifkan segmen level-zero. enableLevelZero: false enableCompaction: true # Mengaktifkan atau menonaktifkan penggabungan segmen data. compaction: enableAutoCompaction: true rpcTimeout: 10 # Timeout untuk permintaan RPC penggabungan, dalam detik. maxParallelTaskNum: 10 # Jumlah maksimum tugas penggabungan paralel. indexBasedCompaction: true levelzero: forceTrigger: minSize: 8 # Ukuran minimum dalam MB untuk memicu penggabungan LevelZero secara paksa. deltalogMinNum: 10 # Jumlah minimum file deltalog untuk memicu penggabungan LevelZero secara paksa. enableGarbageCollection: true gc: interval: 3.600 # Interval pengumpulan sampah (GC), dalam detik. missingTolerance: 3.600 # Durasi toleransi dalam detik untuk metadata file yang hilang. dropTolerance: 10.800 # Durasi toleransi dalam detik untuk file yang termasuk entitas yang dihapus. enableActiveStandby: false grpc: serverMaxSendSize: 536.870.912 serverMaxRecvSize: 268.435.456 clientMaxSendSize: 268.435.456 clientMaxRecvSize: 536.870.912 dataNode: dataSync: flowGraph: maxQueueLength: 16 # Panjang maksimum antrian tugas dalam graf aliran. maxParallelism: 1.024 # Jumlah maksimum tugas yang dapat dijalankan secara paralel dalam graf aliran. maxParallelSyncMgrTasks: 256 # Jumlah maksimum tugas sinkronisasi bersamaan untuk manajer sinkronisasi DataNode secara global. skipMode: # Jika hanya pesan timetick yang ada dalam graf aliran selama periode lebih lama dari coldTime, # graf aliran masuk mode lewati untuk melewati sebagian besar timetick. Ini mengurangi biaya, terutama jika ada banyak saluran. enable: true skipNum: 4 coldTime: 60 segment: insertBufSize: 16.777.216 # Ukuran buffer maksimum untuk flush segmen tunggal. deleteBufBytes: 67.108.864 # Ukuran buffer maksimum untuk flush penghapusan saluran tunggal. syncPeriod: 600 # Periode dalam detik untuk menyinkronkan segmen jika buffer tidak kosong. # Anda dapat menentukan alamat IP. Contohnya: # ip: 127.0.0.1 grpc: serverMaxSendSize: 536.870.912 serverMaxRecvSize: 268.435.456 clientMaxSendSize: 268.435.456 clientMaxRecvSize: 536.870.912 memory: forceSyncEnable: true # `true`: Memaksa sinkronisasi jika penggunaan memori terlalu tinggi. forceSyncSegmentNum: 1 # Jumlah segmen untuk disinkronkan. Segmen dengan buffer terbesar disinkronkan pertama. watermarkStandalone: 0,2 # Watermark memori untuk mode mandiri. Ketika watermark ini tercapai, segmen disinkronkan. watermarkCluster: 0,5 # Watermark memori untuk mode kluster. Ketika 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, itu diatur ke jumlah maksimum CPU yang dapat dieksekusi. # Tetapkan nilai lebih besar untuk jumlah koleksi besar untuk menghindari pemblokiran. workPoolSize: -1 # Menentukan ukuran pool kerja global untuk pembaruan checkpoint saluran. # Jika parameter ini kurang dari atau sama dengan 0, itu diatur ke 1.000. # Tetapkan nilai lebih besar untuk jumlah koleksi besar untuk menghindari pemblokiran. updateChannelCheckpointMaxParallel: 1.000 grpc: client: compressionEnabled: false dialTimeout: 200 keepAliveTime: 10.000 keepAliveTimeout: 20.000 maxAttempts: 10 initialBackoff: 0,2 # detik maxBackoff: 10 # detik quotaAndLimits: enabled: true # `true`: Mengaktifkan kuota dan batas. `false`: Menonaktifkan kuota dan batas. limits: maxCollectionNum: 65.536 maxCollectionNumPerDB: 65.536 # Interval dalam detik di mana quotaCenter # mengumpulkan metrik dari proxy, kluster query, dan kluster data. # Rentang: 0 hingga 65.536. quotaCenterCollectInterval: 3 ddl: enabled: false collectionRate: -1 # Batas laju dalam permintaan per detik (qps) untuk CreateCollection, DropCollection, LoadCollection, dan ReleaseCollection. Default: tidak ada batas. partitionRate: -1 # Batas laju dalam qps untuk CreatePartition, DropPartition, LoadPartition, dan ReleasePartition. Default: tidak ada batas. indexRate: enabled: false max: -1 # Batas laju dalam qps untuk CreateIndex dan DropIndex. Default: tidak ada batas. flushRate: enabled: false max: -1 # Batas laju dalam qps untuk operasi flush. Default: tidak ada batas. compactionRate: enabled: false max: -1 # Batas laju dalam qps untuk penggabungan manual. Default: tidak ada batas. dml: # Batas laju DML. Default: tidak ada batas. # Laju tidak melebihi nilai maksimum. enabled: false insertRate: collection: max: -1 # Laju maksimum dalam MB/s. Default: tidak ada batas. max: -1 # Laju maksimum dalam MB/s. Default: tidak ada batas. upsertRate: collection: max: -1 # Laju maksimum dalam MB/s. Default: tidak ada batas. max: -1 # Laju maksimum dalam MB/s. Default: tidak ada batas. deleteRate: collection: max: -1 # Laju maksimum dalam MB/s. Default: tidak ada batas. max: -1 # Laju maksimum dalam MB/s. Default: tidak ada batas. bulkLoadRate: collection: max: -1 # Laju maksimum dalam MB/s. Default: tidak ada batas. Belum didukung. TODO: Batasi laju bulkLoad. max: -1 # Laju maksimum dalam MB/s. Default: tidak ada batas. Belum didukung. TODO: Batasi laju bulkLoad. dql: # Batas laju DQL. Default: tidak ada batas. # Laju tidak melebihi nilai maksimum. enabled: false searchRate: collection: max: -1 # Laju maksimum dalam vektor per detik (vps). Default: tidak ada batas. max: -1 # Laju maksimum dalam vps. Default: tidak ada batas. queryRate: collection: max: -1 # Laju maksimum dalam qps. Default: tidak ada batas. max: -1 # Laju maksimum dalam qps. Default: tidak ada batas. limitWriting: # forceDeny: false mengizinkan permintaan DML (kecuali dalam kondisi tertentu, seperti penggunaan 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. # Unit: 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 yang diambil. enabled: true dataNodeMemoryLowWaterLevel: 0,85 # memoryLowWaterLevel di DataNodes. Rentang: (0, 1]. dataNodeMemoryHighWaterLevel: 0,95 # memoryHighWaterLevel di DataNodes. Rentang: (0, 1]. queryNodeMemoryLowWaterLevel: 0,85 # memoryLowWaterLevel di QueryNodes. Rentang: (0, 1]. queryNodeMemoryHighWaterLevel: 0,95 # memoryHighWaterLevel di QueryNodes. Rentang: (0, 1]. growingSegmentsSizeProtection: # Tidak ada tindakan yang diambil jika ukuran segmen bertumbuh kurang dari watermark rendah. # Saat ukuran segmen bertumbuh 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 total ukuran file dalam penyimpanan objek lebih besar dari diskQuota, semua permintaan DML ditolak. diskQuota: -1 # Kuota disk dalam MB. Rentang: (0, +inf). Default: tidak ada batas. diskQuotaPerCollection: -1 # Kuota disk per koleksi dalam MB. Rentang: (0, +inf). Default: tidak ada batas. limitReading: # forceDeny: false mengizinkan permintaan DQL (kecuali dalam beberapa kondisi tertentu, seperti koleksi dihapus). forceDeny: true selalu menolak semua permintaan DQL. forceDeny: false queueProtection: enabled: false # Menunjukkan bahwa sistem sedang mengalami tekanan balik pada jalur Search/Query. # Jika jumlah kueri (NQ) dalam antrian QueryNode apa pun lebih besar dari nqInQueueThreshold, laju pencarian&kueri berkurang secara bertahap # hingga NQ dalam antrian tidak lagi melebihi ambang batas. NQ dari permintaan kueri dianggap 1. # Tipe: integer. Default: tidak ada batas. nqInQueueThreshold: -1 # Menunjukkan bahwa sistem sedang mengalami tekanan balik pada jalur Search/Query. # Jika latensi antrian DQL lebih besar dari queueLatencyThreshold, laju pencarian&kueri berkurang secara bertahap # hingga latensi antrian tidak lagi melebihi ambang batas. # Latensi merujuk pada latensi rata-rata selama periode. # Unit: milidetik. Default: tidak ada batas. queueLatencyThreshold: -1 resultProtection: enabled: false # Menunjukkan bahwa sistem sedang mengalami tekanan balik pada jalur Search/Query. # Jika laju hasil DQL lebih besar dari maxReadResultRate, laju pencarian&kueri berkurang secara bertahap # hingga laju hasil baca tidak lagi melebihi ambang batas. # Unit: MB/s. Default: tidak ada batas. maxReadResultRate: -1 # Kecepatan penurunan laju pencarian dan kueri. # Rentang: (0, 1]. coolOffSpeed: 0,9Di dialog Note, masukkan alasan perubahan dan klik OK.
Jika parameter yang dimodifikasi memerlukan restart, instans akan restart secara otomatis setelah Anda mengirimkan perubahan. Selama proses ini, status instans berubah menjadi Upgrading. Setelah pembaruan konfigurasi selesai, status kluster kembali ke Running.