GCP의 새로운 Memorystore - Redis 벤치마크

in gcp •  6 years ago 

새로 출시된 Memorystore 의 성능이 매우 궁금하여.
벤치마크를 해봤다.

우선 스펙은 가장 기초가 되는 Basic - M1 ( 1GB )기준으로 확인했다.
결과 부터 먼저 말하자면, "성능은 네트워크에 따라가더라.."라는 내용.

테스트를 위해 다음과 같은 Node.js 코드를 작성했다.

global.redis = require('redis')
.createClient( "6379" , "10.0.4.3" );

redis.ping( function( err , result ){
    if( err ){
        console.error("[ Redis ] : Check Failed :",err );
        errors.report(err);
    }else{
        console.log("[ Redis ] : Check OK!");
    }
});

let countpersec = 0;
const HsetTest = ()=>{
    countpersec++;

    let key = Math.round(Math.random()*100000000);
    let name = ("000000"+key).slice(-6);

    redis.hset( `htest:${key%1000}` , name , JSON.stringify({
        key: key,
        name: name
    }) , ( err , result )=>{
        if( err ){
            console.error( "redis:error" );
            console.error( err );
            return;
        }

        redis.hget( `htest:${key%1000}` , name , ( err , result )=>{
            if( err ){
                console.error( "redis:error" );
                console.error( err );
                return;
            }

            HsetTest();
        });
    });
};

HsetTest();
HsetTest();
HsetTest();
HsetTest();

setInterval(()=>{
    console.log( countpersec );
    countpersec = 0;
},1000);

내용은 간단히 한번 호출을 하고 나면 올때까지 기다리고, 다시 반복하는 형태로 초당 몇번이나 호출하는지 1초마다 화면에 출력하도록 해놨다.


screenshot 2018-05-10 12.34.48.png

screenshot 2018-05-10 12.34.30.png

현재 화면에는 9대만 있는데 실제로는 10대.

즉 초당 6.2만건의 hset / 6.2만건의 hget 을 하고 있는것이다.

재미있는것은 다음 화면을 보자.

screenshot 2018-05-10 12.37.07.png

in 을 보면 약 320MB/s , out 이 110 MB/s 다.
1GB 용량기준으로 네트워크 처리량이 375MB/s 라는걸 감안하면.. 거의 성능은 네트워크에 의해 결정된다는 의미다.

약간 다른 케이스이긴 한데, 예전에 했던 벤치마크의 경우 n1-standard1 의 경우 초당 약 1.5만건 정도 나왔던것으로 기억한다.

가성비는 굉장히 좋은듯하다. 다행이다 ㅎㅎ

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!