diff --git a/wally/suits/io/ceph.cfg b/wally/suits/io/ceph.cfg
index 1352b1e..6abaae5 100644
--- a/wally/suits/io/ceph.cfg
+++ b/wally/suits/io/ceph.cfg
@@ -7,7 +7,9 @@
 softrandommap=1
 filename={FILENAME}
 NUM_ROUNDS=7
+
 NUMJOBS={% 1, 5, 10, 15, 20, 30, 40, 80, 120 %}
+NUMJOBS_SHORT={% 1, 5, 10, 15, 20, 30, 40 %}
 
 size=30G
 ramp_time=30
@@ -49,7 +51,7 @@
 blocksize=16m
 rw=randread
 direct=1
-numjobs={NUMJOBS}
+numjobs={NUMJOBS_SHORT}
 
 # ---------------------------------------------------------------------
 # sequential write
diff --git a/wally/suits/itest.py b/wally/suits/itest.py
index 70fdb66..e8dcecb 100644
--- a/wally/suits/itest.py
+++ b/wally/suits/itest.py
@@ -359,7 +359,7 @@
 
     def run(self, barrier):
         try:
-            if len(self.fio_configs) > 1:
+            if len(self.fio_configs) > 1 and self.is_primary:
 
                 exec_time = 0
                 for test in self.fio_configs:
@@ -383,9 +383,11 @@
                             msgs.append(frmt.format(name,
                                                     names.count(name)))
 
-                logger.info("Will run tests: " + ", ".join(msgs))
+                if self.is_primary:
+                    logger.info("Will run tests: " + ", ".join(msgs))
 
-                out_err = self.do_run(barrier, fio_cfg_slice, nolog=(pos != 0))
+                nolog = (pos != 0) or not self.is_primary
+                out_err = self.do_run(barrier, fio_cfg_slice, nolog=nolog)
 
                 try:
                     for data in parse_output(out_err):
@@ -434,8 +436,7 @@
 
         timeout = int(exec_time * 2 + 300)
         barrier.wait()
-        ssh_nolog = nolog or (not self.is_primary)
-        self.run_over_ssh(cmd, nolog=ssh_nolog)
+        self.run_over_ssh(cmd, nolog=nolog)
 
         if self.is_primary:
             templ = "Test should takes about {0}." + \
