Пример #1
0
def parse_results(files: List[str], type: str) -> Dict[str, List[float]]:
    data = {
        'metal': [],
        'kvm': [],
        'firecracker': [],
        'docker': [],
        'gvisor': []
    }

    for f in files:
        selector = get_platform_selector(f)
        arr = data[selector]

        def parse_line(line: str) -> None:
            m = re.search(' +{}, MiB/s: +([0-9\.]+)'.format(type), line)
            if m:
                mbytes = float(m.group(1))
                if mbytes > 0:
                    arr.append(mbytes)

        read_file_per_line(path.join(results_dir, f), parse_line)
        assert len(arr) == 10, "Expected to collect 10 results from {} but got {}".format(f, len(arr))
    return data
Пример #2
0
import pandas as pd

dirname = path.dirname(__file__)
results_dir = path.join(dirname, "../tests/network/output")
output_dir = path.join(dirname, "extracted")
bandwidth_file = "bandwidth_results.csv"
jitter_file = "jitter_results.csv"

results = [f for f in get_files(results_dir) if 'server' not in f]
b_results = [f for f in results if 'jitter' not in f]
j_results = [f for f in results if 'jitter' in f]

df = pd.DataFrame(columns=['platform', 'sent_bps', 'received_bps', 'cpu_client', 'cpu_server'])

for offset, f in enumerate(b_results):
    selector = get_platform_selector(f)
    iterations = read_json_file(path.join(results_dir, f))
    for i, iteration in enumerate(iterations):
        end = iteration['end']
        sent_bps = end['sum_sent']['bits_per_second']
        received_bps = end['sum_received']['bits_per_second']
        cpu_local = end['cpu_utilization_percent']['host_total']
        cpu_remote = end['cpu_utilization_percent']['remote_total']
        index = offset * 10 + i
        # Store from the platform perspecvive, hence column "sent_bps" means bits sent by the server, not client
        df.loc[index] = [selector, received_bps, sent_bps, cpu_local, cpu_remote]

df.to_csv(path.join(output_dir, bandwidth_file), index=False)

df = pd.DataFrame(columns=['platform', 'jitter_ms', 'bps', 'lost_percent', 'cpu_client', 'cpu_server'])