diff --git a/test/memcached/expirations.test b/test/memcached/expirations.test
index c941333f8fa1a538ef4ce59603fb7c236c419f39..5197d08aa7756a9c7209aa1aeaade2964911db3a 100644
--- a/test/memcached/expirations.test
+++ b/test/memcached/expirations.test
@@ -1,5 +1,24 @@
 # encoding: tarantool
 import time
+import yaml
+
+###################################
+def wait_for_next_lsn(lsn, serv):
+    serv_admin = serv.admin
+    while True:
+        if get_lsn(serv) != lsn:
+            return lsn
+        time.sleep(0.01)
+
+def get_lsn(serv):
+    serv_admin = serv.admin
+    resp = exec serv_admin silent "lua box.info.lsn"
+    return yaml.load(resp)[0]
+
+def wait(serv = server):
+    lsn = get_lsn(serv)
+    return wait_for_next_lsn(lsn, serv)
+###################################
 
 print """# expire: after 1 second"""
 
@@ -9,7 +28,7 @@ exec memcached "set foo 0 1 6\r\nfooval\r\n"
 print """# foo shoud be exists"""
 exec memcached "get foo\r\n"
 
-time.sleep(1.5)
+wait()
 print """# foo shoud expired"""
 exec memcached "get foo\r\n"
 
@@ -33,11 +52,10 @@ exec memcached silent "set foo 0 %d 6\r\nfooval\r\n" % expire
 print """# foo shoud be exists"""
 exec memcached "get foo\r\n"
 
-time.sleep(2.2)
+wait()
 print """# foo shoud expired"""
 exec memcached "get foo\r\n"
 
-
 print """# expire: time - 20 second"""
 expire = time.time() - 20
 
@@ -47,7 +65,6 @@ exec memcached silent "set boo 0 %d 6\r\nbooval\r\n" % expire
 print """# foo shoud expired"""
 exec memcached "get boo\r\n"
 
-
 print """# expire: after 2 second"""
 
 print """# add add"""
@@ -56,7 +73,7 @@ exec memcached "add add 0 1 6\r\naddval\r\n"
 print """# readd add - shoud be fail"""
 exec memcached "add add 0 1 7\r\naddval1\r\n"
 
-time.sleep(2.2)
+wait()
 print """# readd add - shoud be success"""
 exec memcached "add add 0 1 7\r\naddval2\r\n"
 
diff --git a/test/memcached/flush-all.result b/test/memcached/flush-all.result
index 6722b889b4bca9cdbb3583ef7ea9bc1277ad468f..245d0f0f7421ceaef53c819f28dc51c2f9dd1bc0 100644
--- a/test/memcached/flush-all.result
+++ b/test/memcached/flush-all.result
@@ -19,7 +19,7 @@ VALUE foo 0 3
 new
 END
 # and the other form, specifying a flush_all time... 
-flush_all time + 2
+flush_all time + 1
 OK
 
 get foo
diff --git a/test/memcached/flush-all.test b/test/memcached/flush-all.test
index d7957749b7e09376e59b68c8558c1002d8a95ac2..41693ed020500708599c612e9e19197ad75a935e 100644
--- a/test/memcached/flush-all.test
+++ b/test/memcached/flush-all.test
@@ -1,5 +1,20 @@
 # encoding: tarantool
 import time
+import yaml
+
+###################################
+def get_memcached_len(serv):
+    serv_admin = serv.admin
+    resp = exec serv_admin silent "lua box.space[box.cfg.memcached_space]:len()"
+    return yaml.load(resp)[0]
+
+def wait_for_empty_space(serv = server):
+    serv_admin = serv.admin
+    while True:
+        if get_memcached_len(serv) == 0:
+            return
+        time.sleep(0.01)
+###################################
 
 print """# Test flush_all with zero delay. """
 exec memcached "set foo 0 0 6\r\nfooval\r\n"
@@ -12,14 +27,14 @@ exec memcached "set foo 0 0 3\r\nnew\r\n"
 exec memcached "get foo\r\n"
 
 print """# and the other form, specifying a flush_all time... """
-expire = time.time() + 2
-print "flush_all time + 2"
+expire = time.time() + 1
+print "flush_all time + 1"
 print exec memcached silent "flush_all %d\r\n" % expire
 exec memcached "get foo\r\n"
 
 exec memcached "set foo 0 0 3\r\n123\r\n"
 exec memcached "get foo\r\n"
-time.sleep(2.2)
+wait_for_empty_space()
 exec memcached "get foo\r\n"
 
 # resore default suite config
diff --git a/test/replication/memcached.test b/test/replication/memcached.test
index 691e40a4eb7602b0ffc31ac32f606ce38fb3b5d2..0152df2e3cd20200b7f89813956dfe3cd8c5e15f 100644
--- a/test/replication/memcached.test
+++ b/test/replication/memcached.test
@@ -1,7 +1,7 @@
 # encoding: tarantool
+import os
 import sys
 import time
-import os
 import yaml
 
 from lib.memcached_connection import MemcachedConnection
@@ -101,14 +101,14 @@ exec replica_memcached "get 10\r\n"
 
 
 print """# check that expiration is working properly on replica"""
-exec master_memcached silent "set 1 0 3 %d\r\n%s\r\n" % (len(sonet[0]), sonet[0])
+exec master_memcached silent "set 1 0 1 %d\r\n%s\r\n" % (len(sonet[0]), sonet[0])
 wait()
 exec replica_memcached "get 1\r\n"
 wait(True)
 exec replica_memcached "get 1\r\n"
 
 print """# check that expiration is working properly, when replica becomes master"""
-exec master_memcached silent "set 1 0 3 %d\r\n%s\r\n" % (len(sonet[0]), sonet[0])
+exec master_memcached silent "set 1 0 1 %d\r\n%s\r\n" % (len(sonet[0]), sonet[0])
 replica.reconfigure("replication/cfg/replica_to_master.cfg")
 exec replica_memcached "get 1\r\n"
 wait(True)