CONFIG RESETSTAT

Redis Server Course Redis Technical Support Redis Enterprise Server

레디스 통계값 초기화

이 명령은 INFO 명령으로 볼 수 있는 통계값들을 초기화 하는데 사용된다.
Config get, set, rewrite 명령과는 관계없다.
INFO STATS의 통계값 대부분을 초기화한다. 다음은 redis.io 메뉴얼에 나와 있는 파라미터이다.

  • total_connections_received: 서버 시작 후 총 접속 수
  • total_commands_processed: 처서 시작 후 처리한 총 명령 수
  • rejected_connections: maxclients 제한으로 거부된 접속 수
  • expired_keys: expire로 삭제된 키 수
  • keyspace_hits: get key해서 값이 나온면 1 증가
  • keyspace_misses: get key해서 값이 나오지 않으면 1 증가
  • latest_fork_usec: 마지막 fort()하는데 걸린 시간
  • aof_delayed_fsync: 이것은 PERSISTENCE에 있는 것으로 지연된 fsync counter 이다.
다음은 메뉴얼에는 없지만 테스트와 소스를 통해 확인한 초기화 되는 파라미터이다.
  • total_net_input_bytes: 서버 시작 후 총 입력 바이트
  • total_net_output_bytes: 서버 시작 후 총 출력 바이트
  • sync_full: 마스터 노드일때 슬레이브 노드와 full sync 횟수
  • sync_partial_ok: 마스터 노드일때 슬레이브 노드와 partial sync ok 횟수
  • sync_partial_err: 마스터 노드일때 슬레이브 노드와 partial sync error 횟수
  • evicted_keys: maxmemory 제한에 의해 퇴출된 키 수
INFO COMMANDSTATS로 볼 수 있는 명령 통계정도도 초기화 된다. 따라서 CONFIG RESETSTAT 실행 후 INFO COMMANDSTATS를 실행하면 아래와 같이 하나만 나온다.
127.0.0.1:6380> info commandstats
# Commandstats
cmdstat_config:calls=1,usec=4,usec_per_call=4.00

INFO 명령과 통계값에 대한 정보는 여기를 보세요

Source code

Version 3.0.2

다음은 config.c와 redis.c에 있는 관련 source code 이다.
config.c
    if (!strcasecmp(c->argv[1]->ptr,"resetstat")) {
        if (c->argc != 2) goto badarity;
        resetServerStats();
        resetCommandTableStats();
        addReply(c,shared.ok);
    }

redis.c
void resetServerStats(void) {
    int j;

    server.stat_numcommands = 0;
    server.stat_numconnections = 0;
    server.stat_expiredkeys = 0;
    server.stat_evictedkeys = 0;
    server.stat_keyspace_misses = 0;
    server.stat_keyspace_hits = 0;
    server.stat_fork_time = 0;
    server.stat_fork_rate = 0;
    server.stat_rejected_conn = 0;
    server.stat_sync_full = 0;
    server.stat_sync_partial_ok = 0;
    server.stat_sync_partial_err = 0;
    for (j = 0; j < REDIS_METRIC_COUNT; j++) {
        server.inst_metric[j].idx = 0;
        server.inst_metric[j].last_sample_time = mstime();
        server.inst_metric[j].last_sample_count = 0;
        memset(server.inst_metric[j].samples,0,
            sizeof(server.inst_metric[j].samples));
    }
    server.stat_net_input_bytes = 0;
    server.stat_net_output_bytes = 0;
}

void resetCommandTableStats(void) {
    int numcommands = sizeof(redisCommandTable)/sizeof(struct redisCommand);
    int j;

    for (j = 0; j < numcommands; j++) {
        struct redisCommand *c = redisCommandTable+j;

        c->microseconds = 0;
        c->calls = 0;
    }
}


명령문

CONFIG RESETSTAT

  • 이 명령은 version 2.0.0 부터 사용할 수 있다.
Clients for C Hiredis

<< COMMAND INFO CONFIG RESETSTAT CONFIG GET >>

조회수 :

Email 답글이 올라오면 이메일로 알려드리겠습니다.