diff --git a/wally/suits/io/formatter.py b/wally/suits/io/formatter.py
index 63c9408..7fbe70b 100644
--- a/wally/suits/io/formatter.py
+++ b/wally/suits/io/formatter.py
@@ -19,13 +19,15 @@
     create a table with io performance report
     for console
     """
-    tab = texttable.Texttable()
+    tab = texttable.Texttable(max_width=120)
     tab.set_deco(tab.HEADER | tab.VLINES | tab.BORDER)
-    tab.set_cols_align(["l", "r", "r", "r", "r"])
+    tab.set_cols_align(["l", "r", "r", "r", "r", "r", "r"])
 
     prev_k = None
-
+    vm_count = test_set['__test_meta__']['testnodes_count']
     items = sorted(test_set['res'].items(), key=key_func)
+    header = ["Description", "iops\ncum", "KiBps\ncum",
+              "iops\nper vm", "KiBps\nper vm", "Cnf\n%", "lat\nms"]
 
     for test_name, data in items:
 
@@ -33,7 +35,9 @@
 
         if prev_k is not None:
             if prev_k != curr_k:
-                tab.add_row(["---"] * 5)
+                tab.add_row(
+                    ["--------", "-----", "------",
+                     "-----", "------", "---", "-----"])
 
         prev_k = curr_k
 
@@ -54,12 +58,14 @@
 
         iops = round_3_digit(iops)
         bw = round_3_digit(bw)
+        iops_cum = round_3_digit(iops * vm_count)
+        bw_cum = round_3_digit(bw * vm_count)
         med_lat = round_3_digit(med_lat)
 
-        params = (descr, int(iops), int(bw), dev_perc, med_lat)
+        params = (descr, int(iops_cum), int(bw_cum),
+                  int(iops), int(bw), dev_perc, med_lat)
         tab.add_row(params)
 
-    header = ["Description", "IOPS", "BW KiBps", "Dev * 3 %", "clat ms"]
     tab.header(header)
 
     return tab.draw()
