redis-benchmark测试并发性能
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
免费下载资源
·
服务器环境
SUSE Linux Enterprise Server 10 SP3 (x86_64)
MemTotal: 2097324 kB
cpu MHz : 2400.084 Hz
disk: 10G
首先安装redis2.6.0(引入了lua脚本支持,需要安装lua库与jemalloc内存分配器等依赖)
先往数据库压入数据占满内存, key(25~30bytes) val(100 bytes)
unsigned int j;
redisContext *c;
redisReply *reply;
int size = 10000 * 1500;
clock_t start,finish;
double jishi;
char key[1000];
char val[1000];
char times[100];
struct timeval timeout = { 1, 500000 }; // 1.5 seconds
c = redisConnectWithTimeout((char*)"127.0.0.1", 6379, timeout);
if (c->err) {
printf("Connection error: %s\n", c->errstr);
exit(1);
}
start = clock();
/* Set a key */
for(j = 0;j < size;j ++){
randalp(key, 30 + j%5);
sprintf(times,"%d",time(0));
strcat(key,times);
randstr(val, 100);
reply = redisCommand(c,"SET %s %s", key,val);
freeReplyObject(reply);
if(j % 100000 == 0){
finish = clock();
jishi = (double)(finish-start)/CLOCKS_PER_SEC;
printf("set %d spend %f seconds\n",j/100000,jishi);
start = finish;
}
}
return 0;
650万条数据,占用717M磁盘空间,(正好用完2G内存)
redis-benchmark -h 10.6.2.245 -p 6379 -q -d 500
PING_INLINE: 14858.84 requests per second
PING_BULK: 52910.05 requests per second
SET: 55248.62 requests per second
GET: 54347.82 requests per second
INCR: 56179.77 requests per second
LPUSH: 55555.55 requests per second
LPOP: 54054.05 requests per second
SADD: 56179.77 requests per second
SPOP: 56497.18 requests per second
LPUSH (needed to benchmark LRANGE): 55865.92 requests per second
LRANGE_100 (first 100 elements): 2304.15 requests per second
LRANGE_300 (first 300 elements): 769.76 requests per second
LRANGE_500 (first 450 elements): 513.43 requests per second
LRANGE_600 (first 600 elements): 385.13 requests per second
MSET (10 keys): 21739.13 requests per second
redis-benchmark -h 10.6.2.245 -p 6379 -q -d 100
PING_INLINE: 55248.62 requests per second
PING_BULK: 54644.81 requests per second
SET: 54347.82 requests per second
GET: 54054.05 requests per second
INCR: 55248.62 requests per second
LPUSH: 54347.82 requests per second
LPOP: 53763.44 requests per second
SADD: 54945.05 requests per second
SPOP: 54945.05 requests per second
LPUSH (needed to benchmark LRANGE): 51813.47 requests per second
LRANGE_100 (first 100 elements): 10822.51 requests per second
LRANGE_300 (first 300 elements): 3611.41 requests per second
LRANGE_500 (first 450 elements): 2407.90 requests per second
LRANGE_600 (first 600 elements): 1808.32 requests per second
MSET (10 keys): 44642.86 requests per second
A,每条测试数据500字节,lrange的性能下降得比较快
B,每条测试数据100字节,lrange也是存在瓶颈,其他指令大致一样。
其他常用指令平均性能都还不错,能达到50000左右的样子,redis-benchmark的默认并发client数目为50,可以看出来redis是一个性能非常优秀的内存数据库,但是vm机制不是很好,官方文档也说明了不建议使用。而且在系统内存被耗尽时系统极不稳定,容易崩溃,所以在redis.conf配置文件中还需要限制redis的内存使用。
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:1 个月前 )
186a802e
added ecosystem file for PM2 4 年前
5def40a3
Add host customization support for the NodeJS version 4 年前
更多推荐
已为社区贡献2条内容
所有评论(0)