diff --git a/configs/ceph_perf.yaml b/configs-examples/ceph_fuel.yaml
similarity index 71%
rename from configs/ceph_perf.yaml
rename to configs-examples/ceph_fuel.yaml
index 17b95d3..7018e86 100644
--- a/configs/ceph_perf.yaml
+++ b/configs-examples/ceph_fuel.yaml
@@ -1,11 +1,11 @@
 clouds:
     fuel:
-        url: http://172.16.52.114:8000/
-        creds: admin:admin@admin
-        ssh_creds: root:test37
-        openstack_env: test
+        url: http://FUEL_WEB_IP:8000/
+        creds: USER:PASSWD@TENANT #admin:admin@admin
+        ssh_creds: root:FUEL_SSH_PASSWD
+        openstack_env: OPENSTACK_ENV_NAME
 
-# discover: fuel_openrc_only
+discover: fuel_openrc_only
 
 internal:
     var_dir_root: /tmp/perf_tests
@@ -35,7 +35,9 @@
 tests:
     - start_test_nodes:
         openstack:
-            creds: /tmp/perf_tests/personalistic_sharron/test_openrc
+            # creds: /tmp/perf_tests/personalistic_sharron/test_openrc
+            # creds: ENV
+            creds: clouds
             count: x1
             cfg_name: wally_1024
             network_zone_name: net04
@@ -46,4 +48,4 @@
                 cfg: ceph
                 params:
                     FILENAME: /dev/vdb
-                    NUM_ROUNDS: 1
+                    NUM_ROUNDS: 7
diff --git a/configs-examples/ceph_raw.yaml b/configs-examples/ceph_raw.yaml
new file mode 100644
index 0000000..646945f
--- /dev/null
+++ b/configs-examples/ceph_raw.yaml
@@ -0,0 +1,27 @@
+clouds:
+    ceph: ssh://USER@ANY_CEPH_NODE::KEY_FILE
+
+discover: ceph
+
+explicit_nodes:
+    "ssh://TEST_USER@TESTNODE1::KEY_FILE": testnode
+    "ssh://TEST_USER@TESTNODE2::KEY_FILE": testnode
+    "ssh://TEST_USER@TESTNODE3::KEY_FILE": testnode
+
+sensors:
+    roles_mapping:
+        testnode: system-cpu, block-io, net-io
+        ceph-osd: system-cpu, block-io, net-io
+
+tests:
+    - io:
+        cfg: ceph
+        params:
+            FILENAME: /dev/rbd/rbd/RBD_DEV_NAME_OR_LINK
+            NUM_ROUNDS: 7
+
+internal:
+    var_dir_root: /tmp/perf_tests
+
+logging:
+    extra_logs: 1
diff --git a/configs-examples/hdd.yaml b/configs-examples/hdd.yaml
new file mode 100644
index 0000000..dcb5f9e
--- /dev/null
+++ b/configs-examples/hdd.yaml
@@ -0,0 +1,17 @@
+explicit_nodes:
+    local: testnode
+
+internal:
+    var_dir_root: /tmp/perf_tests
+
+testnode_log_root: /tmp/perf_tests_rem
+
+tests:
+    - io:
+        cfg: hdd
+        params:
+            FILENAME: FILE_ON_USB_HDD
+            NUM_ROUNDS: 7
+
+logging:
+    extra_logs: 1
\ No newline at end of file
diff --git a/configs-examples/local_ceph.yaml b/configs-examples/local_ceph.yaml
new file mode 100644
index 0000000..613894d
--- /dev/null
+++ b/configs-examples/local_ceph.yaml
@@ -0,0 +1,24 @@
+clouds:
+    ceph: local
+
+discover: ceph
+
+explicit_nodes:
+    local: testnode
+
+internal:
+    var_dir_root: /tmp/perf_tests
+
+sensors:
+    roles_mapping:
+        testnode: system-cpu, block-io
+
+tests:
+    - io:
+        cfg: ceph
+        params:
+            FILENAME: CEPH_RBD_DEVICE
+            NUM_ROUNDS: 7
+
+logging:
+    extra_logs: 1
diff --git a/configs/config.yaml b/configs/config.yaml
deleted file mode 100644
index 522fcd3..0000000
--- a/configs/config.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-clouds:
-    fuel:
-        url: http://172.16.52.112:8000/
-        creds: admin:admin@admin
-        ssh_creds: root:test37
-        openstack_env: test
-
-    openstack:
-        OS_TENANT_NAME: admin
-        OS_USERNAME: admin
-        OS_PASSWORD: admin
-        OS_AUTH_URL: http://172.16.53.3:5000/v2.0/
-
-    ceph: local
-
-discover: fuel, ceph
-
-explicit_nodes:
-    "ssh://root@172.16.52.112:3022:/home/koder/.ssh/id_rsa": testnode
-
-
-internal:
-    var_dir_root: /tmp/perf_tests
-
-vm_configs:
-    wally_1024:
-        image:
-            name: wally_ubuntu
-            url: https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
-            creds: "ssh://ubuntu@{ip}::{private_key_path}"
-
-        flavor:
-            name: wally_1024
-            hdd_size: 50
-            ram_size: 1024
-            cpu_count: 1
-
-        vol_sz: 30
-        keypair_name: wally_vm_key
-        name_templ: wally-{group}-{id}
-        aa_group_name: wally-aa-{0}
-        security_group: wally_ssh_to_everyone
-
-tests:
-    - start_test_nodes:
-        openstack:
-            creds: /tmp/perf_tests/personalistic_sharron/test_openrc
-            count: x1
-            cfg_name: wally_1024
-            network_zone_name: net04
-            flt_ip_pool: net04_ext
-
-        tests:
-            - io:
-                cfg: tests/io_scenario_hdd.cfg
-                params:
-                    FILENAME: /opt/xxx.bin
-                    NUM_ROUNDS: 7
-
-logging:
-    extra_logs: 1
\ No newline at end of file
diff --git a/configs/config_ada.yaml b/configs/config_ada.yaml
deleted file mode 100644
index 0dbfada..0000000
--- a/configs/config_ada.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-sensors:
-    roles_mapping:
-        testnode: system-cpu, block-io
-        compute: system-cpu
-        ceph-osd: system-cpu, block-io
-
-internal:
-    var_dir_root: /tmp/perf_tests
-
-explicit_nodes:
-    # "ssh://ubuntu@216.221.229.20::/root/disk_perf_test_tool/disk_io_perf.pem": testnode
-    # "ssh://ubuntu@216.221.229.21::/root/disk_perf_test_tool/disk_io_perf.pem": testnode
-    # "ssh://ubuntu@216.221.229.18::/root/disk_perf_test_tool/disk_io_perf.pem": testnode
-    # "ssh://ubuntu@216.221.229.17::/root/disk_perf_test_tool/disk_io_perf.pem": testnode
-    # "ssh://ubuntu@216.221.229.19::/root/disk_perf_test_tool/disk_io_perf.pem": testnode
-    # "ssh://ubuntu@216.221.229.22::/root/disk_perf_test_tool/disk_io_perf.pem": testnode
-    "ssh://node-8": compute
-    "ssh://node-9": compute
-    "ssh://node-10": compute
-    "ssh://node-5": ceph-osd
-    "ssh://node-7": ceph-osd
-    "ssh://node-13": ceph-osd
-
-vm_configs:
-    wally_1024:
-        image:
-            name: wally_ubuntu
-            url: https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
-            creds: "ssh://ubuntu@{ip}::{private_key_path}"
-
-        flavor:
-            name: wally_1024
-            hdd_size: 50
-            ram_size: 1024
-            cpu_count: 1
-
-        vol_sz: 30
-        keypair_name: wally_vm_key
-        name_templ: wally-{group}-{id}
-        aa_group_name: wally-aa-{0}
-        security_group: wally_ssh_to_everyone
-
-tests:
-    - start_test_nodes:
-        openstack:
-            creds: ENV
-            count: x1
-            cfg_name: wally_1024
-            network_zone_name: net04
-            flt_ip_pool: net04_ext
-
-        tests:
-            - io:
-                cfg: ceph
-                params:
-                    FILENAME: /dev/vdb
-                    NUM_ROUNDS: 7
-
-logging:
-    extra_logs: 1
diff --git a/configs/config_vm_scan.yaml b/configs/config_vm_scan.yaml
deleted file mode 100644
index c9a91f7..0000000
--- a/configs/config_vm_scan.yaml
+++ /dev/null
@@ -1,76 +0,0 @@
-clouds:
-    fuel:
-        url: http://172.16.52.112:8000/
-        creds: admin:admin@admin
-        ssh_creds: root:test37
-        openstack_env: test
-
-    openstack:
-        OS_TENANT_NAME: admin
-        OS_USERNAME: admin
-        OS_PASSWORD: admin
-        OS_AUTH_URL: http://172.16.53.3:5000/v2.0/
-
-    ceph: local
-
-discover: fuel, ceph
-
-explicit_nodes:
-    "ssh://root@172.16.52.112:3022:/home/koder/.ssh/id_rsa": testnode
-
-
-internal:
-    var_dir_root: /tmp/perf_tests
-
-node_configs:
-    io_1024:
-        img_name: disk_io_perf
-        flavor_name: disk_io_perf.256
-        keypair_name: disk_io_perf
-        network_zone_name: novanetwork
-        flt_ip_pool: nova
-        creds: "ssh://ubuntu@{0}::disk_io_perf.pem"
-        name_templ: disk_io_perf-{0}
-
-tests:
-    - start_test_nodes:
-        openstack:
-            creds: clouds
-            vm_params:
-                count: x1
-                config: io_1024
-        tests:
-            - io:
-                cfg: tests/io_scenario_hdd.cfg
-                params:
-                    FILENAME: /opt/xxx.bin
-                    NUM_ROUNDS: 7
-
-    - start_test_nodes:
-        openstack:
-            creds: clouds
-            vm_params:
-                count: x2
-                config: io_1024
-        tests:
-            - io:
-                cfg: tests/io_scenario_hdd.cfg
-                params:
-                    FILENAME: /opt/xxx.bin
-                    NUM_ROUNDS: 7
-
-    - start_test_nodes:
-        openstack:
-            creds: clouds
-            vm_params:
-                count: x3
-                config: io_1024
-        tests:
-            - io:
-                cfg: tests/io_scenario_hdd.cfg
-                params:
-                    FILENAME: /opt/xxx.bin
-                    NUM_ROUNDS: 7
-
-logging:
-    extra_logs: 1
\ No newline at end of file
diff --git a/configs/local_ceph.yaml b/configs/local_ceph.yaml
deleted file mode 100644
index 996199c..0000000
--- a/configs/local_ceph.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-clouds:
-    ceph: local
-
-discover: ceph
-
-explicit_nodes:
-    # "ssh://koder@192.168.152.43::/home/koder/.ssh/id_rsa": testnode
-    local: testnode
-
-internal:
-    var_dir_root: /tmp/perf_tests
-
-sensors:
-    roles_mapping:
-        testnode: system-cpu, block-io
-
-tests:
-    - io:
-        cfg: scripts/fio_tests_configs/io_task_test.cfg
-        use_sudo: false
-        params:
-            FILENAME: /mnt/ceph/xxx.bin
-            NUM_ROUNDS: 3
-
-logging:
-    extra_logs: 1
diff --git a/configs/perf1.yaml b/configs/perf1.yaml
deleted file mode 100644
index 4405f34..0000000
--- a/configs/perf1.yaml
+++ /dev/null
@@ -1,66 +0,0 @@
-clouds:
-    fuel:
-        url: http://172.16.52.112:8000/
-        creds: admin:admin@admin
-        ssh_creds: root:test37
-        openstack_env: Performance-1
-
-discover: fuel
-
-# explicit_nodes:
-#     "ssh://root@172.16.52.112:3022:/home/koder/.ssh/id_rsa": testnode
-
-internal:
-    var_dir_root: /tmp/perf_tests
-
-# sensors:
-#     roles_mapping:
-#         ceph-osd: block-io
-#         cinder: block-io, system-cpu
-#         testnode: system-cpu, block-io
-
-tests:
-    - start_test_nodes:
-        creds: clouds
-        vm_params:
-            count: x1
-            image:
-                name: disk_io_perf
-                url: https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
-
-            flavor:
-                name: disk_io_perf.1024
-                hdd_size: 50
-                ram_size: 1024
-                cpu: 1
-
-            vol_sz: 30
-            keypair_name: disk_io_perf
-            network_zone_name: novanetwork
-            flt_ip_pool: nova
-            private_key_path: disk_io_perf.pem
-            creds: "ssh://ubuntu@{ip}::{private_key_path}"
-            name_templ: wally-{group}-{id}
-            scheduler_group_name: wally-{group}-{id}
-            security_group: disk_io_perf
-
-        tests:
-            - io:
-                name: ceph
-                # cfg: wally/suits/io/io_scenario_ceph.cfg
-                cfg: scripts/fio_tests_configs/io_task_test.cfg
-                prefill_files: true
-                params:
-                    FILENAME: /dev/vdb
-                    NUM_ROUNDS: 3
-# 
-#     - io:
-#         # cfg: scripts/fio_tests_configs/io_task_test.cfg
-#         cfg: tests/io_scenario_hdd.cfg
-#         params:
-#             # FILENAME: /media/koder/a5230078-4c27-4c3b-99aa-26148e78b2e7/xxx.bin
-#             FILENAME: /opt/xxx.bin
-#             NUM_ROUNDS: 7
-
-logging:
-    extra_logs: 1
\ No newline at end of file
diff --git a/configs/perf2.yaml b/configs/perf2.yaml
deleted file mode 100644
index fac9da6..0000000
--- a/configs/perf2.yaml
+++ /dev/null
@@ -1,47 +0,0 @@
-clouds:
-    fuel:
-        url: http://172.16.52.113:8000/
-        creds: admin:admin@admin
-        ssh_creds: root:test37
-        openstack_env: rrr
-
-discover: fuel
-
-internal:
-    var_dir_root: /tmp/perf_tests
-
-tests:
-    - start_test_nodes:
-        creds: clouds
-        vm_params:
-            count: x1
-            image:
-                name: disk_io_perf
-                url: https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
-
-            flavor:
-                name: disk_io_perf.1024
-                hdd_size: 50
-                ram_size: 1024
-                cpu: 1
-
-            vol_sz: 30
-            keypair_name: disk_io_perf
-            network_zone_name: net04
-            flt_ip_pool: net04_ext
-            private_key_path: disk_io_perf.pem
-            creds: "ssh://ubuntu@{ip}::{private_key_path}"
-            name_templ: wally-{group}-{id}
-            scheduler_group_name: wally-{group}-{id}
-            security_group: disk_io_perf
-
-        tests:
-            - io:
-                cfg: wally/suits/io/ceph.cfg
-                prefill_files: true
-                params:
-                    FILENAME: /dev/vdb
-                    NUM_ROUNDS: 1
-
-logging:
-    extra_logs: 1
\ No newline at end of file
diff --git a/configs/usb_hdd.yaml b/configs/usb_hdd.yaml
deleted file mode 100644
index 3ff2458..0000000
--- a/configs/usb_hdd.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-explicit_nodes:
-    # local: testnode
-    "ssh://koder@koder-gup::/home/koder/.ssh/id_rsa": testnode
-
-internal:
-    var_dir_root: /tmp/perf_tests
-
-testnode_log_root: /tmp/perf_tests_rem
-# run_web_ui: true
-
-# sensors:
-#     roles_mapping:
-#         testnode: system-cpu, block-io
-
-tests:
-    - io:
-        cfg: wally/suits/io/hdd.cfg
-        # cfg: scripts/fio_tests_configs/io_task_test.cfg
-        prefill_files: false
-        use_sudo: false
-        test_logging: true
-        params:
-            FILENAME: /media/koder/a5230078-4c27-4c3b-99aa-26148e78b2e7/xxx.bin
-            NUM_ROUNDS: 7
-
-logging:
-    extra_logs: 1
\ No newline at end of file
diff --git a/configs/vEnv-3-2.yaml b/configs/vEnv-3-2.yaml
deleted file mode 100644
index 678067e..0000000
--- a/configs/vEnv-3-2.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-clouds:
-    fuel:
-        url: http://172.16.52.108:8000/
-        creds: admin:admin@admin
-        ssh_creds: root:test37
-        openstack_env: fuel
-
-discover: fuel
-
-# explicit_nodes:
-#     "ssh://root@172.16.52.112:3022:/home/koder/.ssh/id_rsa": testnode
-
-internal:
-    var_dir_root: /tmp/perf_tests
-
-# sensors:
-#     roles_mapping:
-#         ceph-osd: block-io
-#         cinder: block-io, system-cpu
-#         testnode: system-cpu, block-io
-
-tests:
-    - start_test_nodes:
-        creds: clouds
-        vm_params:
-            count: x1
-            image:
-                name: disk_io_perf
-                url: https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img
-
-            flavor:
-                name: disk_io_perf.1024
-                hdd_size: 50
-                ram_size: 1024
-                cpu: 1
-
-            keypair_name: disk_io_perf
-            network_zone_name: net04
-            flt_ip_pool: net04_ext
-            private_key_path: disk_io_perf.pem
-            creds: "ssh://ubuntu@{ip}::{private_key_path}"
-            name_templ: wally-{group}-{id}
-            scheduler_group_name: wally-aa-{group}-{id}
-            security_group: disk_io_perf
-
-        tests:
-            - io:
-                # cfg: tests/io_scenario_hdd.cfg
-                cfg: scripts/fio_tests_configs/io_task_test.cfg
-                params:
-                    FILENAME: /opt/xxx.bin
-                    NUM_ROUNDS: 7
-
-logging:
-    extra_logs: 1
diff --git a/report_templates/report_ceph.html b/report_templates/report_ceph.html
index 9817faf..f679fcb 100644
--- a/report_templates/report_ceph.html
+++ b/report_templates/report_ceph.html
@@ -13,42 +13,67 @@
 <div class="container">
     <center>
     <div class="row">
+    <table><tr><td>
+        <H4>Random direct performance,<br>4KiB blocks</H4>
         <table style="width: auto;" class="table table-bordered table-striped">
             <tr>
-                <td>Test</td>
-                <td>Iops/BW</td>
-                <td>Test</td>
-                <td>Iops/BW</td>
+                <td>Operation</td>
+                <td>IOPS</td>
             </tr>
             <tr>
-                <td>Rand read 4k direct max IOPS</td>
-                <td><div align="right">{direct_iops_r_max} IOPS</div></td>
-                <td>Rand write 4k sync IOPS 10ms lat</td>
-                <td><div align="right">{rws4k_10ms} IOPS</div></td>
+                <td>Read</td>
+                <td><div align="right">{direct_iops_r_max[0]} ~ {direct_iops_r_max[1]}%</div></td>
             </tr>
             <tr>
-                <td>Rand write 4k direct max IOPS</td>
-                <td><div align="right">{direct_iops_w_max} IOPS</div></td>
-                <td>Rand write 4k sync IOPS 30ms lat</td>
-                <td><div align="right">{rws4k_30ms} IOPS</div></td>
-            </tr>
-            <tr>
-                <td>Direct sequential read</td>
-                <td><div align="right">{bw_read_max} MiBps</div></td>
-                <td>Rand write 4k sync IOPS 100ms lat</td>
-                <td><div align="right">{rws4k_100ms} IOPS</div></td>
-            </tr>
-            <tr>
-                <td>Direct sequential write</td>
-                <td><div align="right">{bw_write_max} MiBps</div></td>
-                <td></td><td></td>
+                <td>Write</td>
+                <td><div align="right">{direct_iops_w_max[0]} ~ {direct_iops_w_max[1]}%</div></td>
             </tr>
         </table>
+    </td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
+        <H4>Random direct performance,<br>16MiB blocks</H4>
+        <table style="width: auto;" class="table table-bordered table-striped">
+            <tr>
+                <td>Operation</td>
+                <td>BW MiBps</td>
+            </tr>
+            <tr>
+                <td>Read</td>
+                <td><div align="right">{bw_read_max[0]} ~ {bw_read_max[1]}%</div></td>
+            </tr>
+            <tr>
+                <td>Write</td>
+                <td><div align="right">{bw_write_max[0]} ~ {bw_write_max[1]}%</div></td>
+            </tr>
+        </table>
+    </td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>
+        <H4>Maximal sync random write IOPS<br> for given latency, 4KiB</H4>
+        <table style="width: auto;" class="table table-bordered table-striped">
+            <tr>
+                <td>Latency ms</td>
+                <td>IOPS</td>
+            </tr>
+            <tr>
+                <td><div align="right">10</div></td>
+                <td><div align="right">{rws4k_10ms}</div></td>
+            </tr>
+            <tr>
+                <td><div align="right">30</div></td>
+                <td><div align="right">{rws4k_30ms}</div></td>
+            </tr>
+            <tr>
+                <td><div align="right">100</div></td>
+                <td><div align="right">{rws4k_100ms}</div></td>
+            </tr>
+        </table>
+    </td></tr></table>
     </div>
-    <img src="charts/rand_read_4k.png" />
-    <img src="charts/rand_write_4k.png" />
-    <img src="charts/rand_read_16m.png" />
-    <img src="charts/seq_write_1m.png" />
+    <table><tr>
+        <td><img src="charts/rand_read_4k.png" /></td>
+        <td><img src="charts/rand_write_4k.png" /></td>
+    </tr><tr>
+        <td><img src="charts/rand_read_16m.png" /></td>
+        <td><img src="charts/rand_write_16m.png" /></td>
+    </tr></table>
     </center>
 
     <!--div class="row">
diff --git a/wally/pretty_yaml.py b/wally/pretty_yaml.py
index f078ff2..ff1f3bc 100644
--- a/wally/pretty_yaml.py
+++ b/wally/pretty_yaml.py
@@ -64,7 +64,9 @@
             key_str = dumps_simple(k) + ": "
             val_res = dumpv(v, tab_sz, width - tab_sz, min_width)
 
-            if len(val_res) == 1 and len(key_str + val_res[0]) < width:
+            if len(val_res) == 1 and \
+               len(key_str + val_res[0]) < width and \
+               not isinstance(v, dict):
                 res.append(key_str + val_res[0])
             else:
                 res.append(key_str)
diff --git a/wally/report.py b/wally/report.py
index ea8e943..eeffefc 100644
--- a/wally/report.py
+++ b/wally/report.py
@@ -10,8 +10,8 @@
 
 import wally
 from wally import charts
-from wally.statistic import round_3_digit
 from wally.utils import parse_creds, ssize_to_b
+from wally.statistic import round_3_digit, round_deviation
 from wally.suits.io.results_loader import process_disk_info
 from wally.meta_info import total_lab_info, collect_lab_data
 
@@ -116,7 +116,12 @@
             else:
                 info.__dict__[name] = round_3_digit(val)
 
-    report = templ.format(lab_info=lab_description, **info.__dict__)
+    data = info.__dict__.copy()
+    for k, v in data.items():
+        if v is None:
+            data[k] = "-"
+
+    report = templ.format(lab_info=lab_description, **data)
     open(dest, 'w').write(report)
 
 
@@ -130,7 +135,12 @@
         if not name.startswith('__') and isinstance(val, (int, long, float)):
             setattr(info, name, round_3_digit(val))
 
-    report = templ.format(lab_info=lab_description, **info.__dict__)
+    data = info.__dict__.copy()
+    for k, v in data.items():
+        if v is None:
+            data[k] = "-"
+
+    report = templ.format(lab_info=lab_description, **data)
     open(dest, 'w').write(report)
 
 
@@ -153,11 +163,11 @@
     ch = charts.render_vertical_bar(title, legend, [bar_data], [bar_dev_top],
                                     [bar_dev_bottom], file_name=fname,
                                     scale_x=concurence, label_x="clients",
-                                    label_y="iops",
+                                    label_y=legend[0],
                                     lines=[
                                         (latv, "msec", "rr", "lat"),
                                         (iops_or_bw_per_vm, None, None,
-                                         legend[0] + " per thread")
+                                         legend[0] + " per client")
                                     ])
     return str(ch)
 
@@ -175,8 +185,8 @@
         ('ceph_test_rrd4k', 'rand_read_4k', 'Random read 4k direct IOPS'),
         ('ceph_test_rws4k', 'rand_write_4k', 'Random write 4k sync IOPS'),
         ('ceph_test_rrd16m', 'rand_read_16m', 'Random read 16m direct MiBps'),
-        ('ceph_test_swd1m', 'seq_write_1m',
-            'Sequential write 1m direct MiBps'),
+        ('ceph_test_rwd16m', 'rand_write_16m',
+            'Random write 16m direct MiBps'),
     ]
     make_plots(processed_results, path, plots)
 
@@ -212,37 +222,42 @@
         io_chart(desc, concurence, lat, data, data_dev, name, fname)
 
 
+def find_max_where(processed_results, sync_mode, blocksize, rw, iops=True):
+    result = [0, 0]
+    attr = 'iops' if iops else 'bw'
+    for measurement in processed_results.values():
+        ok = measurement.raw['sync_mode'] == sync_mode
+        ok = ok and (measurement.raw['blocksize'] == blocksize)
+        ok = ok and (measurement.raw['rw'] == rw)
+
+        if ok:
+            if getattr(measurement, attr) > result[0]:
+                result = [getattr(measurement, attr), measurement.dev]
+    return result
+
+
 def get_disk_info(processed_results):
     di = DiskInfo()
     rws4k_iops_lat_th = []
 
+    di.direct_iops_w_max = find_max_where(processed_results,
+                                          'd', '4k', 'randwrite')
+    di.direct_iops_r_max = find_max_where(processed_results,
+                                          'd', '4k', 'randread')
+    di.bw_write_max = find_max_where(processed_results,
+                                     'd', '16m', 'randwrite', False)
+    di.bw_read_max = find_max_where(processed_results,
+                                    'd', '16m', 'randread', False)
+
     for res in processed_results.values():
-        if res.raw['sync_mode'] == 'd' and res.raw['blocksize'] == '4k':
-            if res.raw['rw'] == 'randwrite':
-                di.direct_iops_w_max = max(di.direct_iops_w_max, res.iops)
-            elif res.raw['rw'] == 'randread':
-                di.direct_iops_r_max = max(di.direct_iops_r_max, res.iops)
-        elif res.raw['sync_mode'] == 's' and res.raw['blocksize'] == '4k':
+        if res.raw['sync_mode'] == 's' and res.raw['blocksize'] == '4k':
             if res.raw['rw'] != 'randwrite':
                 continue
-
             rws4k_iops_lat_th.append((res.iops, res.lat,
                                       res.raw['concurence']))
 
-        elif res.raw['sync_mode'] == 'd' and res.raw['blocksize'] == '1m':
-
-            if res.raw['rw'] == 'write':
-                di.bw_write_max = max(di.bw_write_max, res.bw)
-            elif res.raw['rw'] == 'read':
-                di.bw_read_max = max(di.bw_read_max, res.bw)
-        elif res.raw['sync_mode'] == 'd' and res.raw['blocksize'] == '16m':
-            if res.raw['rw'] == 'write' or res.raw['rw'] == 'randwrite':
-                di.bw_write_max = max(di.bw_write_max, res.bw)
-            elif res.raw['rw'] == 'read' or res.raw['rw'] == 'randread':
-                di.bw_read_max = max(di.bw_read_max, res.bw)
-
-    di.bw_write_max /= 1000
-    di.bw_read_max /= 1000
+    di.bw_write_max[0] /= 1000
+    di.bw_read_max[0] /= 1000
 
     rws4k_iops_lat_th.sort(key=lambda (_1, _2, conc): conc)
 
@@ -273,13 +288,21 @@
         setattr(di, 'rws4k_{}ms'.format(tlatv_ms), int(iops3))
 
     hdi = DiskInfo()
-    hdi.direct_iops_r_max = di.direct_iops_r_max
-    hdi.direct_iops_w_max = di.direct_iops_w_max
+
+    def pp(x):
+        med, dev = round_deviation((x[0], x[1] * x[0]))
+        # 3 sigma in %
+        dev = int(float(dev) / med * 100)
+        return (med, dev)
+
+    hdi.direct_iops_r_max = pp(di.direct_iops_r_max)
+    hdi.direct_iops_w_max = pp(di.direct_iops_w_max)
+    hdi.bw_write_max = pp(di.bw_write_max)
+    hdi.bw_read_max = pp(di.bw_read_max)
+
     hdi.rws4k_10ms = di.rws4k_10ms if 0 != di.rws4k_10ms else None
     hdi.rws4k_30ms = di.rws4k_30ms if 0 != di.rws4k_30ms else None
     hdi.rws4k_100ms = di.rws4k_100ms if 0 != di.rws4k_100ms else None
-    hdi.bw_write_max = di.bw_write_max
-    hdi.bw_read_max = di.bw_read_max
     return hdi
 
 
@@ -299,6 +322,7 @@
 
 def make_io_report(results, path, lab_url=None, creds=None):
     lab_info = None
+
     # if lab_url is not None:
     #     username, password, tenant_name = parse_creds(creds)
     #     creds = {'username': username,
diff --git a/wally/ssh_utils.py b/wally/ssh_utils.py
index efae92f..7a37c4b 100644
--- a/wally/ssh_utils.py
+++ b/wally/ssh_utils.py
@@ -251,7 +251,7 @@
 class URIsNamespace(object):
     class ReParts(object):
         user_rr = "[^:]*?"
-        host_rr = "[^:]*?"
+        host_rr = "[^:@]*?"
         port_rr = "\\d+"
         key_file_rr = "[^:@]*"
         passwd_rr = ".*?"
@@ -267,10 +267,13 @@
 
     templs = [
         "^{host_rr}$",
+        "^{host_rr}:{port_rr}$",
+        "^{user_rr}@{host_rr}$",
+        "^{user_rr}@{host_rr}:{port_rr}$",
         "^{user_rr}@{host_rr}::{key_file_rr}$",
         "^{user_rr}@{host_rr}:{port_rr}:{key_file_rr}$",
-        "^{user_rr}:{passwd_rr}@@{host_rr}$",
-        "^{user_rr}:{passwd_rr}@@{host_rr}:{port_rr}$",
+        "^{user_rr}:{passwd_rr}@{host_rr}$",
+        "^{user_rr}:{passwd_rr}@{host_rr}:{port_rr}$",
     ]
 
     for templ in templs:
@@ -278,8 +281,8 @@
 
 
 def parse_ssh_uri(uri):
-    # user:passwd@@ip_host:port
-    # user:passwd@@ip_host
+    # user:passwd@ip_host:port
+    # user:passwd@ip_host
     # user@ip_host:port
     # user@ip_host
     # ip_host:port
diff --git a/wally/start_vms.py b/wally/start_vms.py
index af7df71..6ce91f8 100644
--- a/wally/start_vms.py
+++ b/wally/start_vms.py
@@ -99,6 +99,15 @@
     cmd = "bash {spath} >/dev/null".format(spath=spath)
     subprocess.check_call(cmd, shell=True, env=env)
 
+    conn = nova_connect(name, passwd, tenant, auth_url)
+    while True:
+        status = conn.images.find(name='wally_ubuntu').status
+        if status == 'ACTIVE':
+            break
+        msg = "Image {0} is still in {1} state. Waiting 10 more seconds"
+        logger.info(msg.format('wally_ubuntu', status))
+        time.sleep(10)
+
 
 def prepare_os(nova, params):
     allow_ssh(nova, params['security_group'])
diff --git a/wally/statistic.py b/wally/statistic.py
index f3fcd6a..a02033d 100644
--- a/wally/statistic.py
+++ b/wally/statistic.py
@@ -19,6 +19,12 @@
     return round_deviation((val, val / 10.0))[0]
 
 
+def round_deviation_p(med_dev):
+    med, dev = med_dev
+    med, dev = round_deviation((med, med * dev))
+    return [med, float(dev) / med]
+
+
 def round_deviation(med_dev):
     med, dev = med_dev
 
@@ -28,8 +34,8 @@
     dev_div = 10.0 ** (math.floor(math.log10(dev)) - 1)
     dev = int(dev / dev_div) * dev_div
     med = int(med / dev_div) * dev_div
-    return (type(med_dev[0])(med),
-            type(med_dev[1])(dev))
+    return [type(med_dev[0])(med),
+            type(med_dev[1])(dev)]
 
 
 def groupby_globally(data, key_func):
diff --git a/wally/suits/io/agent.py b/wally/suits/io/agent.py
index 0a84ed1..51eb2fd 100644
--- a/wally/suits/io/agent.py
+++ b/wally/suits/io/agent.py
@@ -148,7 +148,7 @@
                 raise ValueError(msg.format(count[1:-1],
                                  count.format(**sec.format_params)))
 
-            yield sec
+            yield sec.copy()
 
             if 'ramp_time' in sec.vals:
                 sec = sec.copy()
@@ -217,8 +217,10 @@
                 assert isinstance(val, (int, float)) or val is None
 
         params['UNIQ'] = 'UN{0}'.format(counter[0])
+        params['COUNTER'] = str(counter[0])
         counter[0] += 1
         params['TEST_SUMM'] = get_test_summary(sec.vals)
+
         sec.name = sec.name.format(**params)
 
         yield sec
diff --git a/wally/suits/io/ceph.cfg b/wally/suits/io/ceph.cfg
index c9b2f53..425696a 100644
--- a/wally/suits/io/ceph.cfg
+++ b/wally/suits/io/ceph.cfg
@@ -8,8 +8,8 @@
 filename={FILENAME}
 NUM_ROUNDS=7
 
-NUMJOBS={% 1, 5, 10, 15, 20, 30, 40 %}
-NUMJOBS_SHORT={% 1, 5, 10 %}
+NUMJOBS={% 1, 5, 10, 15, 40 %}
+NUMJOBS_SHORT={% 1, 2, 3, 10 %}
 
 size=30G
 ramp_time=5
diff --git a/wally/suits/io/hdd.cfg b/wally/suits/io/hdd.cfg
index 07e45e9..4156171 100644
--- a/wally/suits/io/hdd.cfg
+++ b/wally/suits/io/hdd.cfg
@@ -33,6 +33,14 @@
 numjobs={NUMJOBS}
 
 # ---------------------------------------------------------------------
+# check IOPS randwrite.
+# ---------------------------------------------------------------------
+[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]
+blocksize=4k
+rw=randwrite
+direct=1
+
+# ---------------------------------------------------------------------
 # No reason for th count > 1 in case of sequantial operations
 # They became random
 # ---------------------------------------------------------------------
@@ -40,11 +48,3 @@
 blocksize=1m
 rw={% read, write %}
 direct=1
-
-# ---------------------------------------------------------------------
-# check IOPS randwrite.
-# ---------------------------------------------------------------------
-[hdd_test_{TEST_SUMM} * {NUM_ROUNDS}]
-blocksize=4k
-rw=randwrite
-direct=1
