最近在测一个nosql存储系统,key-value存储模式,分别要测读写1k,10k,100k,500k, 1m的内容。key不能重名脚本如下:
Action()
{
web_submit_data("set",
"Action=http://192.168.17.200/set?key=cmppdb_{key}", //key值随机生成,每次迭代选用唯一的值
"Method=POST",
"TargetFrame=",
"RecContentType=text/html",
"Referer=",
"Snapshot=t7.inf",
"Mode=HTML",
ITEMDATA,
"Name=", "Value=aaaacccbb", ENDITEM,
EXTRARES,
LAST);
lr_log_message("result = %s", lr_eval_string("{key}")); //输出参数化值,查错误用的
web_url("get",
"URL=http://192.168.17.200/get?key=cmppdb1_{key}", //用的是上面的参数化
"TargetFrame=",
"Resource=1",
"RecContentType=application/octet-stream",
"Referer=",
"Snapshot=t1.inf",
LAST);
lr_log_message("result = %s", lr_eval_string("{key}")); //输出参数化值,查错误用的
return 0;
}
web_submit_data 是提交数据的函数,没有现成的表单,所以用函数直接发送数据了,key是随机生成1-100000000之间的数字
web_url 是读取数据的函数,key要与上面写入时随机生成的key相同。 原以为要做关联,把问题想复杂了,问了一朋友,原来在参数化中选,每次迭代用相同的参数就搞定了。
部分结果:
读写同时(96/97互为主从) | ||||||
数据量 | 事物/秒 | 响应时间s | 吞吐量M | cpu(%) | load average | wa(%) |
10万条10G | 371 | 0.53 | 35 | 18 | 4 | 0.7 |
100万条100G | 365 | 0.54 | 34 | 18 | 5.4 | 1.5 |
400万条400G | 382 | 0.52 | 36 | 32 | 5.6 | 7.3 |
错误(失败) | 0个 | |||||
由于磁盘空间限制,最大数据量只能填充到400万条数据,体积为400G,分别记录了上述的三个时间点的数据。从结果可以看出,随着数据量的增长,响应时间和QPS没有变化,只是服务器cpu,IO,负载有所增加。证明目前的数据量服务器完全可以响应过来,但数据量继续增加,服务器资源将成为瓶径 |