Search in sources :

Example 1 with ClientAffinityStats

use of org.voltdb.client.ClientAffinityStats in project voltdb by VoltDB.

the class SyncBenchmark method printStatistics.

/**
     * Prints a one line update on performance that can be printed
     * periodically during a benchmark.
     */
public synchronized void printStatistics() {
    ClientStatsContext statscontext = periodicStatsContext.fetchAndResetBaseline();
    ClientAffinityStats affinityStats = statscontext.getAggregateAffinityStats();
    ClientStats stats = statscontext.getStats();
    long time = Math.round((stats.getEndTimestamp() - benchmarkStartTS) / 1000.0);
    System.out.printf("%02d:%02d:%02d ", time / 3600, (time / 60) % 60, time % 60);
    System.out.printf("Throughput %d/s, ", stats.getTxnThroughput());
    System.out.printf("Aborts/Failures %d/%d, ", stats.getInvocationAborts(), stats.getInvocationErrors());
    System.out.printf("Avg/95%% Latency %.2f/%.2fms, ", stats.getAverageLatency(), stats.kPercentileLatencyAsDouble(0.95));
    System.out.printf("%d AW, %d AR, %d RRW, %d RRR\n", affinityStats.getAffinityWrites(), affinityStats.getAffinityReads(), affinityStats.getRrWrites(), affinityStats.getRrReads());
}
Also used : ClientStats(org.voltdb.client.ClientStats) ClientStatsContext(org.voltdb.client.ClientStatsContext) ClientAffinityStats(org.voltdb.client.ClientAffinityStats)

Example 2 with ClientAffinityStats

use of org.voltdb.client.ClientAffinityStats in project voltdb by VoltDB.

the class SyncBenchmark method printResults.

/**
     * Prints the results of the voting simulation and statistics
     * about performance.
     *
     * @throws Exception if anything unexpected happens.
     */
public synchronized void printResults() throws Exception {
    ClientStats stats = fullStatsContext.fetch().getStats();
    // 1. Get/Put performance results
    String display = "\n" + HORIZONTAL_RULE + " KV Store Results\n" + HORIZONTAL_RULE + "\nA total of %,d operations were posted...\n" + " - GETs: %,9d Operations (%,d Misses and %,d Failures)\n" + "         %,9d MB in compressed store data\n" + "         %,9d MB in uncompressed application data\n" + "         Network Throughput: %6.3f Gbps*\n" + " - PUTs: %,9d Operations (%,d Failures)\n" + "         %,9d MB in compressed store data\n" + "         %,9d MB in uncompressed application data\n" + "         Network Throughput: %6.3f Gbps*\n" + " - Total Network Throughput: %6.3f Gbps*\n\n" + "* Figure includes key & value traffic but not database protocol overhead.\n\n";
    double oneGigabit = (1024 * 1024 * 1024) / 8;
    long oneMB = (1024 * 1024);
    double getThroughput = networkGetData.get() + (successfulGets.get() * config.keysize);
    getThroughput /= (oneGigabit * config.duration);
    long totalPuts = successfulPuts.get() + failedPuts.get();
    double putThroughput = networkGetData.get() + (totalPuts * config.keysize);
    putThroughput /= (oneGigabit * config.duration);
    System.out.printf(display, stats.getInvocationsCompleted(), successfulGets.get(), missedGets.get(), failedGets.get(), networkGetData.get() / oneMB, rawGetData.get() / oneMB, getThroughput, successfulPuts.get(), failedPuts.get(), networkPutData.get() / oneMB, rawPutData.get() / oneMB, putThroughput, getThroughput + putThroughput);
    // 2. Performance statistics
    System.out.print(HORIZONTAL_RULE);
    System.out.println(" Client Workload Statistics");
    System.out.println(HORIZONTAL_RULE);
    System.out.printf("Average throughput:            %,9d txns/sec\n", stats.getTxnThroughput());
    System.out.printf("Average latency:               %,9.2f ms\n", stats.getAverageLatency());
    System.out.printf("10th percentile latency:       %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.1));
    System.out.printf("25th percentile latency:       %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.25));
    System.out.printf("50th percentile latency:       %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.5));
    System.out.printf("75th percentile latency:       %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.75));
    System.out.printf("90th percentile latency:       %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.9));
    System.out.printf("95th percentile latency:       %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.95));
    System.out.printf("99th percentile latency:       %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.99));
    System.out.printf("99.5th percentile latency:     %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.995));
    System.out.printf("99.9th percentile latency:     %,9.2f ms\n", stats.kPercentileLatencyAsDouble(.999));
    System.out.print("\n" + HORIZONTAL_RULE);
    System.out.println(" System Server Statistics");
    System.out.println(HORIZONTAL_RULE);
    System.out.printf("Reported Internal Avg Latency: %,9.2f ms\n", stats.getAverageInternalLatency());
    System.out.print("\n" + HORIZONTAL_RULE);
    System.out.println(" Latency Histogram");
    System.out.println(HORIZONTAL_RULE);
    System.out.println(stats.latencyHistoReport());
    // 3. Affinity stats
    System.out.print("\n" + HORIZONTAL_RULE);
    System.out.println(" Client Affinity Statistics");
    System.out.print(HORIZONTAL_RULE + "\n");
    Map<Integer, ClientAffinityStats> affinityStats = fullStatsContext.fetch().getAffinityStats();
    for (Entry<Integer, ClientAffinityStats> e : affinityStats.entrySet()) {
        System.out.println(e.getValue());
    }
    // 4. Write stats to file if requested
    client.writeSummaryCSV(stats, config.statsfile);
}
Also used : ClientStats(org.voltdb.client.ClientStats) ClientAffinityStats(org.voltdb.client.ClientAffinityStats)

Aggregations

ClientAffinityStats (org.voltdb.client.ClientAffinityStats)2 ClientStats (org.voltdb.client.ClientStats)2 ClientStatsContext (org.voltdb.client.ClientStatsContext)1