VectorDBBench在windows的调试
VectorDBBench是一款向量数据库基准测试工具,支持milvus、Zilliz Cloud、Elastic Search、Qdrant Cloud、Weaviate Cloud 、 PgVector、PgVectorRS等,可以测试其QPS、时延、recall。
VectorDBBench是一款使用python编写的工具,使用了streamlit框架。Streamlit
是一个用于机器学习、数据可视化的 Python 框架,它能几行代码就构建出一个精美的在线 app 应用。
因为本人想要研究VectorDBBench的QPS、时延、recall算法,因此需要调试此应用,下面介绍如何进行调试。
调试环境
windows10
PyCharm 2023.3.5 (Professional Edition)
conda(python3.11.7)
VectorDBBench0.0.9
debug设置
script这一项的streamlit是linux下的脚本:
#!/root/anaconda3/envs/vdbtest/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from streamlit.web.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())
参数项:
run /pycode/VectorDBBench-0.0.9/vectordb_bench/frontend/vdb_benchmark.py --logger.level info --theme.base light --theme.primaryColor "#3670F2" --theme.secondaryBackgroundColor "#F0F2F6"
设置日志级别为debug:
这时候就可以进行调试了。
需要注意一个问题:
点击启动跑完整个测试流程没有问题,当点击debug调试的时候,__init__.py
的NUM_CONCURRENCY设置的并发稍微多一点点,运行过程中就会报错。测试设置为[1,2]推迟报错时机。
Exception ignored in tp_clear of: <class 'memoryview'>
BufferError: memoryview has 1 exported buffer
暂不清楚为什么debug会出现这种情况。