milvus资源限制 benchmarker压测 qps优化

在这里插入图片描述
根据milvus 资源限制的官网,我们得出百万数据资源限制。

1.dev 环境 对接不同的配置最大的qps 如下(dev的机器内存很小)
在这里插入图片描述
2.于是认为当前的性能是匹配的,然后加上资源限制,配置
在这里插入图片描述
压测结果如下

{
    "run_id": "13292982fee74f64a6352886bd2e48c1",
    "task_label": "13292982fee74f64a6352886bd2e48c1",
    "results": [{
            "metrics": {
                "max_load_count": 0,
                "load_duration": 1921.7745,
                "qps": 1562.3437,
                "serial_latency_p99": 0.0059,
                "recall": 0.5972,
                "ndcg": 0.6318,
                "conc_num_list": [1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100],
                "conc_qps_list": [195.3319, 790.9781, 1080.3159, 1373.9811, 1432.1278, 1440.8132, 1433.1897, 1491.7838, 1493.107, 1481.4041, 1502.0799, 1508.3413, 1530.3134, 1521.0524, 1547.9447, 1549.8126, 1555.2589, 1562.3437, 1544.5287, 1552.6871, 1545.3059],
                "conc_latency_p99_list": [0.004279492217302322, 0.004500870367884636, 0.004731282425113022, 0.005114195805042982, 0.005836073917336762, 0.006389325391501189, 0.006925125846266747, 0.008031808454543352, 0.006713001053780317, 0.007038204529695212, 0.008382701979205012, 0.005965838904678822, 0.006431116539426148, 0.010065575167536735, 0.007617924952134489, 0.007334843980520961, 0.009211420500651001, 0.00817261971924454, 0.006796466001681981, 0.006674074270576239, 0.00732990248594433]
            },
            "task_config": {
                "db": "Milvus",
                "db_config": {
                    "db_label": "2024-08-20T10:48:40.903270",
                    "uri": "**********"
                },
                "db_case_config": {
                    "index": "IVF_FLAT",
                    "metric_type": "COSINE",
                    "nlist": 1024,
                    "nprobe": 5
                },
                "case_config": {
                    "case_id": 50,
                    "custom_case": null,
                    "k": 100,
                    "concurrency_search_config": {
                        "num_concurrency": [1, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100],
                        "concurrency_duration": 30
                    }
                },
                "stages": ["drop_old", "load", "search_serial", "search_concurrent"]
            },
            "label": ":)"
        }
    ],
    "file_fmt": "result_{}_{}_{}.json"
}

很诧异,开始排查问题的所在:
1.第一先考虑的是不是obs 的问题
于是又在dev环境加上资源限制,得到的结果:
在这里插入图片描述
那就不是obs 的问题
2.考虑一下是不是pulsar 的问题,在这个过程,要感谢一下社区,问了得到明确的结论是pulsar 只落盘,不参与数据的查询操作。但是得出结论
还是保持质疑,刚好dev 环境没有资源,不能限制pulsar ,发现性能还是很差,所有排除pulsar问题

3.后来运维同学通过监控发现queryNode CPU 涨的很快,就将资源改成
6c 8g ,果然性能提高到无资源限制的qps 维度。
在这里插入图片描述
4.扩展一下:再最终到生产环境上线发现,资源并没有达到预期的qps (需要关上认证才能压测哦)
如下图
在这里插入图片描述
这个时候就非常诧异,随机就对比sit 环境资源配置和grafana 资源消耗情况
在这里插入图片描述
最终同时发现 proxy pod 资源消耗和queryNode pod 是正相关关系,然后看了一下sit 环境的资源配置,不知道在哪次的修改中将资源改为8c 16g。
故将生产环境改为proxy 8c16g .queryNode:8 core 16 GB 副本数为1
压测结果如下
在这里插入图片描述
qps 达到7400+!!!

然后逐渐扩容querynode 为3 ,性能如下

在这里插入图片描述
性能并没有提高多少!
最后逐渐扩容querynode 为5 ,性能如下
在这里插入图片描述
性能并没有提高多少!

额外的例子:3 proxy 1querynode

在这里插入图片描述
性能并没有提高多少!
总结:1。官网提供的资源配置,应该是以数据为主的,但是如果对milvus 有性能要求,应该提高 proxy 和 queryNode 的资源。它们的资源是呈正相关的,单纯扩容其中某一个是不能实现qps 性能的提升的。同时修改的核心是CPU,其实是开启线程,进行I/O。友情提示:还是看各位看官,场景实际的数据量 和 并发数,动态更改

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值