Example #1
0
function load_results($dir)
{
    $data = array();
    $fs_dir = opendir($dir);
    while ($fs = readdir($fs_dir)) {
        if (!is_dir("{$dir}/{$fs}") || in_array($fs, array('.', '..'))) {
            continue;
        }
        echo "{$dir}/{$fs}\n";
        $data[$fs] = array();
        $pgbs_dir = opendir("{$dir}/{$fs}");
        while ($pgbs = readdir($pgbs_dir)) {
            if ($pgbs == '.' || $pgbs == '..') {
                continue;
            }
            echo "\t{$pgbs}:";
            $data[$fs][$pgbs] = array();
            $fsbs_dir = opendir("{$dir}/{$fs}/{$pgbs}");
            while ($fsbs = readdir($fsbs_dir)) {
                if ($fsbs == '.' || $fsbs == '..') {
                    continue;
                }
                echo " {$fsbs}";
                $data[$fs][$pgbs][$fsbs] = array();
                $data[$fs][$pgbs][$fsbs]['hash'] = md5("{$fs}/{$pgbs}/{$fsbs}" . microtime(true));
                $data[$fs][$pgbs][$fsbs]['pgbench'] = array();
                $data[$fs][$pgbs][$fsbs]['pgbench']['ro'] = load_pgbench("{$dir}/{$fs}/{$pgbs}/{$fsbs}/pgbench/ro", 1);
                $data[$fs][$pgbs][$fsbs]['pgbench']['rw'] = load_pgbench("{$dir}/{$fs}/{$pgbs}/{$fsbs}/pgbench/rw", 9);
                $data[$fs][$pgbs][$fsbs]['tpch'] = load_tpch("{$dir}/{$fs}/{$pgbs}/{$fsbs}/tpch");
            }
            closedir($fsbs_dir);
            echo "\n";
        }
        closedir($pgbs_dir);
    }
    closedir($fs_dir);
    return $data;
}
Example #2
0
    if (!is_dir($input)) {
        echo "ERROR: is not a directory: '{$input}'\n";
        exit;
    } else {
        if (file_exists($output)) {
            echo "ERROR: output file '{$output}' already exists\n";
            exit;
        }
    }
}
/* query timeout limit */
define('QUERY_TIMEOUT', 300);
echo "input directory: {$input}\n";
echo "output file: {$output}\n";
// load the results from directory
$data = load_tpch($input);
// add information from the shell log
parse_log($data, "{$input}/bench.log");
// write the results into CSV
print_tpch_csv($data, "{$output}");
/* FUNCTIONS */
/* loads postgresql stats from the directory (expects stats-before/stats-after log files) */
/* param $dir - directory with benchmark results */
function load_stats($dir)
{
    $diff = array();
    $before = file("{$dir}/stats-before.log");
    $after = file("{$dir}/stats-after.log");
    // pg_stat_bgwriter
    $matches_before = array();
    preg_match('/^\\s+([0-9]+)\\s\\|\\s+([0-9]+)\\s\\|\\s+([0-9]+)\\s\\|\\s+([0-9]+)\\s\\|\\s+([0-9]+)\\s\\|\\s+([0-9]+)\\s\\|\\s+([0-9]+)/', $before[2], $matches_before);