diff --git a/experiments/memcached.shared.sh b/experiments/memcached.shared.sh
index 1dd5e8f94f2120d8c9488fc94e53265ff0682dcc..e9bf0ed744863715783eda6f95da4ceebe8b95ed 100644
--- a/experiments/memcached.shared.sh
+++ b/experiments/memcached.shared.sh
@@ -17,7 +17,7 @@ cleanup_memcached() {
 
 start_memcached() {
     echo "Starting memcached"
-    taskset -c 0-$((THREADS - 1)) $MEMCACHED -u root -t $THREADS -b 16384 -c 32768 -m 10240 -o hashpower=24,no_lru_maintainer,no_lru_crawler $@ 2>&1 > /dev/null &
+    taskset -c 0-$((THREADS - 1)) $MEMCACHED -u root -t $THREADS -b 16384 -c 32768 -m 10240 -o hashpower=24,no_lru_maintainer,no_lru_crawler $MEMCACHED_ARGS 2>&1 > /dev/null &
     MEMCACHED_PID=$!
 }
 
@@ -37,3 +37,27 @@ run_mutilate() {
     echo "Running mutilate with $CONNS connections per agent (core) and QPS = $QPS"
     sudo -u $SSH_USER $MUTILATE --noload -c$CONNS $MUTCLIENTS -t30 -u 0 -q $QPS | tee $DATA_OUT/$1.txt
 }
+
+memcached_pre_start() {
+    load_config
+
+    EXPERIMENT_NAME_EXT="t$THREADS.c$CONNS"
+
+    if [ "$NAPI_LOCALITY" == "true" ]; then
+        MEMCACHED_ARGS="$MEMCACHED_ARGS -N $THREADS"
+    fi
+
+    cleanup_mutilate    
+}
+
+memcached_init() {
+    start_memcached
+    start_mutilate
+    warmup
+}
+
+memcached_deinit() {
+    cleanup_mutilate
+    cleanup_memcached
+}
+
diff --git a/experiments/memcached_qps_scan.sh b/experiments/memcached_qps_scan.sh
index 59bd354e843eb9b416bfcb51506e0240d9d319e5..f026cf08224992cefd235b87f9c7941afbe7ed09 100644
--- a/experiments/memcached_qps_scan.sh
+++ b/experiments/memcached_qps_scan.sh
@@ -1,22 +1,11 @@
 source "$EXP_ROOT/experiments/memcached.shared.sh"
 
 pre_start() {
-    load_config
-
-    EXPERIMENT_NAME_EXT="t$THREADS.c$CONNS"
-
-    cleanup_mutilate    
+    memcached_pre_start
 }
 
 run_exp() {
-    MEMCACHED_ARGS=""
-    if [ "$NAPI_LOCALITY" == "true" ]; then
-        MEMCACHED_ARGS="-N $THREADS"
-    fi
-
-    start_memcached $MEMCACHED_ARGS
-    start_mutilate
-    warmup
+    memcached_init
 
     QPS_START=$((QPS_START_PER_THREAD * THREADS))
     QPS_END=$((QPS_END_PER_THREAD * THREADS))
@@ -27,11 +16,9 @@ run_exp() {
         run_mutilate $QPS
     done    
 
-    cleanup_mutilate
-    cleanup_memcached
+    memcached_deinit
 }
 
 post_start() {
-    cleanup_memcached
-    cleanup_mutilate
+    memcached_deinit
 }