테스트 진행시 레디스의 사용한 메모리를 측정하려면 INFO 명령어를 활용하면 된다.

실행하기 전에 FLUSHALL 메모리를 먼저 초기화한다. 

$ redis-cli FLUSHALL


$ redis-cli INFO memory

# Memory

used_memory:575552

used_memory_human:562.06K

used_memory_rss:32047104

used_memory_peak:32080496

used_memory_peak_human:30.59M

used_memory_lua:40960

mem_fragmentation_ratio:55.68

mem_allocator:libc


$ node test.js


$ redis-cli INFO memory

# Memory

used_memory:14424128

used_memory_human:13.76M

used_memory_rss:41230336

used_memory_peak:37663136

used_memory_peak_human:35.92M

used_memory_lua:40960

mem_fragmentation_ratio:2.86

mem_allocator:libc




사용한 메모리는 13,848,576이다.

14424128 - 575552=13,848,576


이 원리를 이용하여 레디스에서 사용한 메모리를 뽑는 간단히 만들었다.



memory-used.sh 파일이다. 원리는 위의 레디스 실행 코드 기반이다.

#!/bin/sh


ok=`redis-cli FLUSHALL`

echo "redis memory flush all : ${ok}"


before=`redis-cli INFO memory | grep 'used_memory:' | awk -F: '{print $2}'`

b=`echo "${before//[$'\t\r\n ']}"`


echo "test start"

node test.js

echo "test end"


after=`redis-cli INFO memory | grep 'used_memory:' | awk -F: '{print $2}'`

a=`echo "${after//[$'\t\r\n ']}"`


used=$(expr $a - $b)


echo "redis used memory ${used}"





실행하기. 

$ ./memory-used.sh

redis memory flush all : OK

test start

test end

redis used memory 13848576







Posted by '김용환'
,