diff --git a/experiments/memcached.shared.sh b/experiments/memcached.shared.sh
index e6cd0e5215865dbc66040a36dcecf144b115af07..592661b8112d0f2ef06efde2b8d1ceb0decf33f7 100644
--- a/experiments/memcached.shared.sh
+++ b/experiments/memcached.shared.sh
@@ -2,6 +2,8 @@ source "$EXP_ROOT/experiments/perf.shared.sh"
 
 CONNS=160 # per agent thread
 
+NO_RUNS=0
+
 load_config() {
     source "$EXP_ROOT/configs/memcached.sh"
     source "$EXP_ROOT/configs/mutilate.sh"
@@ -38,10 +40,17 @@ warmup() {
 }
 
 run_mutilate() {
+    if [ "$NO_RUNS" -ge 4 ]; then
+        echo "Re-intializing Memcached server"
+        memcached_shutdown
+        memcached_startup
+        NO_RUNS=0
+    fi
     echo "Running mutilate with $CONNS connections per agent (core) and QPS = $QPS"
     perf_stat_start "$1"
     sudo -u $SSH_USER $MUTILATE --noload -c$CONNS $MUTCLIENTS -t30 -u 0 -q $QPS | tee $DATA_OUT/$1.txt
     perf_stat_stop
+    NO_RUNS=$((NO_RUNS + 1))
 }
 
 memcached_pre_start() {
@@ -59,13 +68,22 @@ memcached_pre_start() {
 }
 
 memcached_init() {
+    NO_RUNS=0
+    memcached_startup
+}
+
+memcached_startup() {
     start_memcached
     start_mutilate
     warmup
 }
 
-memcached_deinit() {
+memcached_shutdown() {
     cleanup_mutilate
     cleanup_memcached
 }
 
+memcached_deinit() {
+    memcached_shutdown
+}
+