准备工作
推荐进入vpc环境进行测试
下载gist-960-euclidean数据集,可任选一种方法下载
解压后使用目录中的gist_base.fvecs。
python3及相关库
h5py
json
numpy
sklearn
alibabacloud_ha3engine_vector
生成数据
使用
prepare_data.py
脚本,脚本支持hdf5/fvecs/bvecs/ivecs格式的向量数据,以hdf5
格式作为例子
python3 prepare_data.py -i ./gist-960-euclidean.hdf5
脚本执行完成后,当前目录下会产生一个
data/
子目录生成文件名为
gist-960-euclidean.hdf5.data
检查生成的数据行数是否完整
wc -l data/gist-960-euclidean.hdf5.data
1000000 gist-960-euclidean.hdf5.data
购买OpenSearch向量检索版实例
购买实例请参考购买OpenSearch向量检索版实例
添加表
详情可参考:
推送数据
使用
push_data.py
脚本推送数据参数
表名
-t
:table_name用户名
-u
:user_name密码
-p
:password实例ID
-e
:instance_id
python3 push_data.py -i data/gist-960-euclidean.hdf5.data -t gist -u ${user_name} -p ${password} -e ${instance_id}
生成query
使用
prepare_query.py
脚本从原始数据中随机生成query
python3 prepare_query.py -i gist-960-euclidean.hdf5 -c 10000 -t gist
脚本会在
data/
文件夹下生成query.data
query文件
使用wrk进行压测
wrk是一个开源的http请求压测工具:https://github.com/wg/wrk
从github下载wrk压测工具
git clone https://github.com/wg/wrk.git
使用
search.lua
进行测试复制到脚本目录下
cp search.lua wrk/scripts/
计算签名并更改脚本的
request
方法中的header["authorization"]
信息
-- wrk 运行阶段,随机选取query,构造具体发送的请求
request = function ()
local query = query_table[count]
count = (count + 1)%query_count
local headers = {}
headers["authorization"] = "Basic xxxx" -- 签名信息
headers["Content-Type"] = "application/json"
return wrk.format("POST", nil, headers, query)
end
开始压测
-c
连接数(并发数)-t
发送请求的线程数-d
指定压测时间-s
指定脚本--latency
打印详细压测结果
./wrk -c24 -d100s -t8 -s scripts/search.lua http://ha-cn-xxxxxx.ha.aliyuncs.com/vector-service/query --latency
查看指标
查看召回率、查询耗时等指标
请参考指标监控授权
脚本下载
文档内容是否对您有帮助?