跳到主要内容

配额和限制相关配置

本主题介绍了Milvus中与配额和限制相关的配置项。

其中一些配置项用于设置Milvus的阈值,以主动限制与集合、分区、索引等相关的DDL/DML/DQL请求。

另一些配置项用于设置背压信号,强制Milvus降低DDL/DML/DQL请求的速率。

quotaAndLimits.limits.maxCollectionNumPerDB

描述默认值
每个数据库中的最大集合数。64

quotaAndLimits.ddl.enabled

描述默认值
DDL请求节流是否启用。False

quotaAndLimits.ddl.collectionRate

描述默认值
  • 每秒钟与集合相关的DDL请求的最大数量。
  • 将此项设置为10表示Milvus每秒钟处理不超过10个与集合相关的DDL请求,包括集合创建请求、集合删除请求、集合加载请求和集合释放请求。
  • 要使用此设置,请同时将quotaAndLimits.ddl.enabled设置为true
  • quotaAndLimits.ddl.partitionRate

    描述默认值
  • 每秒钟与分区相关的DDL请求的最大数量。
  • 将此项设置为10表示Milvus每秒钟处理不超过10个与分区相关的请求,包括分区创建请求、分区删除请求、分区加载请求和分区释放请求。
  • 要使用此设置,请同时将quotaAndLimits.ddl.enabled设置为true
  • quotaAndLimits.indexRate.enabled

    描述默认值
    是否启用与索引相关的请求节流。False

    quotaAndLimits.indexRate.max

    描述默认值
  • 每秒钟与索引相关的请求的最大数量。
  • 将此项设置为10表示Milvus每秒钟处理不超过10个与分区相关的请求,包括索引创建请求和索引删除请求。
  • 要使用此设置,请同时将quotaAndLimits.indexRate.enabled设置为true
  • quotaAndLimits.flushRate.enabled

    描述默认值
    是否启用刷新请求节流。False

    quotaAndLimits.flush.max

    描述默认值
  • 每秒钟刷新请求的最大数量。
  • 将此项设置为10表示Milvus每秒钟处理不超过10个刷新请求。
  • 要使用此设置,请同时将quotaAndLimits.flushRate.enabled设置为true
  • quotaAndLimits.compaction.enabled

    描述默认值
    是否启用压缩请求节流。False

    quotaAndLimits.compaction.max

    描述默认值
  • 每秒钟手动压缩请求的最大数量。
  • 将此项设置为10表示Milvus每秒钟处理不超过10个手动压缩请求。
  • 要使用此设置,请同时将quotaAndLimits.compaction.enabled设置为true
  • quotaAndLimits.dml.enabled

    描述默认值
    是否启用 DML 请求节流。False

    quotaAndLimits.dml.insertRate.max

    描述默认值
  • 每秒最高数据插入速率。
  • 将此项设置为 5 表示 Milvus 仅允许以 5 MB/s 的速率进行数据插入。
  • 要使用此设置,同时将 quotaAndLimits.dml.enabled 设置为 true
  • quotaAndLimits.dml.insertRate.collection.max

    描述默认值
  • 每秒每个集合的最高数据插入速率。
  • 将此项设置为 5 表示 Milvus 仅允许以 5 MB/s 的速率向任何集合插入数据。
  • 要使用此设置,同时将 quotaAndLimits.dml.enabled 设置为 true
  • quotaAndLimits.dml.deleteRate.max

    描述默认值
  • 每秒最高数据删除速率。
  • 将此项设置为 0.1 表示 Milvus 仅允许以 0.1 MB/s 的速率进行数据删除。
  • 要使用此设置,同时将 quotaAndLimits.dml.enabled 设置为 true
  • quotaAndLimits.dml.deleteRate.collection.max

    描述默认值
  • 每秒每个集合的最高数据删除速率。
  • 将此项设置为 0.1 表示 Milvus 仅允许以 0.1 MB/s 的速率从任何集合删除数据。
  • 要使用此设置,同时将 quotaAndLimits.dml.enabled 设置为 true
  • quotaAndLimits.dql.enabled

    描述默认值
    是否启用了 DQL 请求节流。False

    quotaAndLimits.dql.searchRate.max

    描述默认值
  • 每秒搜索的最大向量数。
  • 将此项设置为100表示 Milvus 每秒只允许搜索 100 个向量,无论这 100 个向量是在一次搜索中还是分散在多次搜索中。
  • 要使用此设置,同时将quotaAndLimits.dql.enabled设置为true
  • quotaAndLimits.dql.searchRate.collection.max

    描述默认值
  • 每秒每个集合搜索的最大向量数。
  • 将此项设置为100表示 Milvus 每秒每个集合只允许搜索 100 个向量,无论这 100 个向量是在一次搜索中还是分散在多次搜索中。
  • 要使用此设置,同时将quotaAndLimits.dql.enabled设置为true
  • quotaAndLimits.dql.queryRate.max

    描述默认值
  • 每秒查询的最大次数。
  • 将此项设置为100表示 Milvus 每秒只允许进行 100 次查询。
  • 要使用此设置,同时将quotaAndLimits.dql.enabled设置为true
  • quotaAndLimits.dql.queryRate.collection.max

    描述默认值
  • 每秒每个集合查询的最大次数。
  • 将此项设置为100表示 Milvus 每秒每个集合只允许进行 100 次查询。
  • 要使用此设置,同时将quotaAndLimits.dql.enabled设置为true
  • quotaAndLimits.limitWriting.ttProtection.enabled

    描述默认值
    是否启用了基于时间刻度延迟的回压。False

    quotaAndLimits.limitWriting.ttProtection.maxTimeTickDelay

    描述默认值
  • 最大时间滴答延迟。时间滴答延迟是RootCoord TSO与DataNodes和QueryNodes上所有流图的最小时间滴答之间的差异。
  • 将此项设置为300表示Milvus随着延迟增加而降低DML请求速率,并在延迟达到设定的最大值(以秒为单位)时丢弃所有DML请求。
  • 要使用此设置,同时将quotaAndLimits.limitWriting.ttProtection.enabled设置为true
  • 300

    quotaAndLimits.limitWriting.memProtection.enabled

    描述默认值
    是否启用基于内存水位的背压。False

    quotaAndLimits.limitWriting.memProtection.dataNodeMemoryLowWaterLevel

    描述默认值
  • DataNodes上的低内存水位。内存水位是DataNodes上已使用内存与总内存之比。
  • 将此项设置为0.85表示Milvus随着DataNodes上的内存水位达到设定值而降低DML请求速率。
  • 要使用此设置,同时将quotaAndLimits.limitWriting.memProtection.enabled设置为true
  • 0.85

    quotaAndLimits.limitWriting.memProtection.queryNodeMemoryLowWaterLevel

    描述默认值
  • QueryNodes上的低内存水位。内存水位是QueryNodes上已使用内存与总内存之比。
  • quotaAndLimits.limitWriting.memProtection.dataNodeMemoryHighWaterLevel

    描述默认值
  • DataNodes 上的高内存水位。内存水位是 DataNodes 上已使用内存与总内存的比率。
  • 将此项设置为 0.95 表示当 DataNodes 上的内存水位达到设定值时,Milvus 将放弃所有 DML 请求。
  • 要使用此设置,同时将 quotaAndLimits.limitWriting.memProtection.enabled 设置为 true
  • 0.95

    quotaAndLimits.limitWriting.memProtection.queryNodeMemoryHighWaterLevel

    描述默认值
  • QueryNodes 上的高内存水位。内存水位是 QueryNodes 上已使用内存与总内存的比率。
  • 将此项设置为 0.95 表示当 QueryNodes 上的内存水位达到设定值时,Milvus 将放弃所有 DML 请求。
  • 要使用此设置,同时将 quotaAndLimits.limitWriting.memProtection.enabled 设置为 true
  • 0.95

    quotaAndLimits.limitWriting.diskProtection.enabled

    描述默认值
    基于磁盘配额的背压是否已启用。False

    quotaAndLimits.limitWriting.diskProtection.diskQuota

    描述默认值
  • 分配给 binlog 的磁盘配额。
  • 将此项设置为 8192 表示当 binlog 的大小达到设定值时,Milvus 将放弃所有 DML 请求。
  • quotaAndLimits.limitWriting.diskProtection.enabled

    描述默认值
  • 启用此设置,同时将 quotaAndLimits.limitWriting.diskProtection.enabled 设置为 true
  • quotaAndLimits.limitWriting.diskProtection.diskQuotaPerCollection

    描述默认值
  • 每个集合分配给 binlog 的磁盘配额。
  • 将此项设置为 8192 表示当集合的 binlog 大小达到设定值时,Milvus 会丢弃该集合中的所有 DML 请求。
  • 启用此设置,同时将 quotaAndLimits.limitWriting.diskProtection.enabled 设置为 true
  • quotaAndLimits.limitWriting.forceDeny

    描述默认值
    是否手动配置 Milvus 以丢弃所有 DML 请求。False

    quotaAndLimits.limitReading.queueProtection.enabled

    描述默认值
    基于搜索和查询队列长度的背压是否已启用。False

    quotaAndLimits.limitReading.queueProtection.nqInQueueThreshold

    描述默认值
  • 搜索向量或查询的最大数量。请注意,包含多个搜索向量的搜索请求被视为多个搜索,而查询与仅包含一个搜索向量的搜索请求相同。
  • 将此项设置为 10000 表示当搜索和查询的数量达到设定的最大值时,Milvus 会降低 DQL 请求速率,当数量降至设定值以下时,背压得到解决。降低速率由 quotaAndLimits.limitReading.coolOffSpeed 决定。
  • 启用此设置,同时将 quotaAndLimits.limitReading.queueProtection.enabled 设置为 true
  • quotaAndLimits.limitReading.queueProtection.queueLatencyThreshold

    描述默认值
  • 排队搜索和查询的平均延迟。请注意,包含多个搜索向量的搜索请求被视为多个搜索,而查询与仅包含一个搜索向量的搜索请求相同。
  • 将此项设置为200表示当平均延迟达到设定的最大值(以毫秒为单位)时,Milvus会降低 DQL 请求速率,并在数字降至设定值以下时解决背压。降低速率由quotaAndLimits.limitReading.coolOffSpeed确定。
  • 要使用此设置,同时将quotaAndLimits.limitReading.queueProtection.enabled设置为true
  • quotaAndLimits.limitReading.resultProtection.enabled

    描述默认值
    基于查询结果速率的背压是否已启用。False

    quotaAndLimits.limitReading.resultProtection.maxReadResultRate

    描述默认值
  • 返回给客户端的数据速率。
  • 将此项设置为2表示当数据速率达到设定的最大值(以 MB/s 为单位)时,Milvus会降低 DQL 请求速率,并在数字降至设定值以下时解决背压。降低速率由quotaAndLimits.limitReading.coolOffSpeed确定。
  • 要使用此设置,同时将quotaAndLimits.limitReading.resultProtection.enabled设置为true
  • quotaAndLimits.limitWriting.forceDeny

    描述默认值
    是否手动配置 Milvus 以丢弃所有 DQL 请求。False