Vector Retrieval Service for Milvus コンソールでインスタンス構成を表示および変更できます。このトピックでは、Milvus インスタンスの構成を更新する方法について説明します。
手順
インスタンス構成ページに移動します。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
上部のメニューバーで、リージョンを選択します。
[インスタンス] ページで、Milvus インスタンスの名前をクリックします。
[構成] タブを選択します。
[構成] テキストボックスに、次のコードをコピーして貼り付けてデフォルトの構成を上書きし、[構成を保存] をクリックします。
コードは YAML フォーマットである必要があります。例:
# DDL および DCL リクエストを処理する rootCoord の構成。 rootCoord: maxDatabaseNum: 64 # データベースの最大数。 maxPartitionNum: 4096 # コレクション内のパーティションの最大数。 minSegmentSizeToEnableIndex: 1024 # セグメントがこの値より小さい場合、インデックスは作成されません。 importTaskExpiration: 900 # インポートタスクが有効期限切れになり、終了するまでの期間 (秒)。デフォルト値: 900 (15 分)。 importTaskRetention: 86400 # Milvus がインポートタスクのレコードを保持する最小期間 (秒)。デフォルト値: 86400 (24 時間)。 grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 # クライアントリクエストを検証し、返される結果を削減するプロキシの構成。 proxy: timeTickInterval: 200 # プロキシがタイムティックを同期する間隔 (ミリ秒)。 healthCheckTimeout: 3000 # コンポーネントのヘルスチェックの間隔 (ミリ秒)。 maxNameLength: 255 # コレクション名またはエイリアスの最大長。 # コレクション内のフィールドの最大数。 # Milvus 2.2.0 以降、maxFieldNum を 64 以上の値に設定しないでください。 # このパラメーターは自己責任で調整してください。 maxFieldNum: 64 maxTaskNum: 1024 # プロキシタスクキュー内のタスクの最大数。 grpc: serverMaxSendSize: 268435456 serverMaxRecvSize: 67108864 clientMaxSendSize: 268435456 clientMaxRecvSize: 67108864 # クエリノードのトポロジーと負荷分散を管理し、成長中のセグメントから密閉されたセグメントへのハンドオフを処理する queryCoord の構成。 queryCoord: autoHandoff: true # 自動ハンドオフを有効または無効にします。 autoBalance: true # 自動バランシングを有効または無効にします。 balancer: ScoreBasedBalancer # 使用するバランサー。 overloadedMemoryThresholdPercentage: 90 # メモリ過負荷のしきい値 (パーセンテージ)。 balanceIntervalSeconds: 60 memoryUsageMaxDifferencePercentage: 30 checkInterval: 1000 channelTaskTimeout: 60000 # 1 分 segmentTaskTimeout: 120000 # 2 分 distPullInterval: 500 heartbeatAvailableInterval: 10000 # 間隔 (秒)。この間隔内にハートビートをフェッチするクエリノードのみが利用可能と見なされます。 loadTimeoutSeconds: 600 checkHandoffInterval: 5000 grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 # ベクターデータとスカラーデータ間のハイブリッド検索を実行する queryNode の構成。 queryNode: dataSync: flowGraph: maxQueueLength: 16 # フローグラフ内のタスクキューの最大長。 maxParallelism: 1024 # フローグラフ内の並列タスクの最大数。 stats: publishInterval: 1000 # クエリノードがノード情報をレポートする間隔 (ミリ秒)。 segcore: cgoPoolSizeRatio: 2.0 # cgo プールサイズと最大読み取り同時実行数の比率。 knowhereThreadPoolNumRatio: 4 # オンディスクインデックスの SSD スループットを向上させるためにより多くのスレッドを使用します。 # このパラメーターは、enable-disk が true に設定されている場合にのみ有効です。 # この値は 1 より大きく 32 未満である必要があります。 chunkRows: 128 # チャンク内のベクターの数。 exprEvalBatchSize: 8192 # エグゼキュータが次のバッチを取得するためのバッチサイズ。 interimIndex: # 成長中のセグメントまたはバイナリログの中間ベクターインデックスを構築して、検索を高速化します。 enableIndex: true nlist: 128 # セグメントインデックスの nlist 値。 nprobe: 16 # セグメントを検索するための nprobe 値。この値は nlist より小さくする必要があり、精度の要件によって異なります。 memExpansionRate: 1.15 # 中間インデックスを構築するためのメモリ使用量と生データサイズの比率。 loadMemoryUsageFactor: 1 # セグメントをロードする際のメモリ使用量を計算するための乗算係数。 enableDisk: false # クエリノードがディスクインデックスをロードして検索できるようにするかどうかを指定します。 maxDiskUsagePercentage: 95 grouping: enabled: true maxNQ: 1000 topKMergeRatio: 20 scheduler: receiveChanSize: 10240 unsolvedQueueSize: 10240 # 検索やクエリなどの読み取りタスクの同時実行率。 # 最大読み取り同時実行数は runtime.NumCPU × maxReadConcurrentRatio として計算されます。 # デフォルト値は 2 で、最大読み取り同時実行数は runtime.NumCPU × 2 です。 # 最大読み取り同時実行数は 1 以上、runtime.NumCPU × 100 以下である必要があります。 # 範囲: (0, 100]。 maxReadConcurrentRatio: 1 cpuRatio: 10 # 読み取りタスクの CPU 使用率を推定するために使用される比率。 maxTimestampLag: 86400 # 読み取りタスクのスケジューリングポリシー。デフォルト値: fifo。オプション値: user-task-polling。 scheduleReadPolicy: # fifo: 先入れ先出し (FIFO) キューがスケジュールをサポートします。 # user-task-polling: # ユーザータスクはポーリングされ、1 つずつスケジュールされます。 # スケジューリングはタスクレベルで公平です。 # ポリシーは認証のためのユーザー名に基づいています。 # 空のユーザー名は同じユーザーとして扱われます。 # 複数のユーザーがいない場合、ポリシーは FIFO にデフォルト設定されます。 name: fifo maxPendingTask: 10240 # user-task-polling 構成: taskQueueExpire: 60 # 内部ユーザータスクキューが空になった後の有効期限 (秒)。デフォルト値: 60 (1 分)。 enableCrossUserGrouping: false # user-task-polling ポリシーを使用する際のクロスユーザーグルーピングを有効または無効にします。デフォルト値: false。ユーザーのタスクを他のタスクとマージできない場合は、これを false に設定します。 maxPendingTaskPerUser: 1024 # スケジューラ内のユーザーあたりの保留中タスクの最大数。デフォルト値: 50。 grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 indexCoord: bindIndexNodeMode: enable: false withCred: false segment: minSegmentNumRowsToEnableIndex: 1024 # 最小しきい値。セグメント内の行数がこの値より少ない場合、セグメントはインデックス付けされません。 indexNode: scheduler: buildParallel: 1 enableDisk: true # インデックスノードがディスクベクターインデックスを構築できるようにするかどうかを有効または無効にします。 maxDiskUsagePercentage: 95 grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 dataCoord: channel: watchTimeoutInterval: 300 # チャンネルを監視するためのタイムアウト (秒)。DataNode tickler が監視の進行状況を更新すると、タイムアウトタイマーがリセットされます。 balanceSilentDuration: 300 # dataCoord 上の channelBalancer が実行されるまでの期間 (秒)。 balanceInterval: 360 # dataCoord 上の channelBalancer がバランスステータスをチェックする間隔 (秒)。 segment: maxSize: 1024 # セグメントの最大サイズ (MB)。 diskSegmentMaxSize: 2048 # オンディスクインデックスを持つコレクションのセグメントの最大サイズ (MB)。 sealProportion: 0.12 # 割り当ての有効期限 (ミリ秒)。 # 警告: これは専門家向けのパラメーターであり、データ整合性と密接に関連しています。 # 特定の目標とシナリオの確かな理解なしに変更しないでください。変更する必要がある場合は、 # このパラメーターの新しい値が、再起動前に使用された以前の値よりも大きいことを確認してください。 # そうしないと、データ損失のリスクが高くなります。 assignmentExpiration: 2000 maxLife: 86400 # セグメントの最大寿命 (秒)。24 × 60 × 60。 # セグメントが maxIdleTime 内に DML レコードを受け付けず、そのサイズが # minSizeFromIdleToSealed より大きい場合、Milvus は自動的にそれを密閉します。 # セグメントの最大アイドル時間 (秒)。10 × 60。 maxIdleTime: 600 minSizeFromIdleToSealed: 16 # アイドル状態になった後に密閉されるセグメントの最小サイズ (MB)。 # 1 つのセグメントのバイナリログファイルの最大数。 # バイナリログファイルの数がこの値に達すると、セグメントは密閉されます。 maxBinlogFileNumber: 32 smallProportion: 0.5 # セグメントは、その行数が # (smallProportion × セグメントの最大行数) より小さい場合に「小規模セグメント」と見なされます。 # コンパクション後のセグメントが compactableProportion: 0.85 # (compactableProportion × セグメントの最大行数) を超える行を持つ場合、小規模セグメントでコンパクションが発生します。 # この値は <smallProportion> 以上である必要があります。 # コンパクション中、セグメント内の行数は最大行数を (expansionRate - 1) × 100% 超えることがあります。 expansionRate: 1.25 # レベルゼロセグメントを有効または無効にします。 enableLevelZero: false enableCompaction: true # データセグメントのコンパクションを有効または無効にします。 compaction: enableAutoCompaction: true rpcTimeout: 10 # コンパクション RPC リクエストのタイムアウト (秒)。 maxParallelTaskNum: 10 # 並列コンパクションタスクの最大数。 indexBasedCompaction: true levelzero: forceTrigger: minSize: 8 # LevelZero コンパクションを強制的にトリガーするための最小サイズ (MB)。 deltalogMinNum: 10 # LevelZero コンパクションを強制的にトリガーするための deltalog ファイルの最小数。 enableGarbageCollection: true gc: interval: 3600 # ガベージコレクション (GC) の間隔 (秒)。 missingTolerance: 3600 # 不足しているファイルメタデータの許容期間 (秒)。 dropTolerance: 10800 # ドロップされたエンティティに属するファイルの許容期間 (秒)。 enableActiveStandby: false grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 dataNode: dataSync: flowGraph: maxQueueLength: 16 # フローグラフ内のタスクキューの最大長。 maxParallelism: 1024 # フローグラフで並列実行できるタスクの最大数。 maxParallelSyncMgrTasks: 256 # DataNode 同期マネージャーのグローバルな同時同期タスクの最大数。 skipMode: # coldTime より長い期間、フローグラフに timetick メッセージのみが存在する場合、 # フローグラフはスキップモードに入り、ほとんどの timetick をスキップします。これにより、特に多くのチャンネルがある場合にコストが削減されます。 enable: true skipNum: 4 coldTime: 60 segment: insertBufSize: 16777216 # 単一セグメントでフラッシュする最大バッファーサイズ。 deleteBufBytes: 67108864 # 単一チャンネルの削除をフラッシュする最大バッファーサイズ。 syncPeriod: 600 # バッファーが空でない場合にセグメントを同期する期間 (秒)。 # IP アドレスを指定できます。例: # ip: 127.0.0.1 grpc: serverMaxSendSize: 536870912 serverMaxRecvSize: 268435456 clientMaxSendSize: 268435456 clientMaxRecvSize: 536870912 memory: forceSyncEnable: true # `true`: メモリ使用量が高すぎる場合に同期を強制します。 forceSyncSegmentNum: 1 # 同期するセグメントの数。最大のバッファーを持つセグメントが最初に同期されます。 watermarkStandalone: 0.2 # スタンドアロンモードのメモリウォーターマーク。このウォーターマークに達すると、セグメントが同期されます。 watermarkCluster: 0.5 # クラスターモードのメモリウォーターマーク。このウォーターマークに達すると、セグメントが同期されます。 timetick: byRPC: true channel: # すべてのチャンネルのグローバルワークプールのサイズを指定します。 # このパラメーターが 0 以下の場合、実行可能な CPU の最大数に設定されます。 # ブロックを避けるために、多数のコレクションに対してより大きな値を設定します。 workPoolSize: -1 # チャンネルチェックポイント更新のためのグローバルワークプールのサイズを指定します。 # このパラメーターが 0 以下の場合、1000 に設定されます。 # ブロックを避けるために、多数のコレクションに対してより大きな値を設定します。 updateChannelCheckpointMaxParallel: 1000 grpc: client: compressionEnabled: false dialTimeout: 200 keepAliveTime: 10000 keepAliveTimeout: 20000 maxAttempts: 10 initialBackoff: 0.2 # 秒 maxBackoff: 10 # 秒 quotaAndLimits: enabled: true # `true`: クォータと制限を有効にします。`false`: クォータと制限を無効にします。 limits: maxCollectionNum: 65536 maxCollectionNumPerDB: 65536 # quotaCenter が # プロキシ、クエリクラスター、データクラスターからメトリックを収集する間隔 (秒)。 # 範囲: 0 から 65536。 quotaCenterCollectInterval: 3 ddl: enabled: false collectionRate: -1 # CreateCollection、DropCollection、LoadCollection、ReleaseCollection のレート制限 (クエリ/秒 (qps))。デフォルト: 制限なし。 partitionRate: -1 # CreatePartition、DropPartition、LoadPartition、ReleasePartition のレート制限 (qps)。デフォルト: 制限なし。 indexRate: enabled: false max: -1 # CreateIndex および DropIndex のレート制限 (qps)。デフォルト: 制限なし。 flushRate: enabled: false max: -1 # フラッシュ操作のレート制限 (qps)。デフォルト: 制限なし。 compactionRate: enabled: false max: -1 # 手動コンパクションのレート制限 (qps)。デフォルト: 制限なし。 dml: # DML レート制限。デフォルト: 制限なし。 # レートは最大値を超えません。 enabled: false insertRate: collection: max: -1 # 最大レート (MB/秒)。デフォルト: 制限なし。 max: -1 # 最大レート (MB/秒)。デフォルト: 制限なし。 upsertRate: collection: max: -1 # 最大レート (MB/秒)。デフォルト: 制限なし。 max: -1 # 最大レート (MB/秒)。デフォルト: 制限なし。 deleteRate: collection: max: -1 # 最大レート (MB/秒)。デフォルト: 制限なし。 max: -1 # 最大レート (MB/秒)。デフォルト: 制限なし。 bulkLoadRate: collection: max: -1 # 最大レート (MB/秒)。デフォルト: 制限なし。まだサポートされていません。TODO: bulkLoad レートを制限します。 max: -1 # 最大レート (MB/秒)。デフォルト: 制限なし。まだサポートされていません。TODO: bulkLoad レートを制限します。 dql: # DQL レート制限。デフォルト: 制限なし。 # レートは最大値を超えません。 enabled: false searchRate: collection: max: -1 # 最大レート (ベクター/秒 (vps))。デフォルト: 制限なし。 max: -1 # 最大レート (vps)。デフォルト: 制限なし。 queryRate: collection: max: -1 # 最大レート (qps)。デフォルト: 制限なし。 max: -1 # 最大レート (qps)。デフォルト: 制限なし。 limitWriting: # forceDeny: false は DML リクエストを許可します (特定の # 条件下、例えばノードメモリがウォーターマークに達した場合などを除く)。forceDeny: true は常にすべての DML リクエストを拒否します。 forceDeny: false ttProtection: enabled: false # DML 操作のバックプレッシャーを示します。 # DML レートは、タイムティックの遅延と maxTimeTickDelay の比率に基づいて削減されます。 # タイムティックの遅延が maxTimeTickDelay より大きい場合、すべての DML リクエストは拒否されます。 # 単位: 秒。 maxTimeTickDelay: 300 memProtection: # メモリ使用量 > memoryHighWaterLevel の場合、すべての DML リクエストは拒否されます。 # memoryLowWaterLevel < メモリ使用量 < memoryHighWaterLevel の場合、DML レートは削減されます。 # メモリ使用量 < memoryLowWaterLevel の場合、アクションは実行されません。 enabled: true dataNodeMemoryLowWaterLevel: 0.85 # DataNode の memoryLowWaterLevel。範囲: (0, 1]。 dataNodeMemoryHighWaterLevel: 0.95 # DataNode の memoryHighWaterLevel。範囲: (0, 1]。 queryNodeMemoryLowWaterLevel: 0.85 # QueryNode の memoryLowWaterLevel。範囲: (0, 1]。 queryNodeMemoryHighWaterLevel: 0.95 # QueryNode の memoryHighWaterLevel。範囲: (0, 1]。 growingSegmentsSizeProtection: # 成長中のセグメントサイズが低いウォーターマークより小さい場合、アクションは実行されません。 # 成長中のセグメントサイズが低いウォーターマークを超えると、DML レートは削減されますが、 # レートは minRateRatio × dmlRate より低くなることはありません。 enabled: false minRateRatio: 0.5 lowWaterLevel: 0.2 highWaterLevel: 0.4 diskProtection: enabled: true # オブジェクトストレージ内の合計ファイルサイズが diskQuota より大きい場合、すべての DML リクエストは拒否されます。 diskQuota: -1 # ディスククォータ (MB)。範囲: (0, +inf)。デフォルト: 制限なし。 diskQuotaPerCollection: -1 # コレクションごとのディスククォータ (MB)。範囲: (0, +inf)。デフォルト: 制限なし。 limitReading: # forceDeny: false は DQL リクエストを許可します (いくつかの # 特定の条件、例えばコレクションがドロップされている場合などを除く)。forceDeny: true は常にすべての DQL リクエストを拒否します。 forceDeny: false queueProtection: enabled: false # システムが検索/クエリパスでバックプレッシャーを受けていることを示します。 # いずれかの QueryNode のキュー内のクエリ数 (NQ) が nqInQueueThreshold より大きい場合、検索とクエリのレートは徐々に減少し、 # キュー内の NQ がしきい値を超えなくなるまで続きます。クエリリクエストの NQ は 1 と見なされます。 # タイプ: 整数。デフォルト: 制限なし。 nqInQueueThreshold: -1 # システムが検索/クエリパスでバックプレッシャーを受けていることを示します。 # DQL キューイングの待機時間が queueLatencyThreshold より大きい場合、検索とクエリのレートは徐々に減少し、 # キューイングの待機時間がしきい値を超えなくなるまで続きます。 # 待機時間は、ある期間の平均待機時間を指します。 # 単位: ミリ秒。デフォルト: 制限なし。 queueLatencyThreshold: -1 resultProtection: enabled: false # システムが検索/クエリパスでバックプレッシャーを受けていることを示します。 # DQL 結果レートが maxReadResultRate より大きい場合、検索とクエリのレートは徐々に減少し、 # 読み取り結果レートがしきい値を超えなくなるまで続きます。 # 単位: MB/秒。デフォルト: 制限なし。 maxReadResultRate: -1 # 検索およびクエリレートが減少する速度。 # 範囲: (0, 1]。 coolOffSpeed: 0.9[メモ] ダイアログで、変更理由を入力し、[OK] をクリックします。
変更されたパラメーターが再起動を必要とする場合、変更を送信するとインスタンスは自動的に再起動します。このプロセス中、インスタンスのステータスは [アップグレード中] に変わります。構成の更新が完了すると、クラスターのステータスは [実行中] に戻ります。