How to measure database scaling & density on Nutanix HCI platform.

How can database density be measured?

  • How does database performance behave as more DBs are consolidated?
  • What impact does running the CVM have on available host resources?

tl;dr

  • The cluster was able to achieve ~90% of the theoretical maximum.
  • CVM overhead was 5% for this workload.

Experiment setup

The goal was to establish how database performance is affected as additional database workloads are added into the cluster. As a secondary metric, measure the overhead from running the virtual storage controller on the same host as the database servers themselves. We use the Postgres database with pgbench workload and measure the total transactions per second.

Cluster configuration

  • 4 Node Nutanix cluster, with 2x Xeon CPU’s per host with 20 cores per socket.

Database configuration

Each database is identically configured with

  • Postgres 9.3
  • Ubuntu Linux
  • 4 vCPU
  • 8GB of memory
  • pgbench benchmark, running the “simple” query set.

The database is sized so that it fits entirely in memory. This is a test of CPU/Memory not IO.

Experiment steps.

The experiment starts with a single Database on a single host. We add more databases into the cluster until we reach 40 databases in total. At 40 databases with 4 vCPU each and a CPU bound workload we use all 160 CPU cores on the cluster.

The database is configured to fit into the host DRAM memory, and the benchmark runs as fast as it can – the benchmark is CPU bound.

Results

Below are the measured results from running 1-40 databases on the 4 node cluster.

Performance scales almost linearly from 4 to 160 CPU with no obvious bottlenecks before all of the CPU cores are saturated in the host at 40 databases.

Scaling from 1 Databases to 40 on a 4 node cluster.
Continue reading

How to run vdbench benchmark on any HCI with X-Ray

How to use Nutanix X-Ray to run any vdbench workload at scale

Many storage performance testers are familiar with vdbench, and wish to use it to test Hyper-Converged (HCI) performance. To accurately performance test HCI you need to deploy workloads on all HCI nodes. However, deploying multiple VMs and coordinating vdbench can be tricky, so with X-ray we provide an easy way to run vdbench at scale. Here’s how to do it.

Step by step instructions to add vdbench to X-Ray.

  1. Download vdbench from the Oracle site
  2. Get the vdbench x-ray test scenario from github https://github.com/garyjlittle/xray.git
    • (You can clone the repository to a laptop, then upload to your X-Ray server)
  3. Rename the zip file downloaded from Oracle to vdbench.zip The X-ray scenerio relies on the zip file having exactly this name.
  4. Go to your X-ray server and upload the vdbench.zip file and the vdbench x-ray scenario files to the x-ray server.
  5. Ensure that VMs created on the cluster will have access to the internet, they will need to be able to install a JVM in order to run vdbench.
Continue reading

How to identify NVME drive types and test throughput

Dmitry Nosachev / CC BY-SA (https://creativecommons.org/licenses/by-sa/4.0)

Start by identifying the NVME drive type (“nvme list“) since the NVME drives use the nvme protocol, they will not sshow up in the output of lsscsi

Identify NVME

Identify the nvme drives using “nvme list”

nutanix@NTNX-18SM3E420118-A-CVM:10.56.6.36:~/tmp$ sudo nvme list
Node SN Model Version Namespace Usage Format FW Rev
/dev/nvme0n1 S3HDNX0KC00137 SAMSUNG MZWLL1T6HEHP-00003 1.2 1 1.60 TB / 1.60 TB 512 B + 0 B GPNA6B3Q
/dev/nvme1n1 S3HDNX0KC00140 SAMSUNG MZWLL1T6HEHP-00003 1.2 1 1.60 TB / 1.60 TB 512 B + 0 B GPNA6B3

The drive types identified as “MZWLL1T6HEHP-00003” the marketing name is PM1725A.

The spec sheet for the PM1725A lists the following performance characteristics

Identify device specs

Random IO size=4K, Sequential=1MB

WorkloadData Sheet ResultMeasured Result
Sequential Read3,300 MB/s3,250 MB/s (QD=8)
Sequential Write2,000 MB/s2,200 MB/s (QD=8)
Random Read800,000 IOPS700,000 (QD=192)
Random Write140,000 IOPS480,000* (QD=192)
Continue reading