VMA Improves Redis Transaction Rate and Latency (Memtier Benchmark)

Version 12

    This post demonstrates latency and throughput  benchmark using RedisLabs memtier benchmark over VMA.

     

    The Benchmark

    The memtier benchmark is a command line utility developed by Redis Labs for load generation and bechmarking NoSQL databases.

    This benchmark test shows latency and throughput improvements using memtier benchmark over VMA comparing to non VMA benchmark.

    In our performance tests we used the memtier redis benchmark in order to understand the improvement between running with and without VMA.

    The Benchmark results showed significant improvement in favor of running Redis on top of VMA. You can see more details in the 'conclusions' section below (SET & GET operations were tested)

    Each test was executed 3 times:

    1. "No VMA" - Run over sockets without any acceleration
    2. "VMA on Server" side only acceleration - Client ran over the Linux sockets. Since VMA uses IPv4 as wire protocol, any TCP socket implementation is supported
    3. "VMA on both" - Both client and server use the fast sockets acceleration based on VMA

     

    References

     

    Setup

    • 6 client hosts, each running a memtier client
    • 3 Redis servers (depends on the scenario) receiving queries from 6 memtier clients
      • Partitioning is made by dividing each group of clients to address different server, no proxy was configured.
    • Benchmark running with consistency enabled on each SET operation
    • Network switch: Mellanox SX1036 40GbE
    • Adapter Card: ConnectX-3, MLNX_OFED 2.2
    • VMA: libvma-6.5 (in high polling configuration mode)

     

     

    ServersClients
    OSRHEL-6.4RHEL-6.4 / RHEL-6.3 / SUSE-sp2 / SUSE-sp3
    CPUXeon(R) CPU E5-2687W @3.10GHzXeon(R) CPU E5-2640 @ 2.50GHz
    Memory63 GB31 GB

     

     

    Results

     

    1. Latency vs. payload size (GET & SET operations) [Lower is better]

     

    2. TPS vs payload size (GET operations) [Higher is better]

     

    3. TPS vs Number of Connections (GET & SET operations) [Higher is better]

     

    Conclusions

    • In memtier benchmark, Redis over VMA shows up to 175% improvement in TPS comparing to vanilla Redis
    • In memtier benchmark, Redis over VMA shows up to 160% improvement in Latency comparing to vanilla Redis
    • VMA performance gain scales with the number of parallel connections
    • When enlarging the pipeline’s value, the improvement is smaller but still very significant
    • Enabling VMA on Redis server side only (single sided acceleration) will provide a significant performance gain