REDIS ENTERPRISE AND VMAX ALL FLASH Performance Assessment Tests and Best Practices June 2017 VMAX ® Engineering White Paper ABSTRACT This white paper provides details on the performance assessment tests and best practices for deploying Redis e Pack with Dell EMC VMAX All Flash storage arrays. H16119.1 This document is not intended for audiences in China, Hong Kong, Taiwan, and Macao. White Paper
18
Embed
REDIS ENTERPRISE AND VMAX ALL FLASH - Dell EMC · Executive summary 4 Redis Enterprise and VMAX All Flash Performance Assessment Tests and Best Practices White Paper Executive summary
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
REDIS ENTERPRISE AND VMAX ALL FLASH
Performance Assessment Tests and Best Practices June 2017
VMAX® Engineering White Paper
VMAX® Engineering White Paper
ABSTRACT
This white paper provides details on the performance assessment tests and best
practices for deploying Redise Pack with Dell EMC VMAX All Flash storage arrays.
H16119.1
This document is not intended for audiences in China, Hong Kong, Taiwan,
and Macao.
White Paper
Copyright
2 Redis Enterprise and VMAX All Flash Performance Assessment Tests and Best Practices White Paper
The information in this publication is provided as is. Dell Inc. makes no representations or warranties of any kind with respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose.
Use, copying, and distribution of any software described in this publication requires an applicable software license.
Copyright 2017 Dell Inc. or its subsidiaries. All Rights Reserved. Dell, EMC, Dell EMC and other trademarks are trademarks of Dell Inc. or its subsidiaries. Intel, the Intel logo, the Intel Inside logo, and Xeon are trademarks of Intel Corporation in the U.S. and/or other countries. Other trademarks may be the property of their respective owners.
Published in the USA June 2017 H16119.1.
Dell Inc. believes the information in this document is accurate as of its publication date. The information is subject to change without notice.
Contents
3 Redis Enterprise and VMAX All Flash Performance Assessment Tests and Best Practices
11 Redis Enterprise and VMAX All Flash Performance Assessment Tests and Best Practices
White Paper
Performance assessment tests
We used the following hardware and software configuration to assess the performance of
Redise with Dell PowerEdge R730 servers and VMAX All-Flash storage.
Note: A large Redis cluster deployment will include additional hosts and cluster nodes. The goal
of the following tests was to achieve an understanding of the performance of a single node cluster
running with 16 shards. A linear scalability can be achieved by just adding nodes and shards to
the cluster. The VMAX All Flash can scale to support many such nodes.
Physical configuration
Figure 3 shows the physical test environment. It consists of a single V-Brick VMAX
950FX, two Dell R730 servers (Redis client and Redise cluster node), network and SAN
switches.
Each of the servers uses two dual-port host bus adapters (HBAs) for a total of four initiators per host connected to the SAN switches. The servers use two networks; a 1 GbE public network for user connectivity and management, and a 10 GbE private network for inter-node communication. Jumbo frames and VLANs are configured for the 10 GbE network.
Figure 3. Physical configuration
Table 1 describes the hardware and software components used for the performance
assessment tests.
Test
configuration
Performance assessment tests
12 Redis Enterprise and VMAX All Flash Performance Assessment Tests and Best Practices White Paper
Table 1. Performance assessment tests hardware and software components
Device Quantity Configuration Description
VMAX 950FX
1 1 x V-Brick (32 x SSD in RAID5)
1 x 2 TB device masked to Redis Server
HYPERMAX OS 5977.1124
VMAX 950F All Flash single engine (V-Brick)
Redise cluster node
1 Dell R730
Red Hat Enterprise Linux (RHEL) 7.2
12 core x 2 Intel Xeon E5-2690 v3 @ 2.60 GHz
128 GB Memory
2 x 10 GbE network ports (bonded)
2 x dual port 16 Gb HBAs (total of 4 ports)
Redise Pack version 4.4.2-30
XFS file system
Dell EMC PowerPath™ 6.1
Redise cluster node configured for full write persistency (fsync for every write)
Redis client
1 Dell R730
Red Hat Enterprise Linux (RHEL) 7.2
12 core x 2 Intel Xeon E5-2690 v3 @ 2.60 GHz
128 GB Memory
2 x 10 GbE network ports (bonded)
2 x dual port 16 Gb HBAs (not used)
Redis client used for running the Memtier Benchmark tool
We created a single 2 TB device and masked it to the Redise cluster node. We created a
single partition on the device and made sure it is aligned at 2048 blocks (1MB offset)
based on VMAX best practices. We created an XFS file system on the partition and
mounted it as /mnt/redis, which was later used for Redise data persistency location.
Note: We performed preliminary tests with a striped Logical Volume Manager (LVM) over multiple
smaller devices as opposed to a single device, which showed no performance advantage using
LVM. For that reason, a single device was used for the data persistency path on the Redise cluster
node.
We installed Redise Pack using the downloaded RPM package. After installing the
package, we performed the setup using Redise management user interface (UI). For
persistent storage, we used the VMAX device mount point of /mnt/redis. Redis
ephemeral (non-persistent) storage was not used in our testing.
We created a new Redis database with a 50 GB RAM limit and 16 shards. We set data
persistence to Append Only File (AOF) – fsync every write. We entered a password for
the database, along with a free endpoint port number.
Note: For more information on Redise installation and setup see A guide to Redis Pack
installation, operation, and administration on the Redis Labs website.
As the table shows, in all the tests the Redise management UI reported an average
response time of less than 1 ms. For VMAX arrays, the reported average write latency
was about 100 microseconds (0.1 ms). As can be expected, 90% read tests always
provided the best operations per second within their test case (as compared to 1:1 or 9:1
tests). Write IOPS as measured from Unisphere, ranged from 11.5K to 35K, based on the
specific test.
Test results for
100-byte records
Test results for 6
KB records
Performance assessment tests
15 Redis Enterprise and VMAX All Flash Performance Assessment Tests and Best Practices
White Paper
Figure 4 shows a portion of the Redis management UI performance graphs. The straight
lines indicate steady state run, with the minimum and maximum values at the bottom of
the graph confirming that latency metrics are under 1 ms.
Figure 4. Sample performance graphs
Figure 5 shows a portion of the VMAX Unisphere performance graphs of the same test as above. The straight lines indicate a steady state run, where the latency is about 100 microseconds (0.1 ms) and IOPS are about 40,000.
Figure 5. VMAX Unisphere performance graphs
For in-memory databases such as Redis, when the data requires persistence, storage
write latency is a critical factor. Redise Pack together with VMAX All Flash enables fsync
for every write (full data persistency), while still maintaining sub millisecond operation
latency. This latency was kept under 1ms in both the smaller 100 bytes tests, which is
more typical for a Redis workload, as well as the larger, 6000-byte tests.
Note: The performance numbers achieved are not VMAX All-Flash performance limits and they
only represent the test environment and configuration used during the tests.
Sample
performance
graphs
Test conclusion
Using SnapVX to create and restore Redise cluster gold copies
16 Redis Enterprise and VMAX All Flash Performance Assessment Tests and Best Practices White Paper
Using SnapVX to create and restore Redise cluster gold copies
The purpose of this test is to show how to create and restore storage snapshots using
VMAX SnapVX of the Redise cluster.
VMAX SnapVX snapshots are created and restored in seconds, regardless of data size.
All snapshots get a user-defined name and an optional duration (time-to-live). As
snapshots are pointer-based, they do not consume any capacity. Only changes made
after the snapshot is taken can add capacity.
Some key SnapVX benefits include:
Create Redise cluster “gold” copies as backups or as a save-point prior to an
operation such as data load, or other changes to the database that may require rolling
back if something goes wrong.
Link SnapVX snapshots to a matching set of target devices. Use these devices as a
source for test, development, or reporting environments that can be refreshed
periodically from production.
SnapVX snapshots are inherently consistent and therefore can be taken while the Redis
workload is running. You can snap simultaneously all the devices, regardless of whether
they are located in a single array or span multiple VMAX arrays.
Test overview
The following test shows an example of the steps involved in creating a point-in-time
snapshot of an active Redise cluster with shards pointing to /mnt/redis mount point,
and also restoring the database using the snapshot.
While the test case used a single Redis cluster node, it can be easily applied to many
nodes as SnapVX can operate on a group of LUNs at once, maintaining consistency
across them during the snapshot operation.
SnapVX can be managed using the VMAX Solutions Enabler Command Line Interface
(CLI), Unisphere UI, or REST API. In the following examples, CLI is used.
Test steps
1. To simulate existing user data we created two Redis keys, Company and
Product, with values of Dell and VMAX_All_Flash, respectively:
# redis-cli -p 12345 -a <pwd> mset Company Dell Product
VMAX_All_Flash
OK
# redis-cli -p 12345 -a <pwd> mget Company Product
1) "Dell"
2) "VMAX_All_Flash"
2. To simulate activity during the snapshot operation (which is taken while the
database is active), Memtier Benchmark workload was used. We then created a
snapshot. The symsnapvx command specifies the storage group that includes
the source devices for the snapshot (dbcf0217_sg in this case, which contains
the /mnt/redis mount-point device). The user also provides a snapshot name,
The benefits of
using storage
snapshots with
Redis
How to use
SnapVX with
Redise cluster
Using SnapVX to create and restore Redise cluster gold copies
17 Redis Enterprise and VMAX All Flash Performance Assessment Tests and Best Practices
White Paper
which in this case is redis_217_snap. Alternatively, the name can describe the
cluster name or application that is being snapped, the purpose of the snapshot,
and so on. The establish command tells the CLI to create a new snapshot: