redis-benchmark 테스트 병렬 성능
SUSE Linux Enterprise Server 10 SP3 (x86_64) MemTotal: 2097324 kB cpu MHz : 2400.084 Hz disk: 10G
우선 Redis2.6.0(lua 스크립트 지원이 도입되어 lua 라이브러리와jemalloc 메모리 분배기 등을 설치해야 함)
먼저 데이터베이스에 데이터를 눌러 메모리를 가득 채우고 키(25~30bytes)val(100bytes)
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
", 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
",j/100000,jishi);
start = finish;
}
}
return 0;
717M 디스크 공간을 차지하는 650만 개의 데이터(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 정도에 이를 수 있는 모습을 볼 수 있다. 리디스-benchmark의 기본 병발client 수량은 50이다. 리디스는 성능이 매우 우수한 메모리 데이터베이스라는 것을 알 수 있지만 vm 메커니즘이 좋지 않다. 공식 문서도 제안하지 않고 사용하지 않는다는 것을 설명한다.그리고 시스템 메모리가 다 소모되었을 때 시스템이 매우 불안정하고 붕괴되기 쉽기 때문에 Redis.conf 프로필에서 Redis의 메모리 사용을 제한해야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.