Predictable & Scalable MS Exchange 2016 Performance on Nutanix with AHV

I’ve been doing some testing recently with Nutanix latest GA code (AOS 5.8) and I decided to do some quick MS Exchange Jetstress performance tests as part of a larger piece of work.

In short I wanted to check how well Exchange storage performance scaled so I performed three tests. I started with 4 threads, then increased to 8 and finally to 12 threads using Jetress with Exchange 2016 ESE database modules.

For this testing I disabled the Nutanix in memory read cache to ensure all read IO is serviced by the physical SSDs so the result is not artificially improved from cache.

I also disabled Compression, Erasure Coding and Deduplication as these also artificially improve performance due to Jetstress data being highly compressible & dedupable.

The hardware used was a NX-8150 with 6 x SSDs and Intel Broadwell processors. This is why the database size was only 1.7TB as that’s just below the total usable capacity of the node. The performance over larger database sizes remains the same when the metadata cache (in the Nutanix Controller VM) is sized for the desired working set size as shown by our ESRP certification.

The hypervisor is Acropolis Hypervisor (AHV) which is fully certified for Microsoft Windows under the MS SVVP programme as well as MS ESRP certified for MS Exchange.

So here is the result for 4 threads.

Jetstress2016_4Threads

5580 IOPS with just 4 threads is very good performance and is sufficient for at least five thousand mailboxes with hundreds of messages per day which is maximum recommended active users per Exchange MSR server.

The next question is: What’s the latency for the database reads and log writes? (These are two of the critical performance metrics for Jetstress Pass/Fail results)

Jetstress2016_4Threads_Latency

Here we can see log write latency average across all four log drives is below 1ms (0.99ms) and database read latency at 1.16ms.

Next up, here is the result for 8 threads.

Jetstress2016_8Threads

10147 IOPS with 8 threads is excellent performance and shows Nutanix easily has headroom for more than ten-thousand mailboxes with hundreds of messages per day which easily exceeds the requirements for the maximum recommended active users per Exchange MSR server.

Again let’s check out the latency, Here we can see log write latency average across all four log drives is still below 1ms (0.99ms) and database read latency at 1.29ms. That’s just 0.13ms higher latency for reads and exactly the same write latency while achieving almost DOUBLE the IOPS.

Jetstress2016_8Threads_Latency

Lastly here is the result for 12 threads.

Jetstress2016_12Threads

14351 IOPS with 12 threads proves how scalable the Nutanix platform is as this is almost a linear increase in IOPS.

Again let’s check out the latency, Here we can see log write latency average across all four log drives is still below 1ms (0.98ms) and database read latency at 1.42ms. That’s just 0.14ms higher latency for reads and slightly lower write latency while achieving almost linear improvement in IOPS.

Jetstress2016_12Threads_Latency

Summary:

Nutanix provides extremely high, predictable performance for even the most demanding MS Exchange environments.

 

Google Wifi Review – 3 Wi-Fi Point Solution

Since moving into a new place earlier this year, I’ve been struggling to get consistent Wi-fi signal/performance especially in the master bedroom. The master bedroom is the furthest room from my home office where I was running my TP-Link Archer D7 (AC1750) Dual-Band Wireless router.

After spending some time playing around trying to get better signal, I purchased the TP-Link AC750 Wi-Fi Range Extender and plugged it in in various positions between the master bedroom and the home office.

I eventually settled on the one location where the Range Extender was reporting maximum signal which was around 7m or 22ft from my master bedroom where I have a Samsung 75″ TV, Apple TV, Nintendo Switch, an iPad and two phones, one iPhone 8 and one Samsung Galaxy S9.

Performance was still inconsistent and I ultimately placed the TP-Link router right in the middle of the apartment which I would say helped a little bit, but ultimately did not solve the problem.

Note: My Sonos wireless speakers are not supported when using Range Extenders which is a real design flaw on Sonos’ part and a pain for customers. Ultimately I’m less than impressed with Sonos so I’ve got their Sound Bar and two wireless speakers and a sub sitting around doing nothing.

One of the many reasons for the Wi-Fi performance issues is likely to be the all to common scenario these days of being surrounded by a ton of Access Points. The below is what I see on my Macbook  when looking for networks, so in my case, Interference is likely a significant factor.

WiFiNoise

 

But long story short, I continued to get dropouts and inconsistent speeds so I bit the bullet and purchased the Google Wi-fi 3 pack (shown below).

20180626_160148.jpg

First impressions?

It’s nice and small, and uses USB-C for power so the cord is also small. You can see the device below beside my oversized Nutanix coffee mug for scale.

20180626_162629.jpg

It’s not a modem, so you’re stuck having multiple devices which is a bit annoying but not the end of the world.

Initial setup was a breeze, step by step instructions after downloading the Google Wifi app, the first device was detected and then verified by scanning a QV code on the base of the device which was cool but also very easy and saved manually entering numbers which saves time and avoids fat-fingering errors.

Now onto the exciting part, getting the “mesh” network setup and tested.

Once you run through the wizard, the app shows you a review of your network including the Wi-Fi name, Password and the Wi-fi points you have and their configuration, in my case, 1 “Primary” and two “Mesh” Wi-Fi points as shown below.

MeshSummary

The app has a cool “Network Check” functionality in the shortcuts menu (shown below).

Screenshot_20180626-164508_Google Wifi.jpg

The network check allows you to test the Internet speed, the connection quality between the access points “mesh” and the one I have found quite useful is the Test Wi-fi to all wireless devices currently connected to the network.

You can run each test individually or start all three as shown below.

Screenshot_20180626-164658_Google Wifi.jpg

Testing the internet speed is a quick and easy way to see how fast your connection is and saves downloading and using another app on your phone which is handy.

Below is how the test results are displayed, and for Australian internet, this is a pretty good result although it would be considered poor in many parts of the world.

Screenshot_20180626-154804_Google Wifi.jpg

Next up we have the “Test Mesh” option which is pretty important so kudos to Google for ensuring this was part of the app as it will avoid not technical people having to bug their I.T friends for help. At this stage I can hear all the I.T professionals all around the world rejoice!

Screenshot_20180626-154811_Google Wifi.jpg

The “Mesh test” is pretty quick and gives you a clear result as shown below.

Screenshot_20180626-154002_Google Wifi.jpg

This was my first “Mesh test” and while the result is not bad, I relocated the Wi-Fi points as it suggested and re-ran the test.

Screenshot_20180626-154845_Google Wifi.jpg

As we can see the result is now “Great” with full green bars which I have to admit I was very happy to see considering how annoying Wi-Fi had been over the past few months.

Next up, the Wi-Fi test for all connected devices. Prior to running the test I went around the apartment and turned on the three TVs, 2 Apple TVs, iPad, Samsung Galaxy Tablet, I also made sure all phones were on Wi-Fi as well as my laptop. 12 Devices in all.

As the test is running it appears to confirm if a device is Idle or not, and then proceeds to drive traffic to it. A couple of things I really like is that it clearly displays what device/s are connected to what Wi-fi point and the speed it was able to achieve.

WifiDevicesTest

One completed the app gives you a summary of the number of devices tested and their network performance as shown below.

12DevicesTested

Back to the main screen of the app, we can see a summary of the network telling us the access point is online and has 12 devices connected as confirms the internet is online.

NetworkSummary

If we go into “Devices” we can also see per device upload and download statistics so it’s quick and easy to identify if one or more devices are hogging the bandwidth.

DevicesRealTimeBandwidth

While I haven’t used the next to features, the app does allow you to setup a Guest Wi-fi network which is handy if you want to keep your devices isolated from guests and/or not give out your password because it matches your internet banking one.. haha!

Screenshot_20180626-161535_Google Wifi.jpg

Google also allows you to “pause” the internet for specific devices, such as your teenage child/ren and pause it on a set schedule if you choose which I think is a good addition for a home network.

Screenshot_20180626-161540_Google Wifi.jpg

Performance when streaming multiple Ultra HD 4k shows on Netflix?

Moving on from the ease of setup and cool app functionality, let’s test how the network performs with 3 TVs streaming Ultra HD 4k (Netflix), my Samsung Tablet streaming YouTube Premium (4k HD) and my laptop streaming HD video (UFC Fight Pass).

Streaming4KHDon3TVsPlusLaptopandTablet

Above we can see some of the per device stats and I am pleased to report I am yet to observe any of the dropouts or buffering which were common on the previous setup.

Summary:

If you have a large house or apartment, and you’re having trouble with Wi-Fi consistency and dropouts, I would recommend the Google Wi-Fi solution for several reasons.

  • Price? $389 AUD or approx $287USD based on the Exchange rate at the time of writing.

Price wise, I think it’s pretty reasonable. If you consider it’s 3 Wi-Fi points, that’s $129 AUD each which isn’t “cheap” but it’s also not expensive. Comparable high end consumer grade Wireless routers are in the $200-300 range.

Leading onto my next point, Because the Google Wi-Fi is scalable, and therefore somewhat future proofed, I believe the price is justified.

  • It’s a scalable Wi-Fi solution 

You can start with one Wi-Fi point and scale out from there. This is important so you don’t need to buy 3 up front, just start with one (or two in a large house) and scale as required after performing Mesh and Device Wi-Fi testing to see how the Mesh is performing.

  • Setup is easy and the app helps you optimise the position of the Wi-Fi points

This is really cool, especially for non-technical people who may not understand how Wireless access points work and the best place to position them etc. It’s easy to run a few tests and re-position, re-test and in my case, get to a scenario where I have “Great” signal/connectivity between all 3 Wi-Fi points.

  • The Google Wi-Fi app has lots of useful features for everyday use

The ability to quickly troubleshoot if required using device, mesh and internet speed testing is great, again especially for non tech savvy folk.

  • Wi-Fi Range/Performance

The difference in Wi-Fi range and performance in my apartment is night and day compared to my previous setup even with the Wi-Fi Range Extender. Performance is now consistent despite the fact I am in a building with a lot of Wi-Fi access points within strong/medium range of the Google Wi-Fi mesh.

Rating:

As for a rating, I’m giving the Google Wi-Fi solution a 9 out of 10.

Nutanix Scalability – Part 5 – Scaling Storage Performance for Physical Machines

Part 3 and Part 4 has taught us that Nutanix provides excellent scalability for Virtual Machines and provides ABS and Volume Group Load Balancer (VG LB) for niche workloads which may require more performance than a single node can provide.

Now that we’ve learned how to scale a Virtual machines performance, let’s see how the same rules apply to physical servers.

So you’ve got your physical server and a Nutanix cluster, now what?

As Part 3 and Part 4 explained, more virtual disks increase the storage performance for virtual machine, the same is true for physical servers using ABS.

Virtual disks will be presented to the physical server via iSCSI (ABS), for optimal performance you should have at least one virtual disk per node in your cluster. The reason for this is each vDisk is managed by a stargate (Nutanix IO engine) instance which runs in every Controller VM (CVM).

If you have a four node cluster, you need to use at least four virtual disks to utilise the four node cluster optimally. For an eight node cluster, eight or more virtual disks is required to ensure all CVMs (stargate instances) can actively provide a boost in performance.

The following tweet shows how the pathing increased from four on the four node cluster and when an additional fours node were added the pathing dynamically changed to use all eight nodes.

Therefore when using ABS for physical workloads, especially those high end database servers, I recommend using a minimum of 8 vDisks however if your cluster size is greater than 8, match the number of vDisks with the cluster size as your starting point.

If you have an 8 node cluster, you could for example use 32 vDisks and these will spread evenly across the nodes, resulting in four per stargate instance which is perfectly fine.

Using more vDisks than your current cluster size also means when additional nodes are added, ABS can dynamically load balance the vDisks across the new and existing nodes to automatically scale your performance.

Let’s cover the same MS Exchange and MS SQL examples covered for Virtual Machines in Parts 3 and 4 but now specifically for physical servers using ABS.

Let’s say we have an MS Exchange server with 20 databases, the performance requirements for each database is typically in the range of hundred of IOPS, in which case I would recommend one virtual disk (e.g.: VMDK) per database and another for the logs.

In the case of a large MS SQL server which may require tens or hundreds of thousands of IOPS to a single database, I recommend using multiple vDisks per database which involves Splitting SQL datafiles across multiple VMDKs to optimise VM physical server performance.

Sound familiar? The above two paragraphs are literally a copy/paste from Part 3 because the exact same rules apply to physical servers and virtual machines. Simple right!

Still need more performance?

Again, the exact same rules apply to physical servers with ABS as they do to virtual machines. In no particular order, as we’ve learned from Part 3 & 4:

  • Increase the vCPU of the Nutanix Controller VM (CVM)
  • Increase the vRAM of the Nutanix Controller VM (CVM)
  • Add storage only nodes

Can’t get much easier than that!

Summary:

From Parts 3, 4 and 5 we have learned that Nutanix provides the ability to scale the performance of individual servers, be it physical or virtual using the same simple strategies of adding virtual disks, storage only nodes or Controller VM (CVM) resources and how doing so increases performance to meet virtually (pun intended) any performance requirements.

Is there any reason you couldn’t confidently say Nutanix is doing 3 tier better than the SAN vendors? I’d love to hear if you have any corner cases.

Back to the Scalability, Resiliency and Performance Index.