Running Critical Application Workloads on Microsoft Azure Virtual Machines
Total Page:16
File Type:pdf, Size:1020Kb
Running Critical Application Workloads on Microsoft Azure Virtual Machines Silvano Coriani, Principal Program Manager, Microsoft AzureCAT Paolo Salvatori, Principal Program Manager, Microsoft AzureCAT December 10, 2014 Executive summary Many organizations want to port an application designed to run in a traditional data center to Microsoft Azure Virtual Machines (VMs). This scenario is one of the most popular we encounter on the Azure Customer Advisory Team (AzureCAT). Yet some critical application workloads may experience performance issues when moved as-is from custom, high-performance hardware configurations to general-purpose environments where energy and cost management play an important role in the overall economic model. Fortunately, a new generation of hardware components is gradually being introducedi into our public cloud offerings. Called the D-Series, it offers several key performance advantages over the earlier A-Series VMs. This article describes critical performance improvements we developed while working with four organizations on their projects. We highlight the performance differences between Azure A-Series and the latest D-Series VMs and offer suggestions for improving application performance: Case 1: How persistent disk latency can directly impact application response times. Case 2: How limited throughput from persistent disks can impact application performance when SQL Server tempdb use is significant. Case 3: How SSD-based storage in the application tier can speed temporary file processing. Case 4: How to reduce compile and startup time for a large ASP.NET web application by moving %temp% folder on temporary drive in a D-Series VM. Running Critical Application Workloads on Microsoft Azure Virtual Machines Contents Overview of D-Series benefits for critical workloads ...........................................................................................................................3 Comparing IO performance ...................................................................................................................................................................3 Case studies: Critical application workloads on Azure VMs ..............................................................................................................5 Case 1: How persistent disk latency can directly impact application response times .....................................................5 Using BPE on SSD drives with D-Series to speed up access to data pages in a larger pool ..................................5 Improving performance using BPEs .............................................................................................................................................9 Case 1 summary ................................................................................................................................................................................ 11 Case 2: How limited throughput from persistent disks can impact application performance when SQL Server tempdb use is significant ........................................................................................................................................................ 11 Local storage with D-Series VMs ................................................................................................................................................ 13 Case 2 summary ................................................................................................................................................................................ 15 Case 3: How SSD-based storage in the application tier can speed temporary file processing................................. 15 Case 4: How to reduce compile and startup time for a large ASP.NET web application by moving the %temp% folder on a temporary drive in a D-Series VM ......................................................................................................... 16 ASP.NET precompilation and website performance ........................................................................................................... 17 Performance after moving the temporary directory .......................................................................................................... 18 Performance for dynamic compilation .................................................................................................................................... 19 Summary ............................................................................................................................................................................................................ 21 Information in this document, including URL and other Internet website references, is subject to change without notice. Unless otherwise noted, the example companies, organizations, products, domain names, email addresses, logos, people, places, and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email address, logo, person, place, or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation. Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property. © 2014 Microsoft Corporation. All rights reserved. Microsoft, MS-DOS, Windows, Windows NT, Windows Server, and the other product names listed on the trademarks page of the Microsoft website are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. All other trademarks are property of their respective owners. ii Running Critical Application Workloads on Microsoft Azure Virtual Machines Overview of D-Series benefits for critical workloads Microsoft recently announced support for a new series of VM sizes for Azure VMs and Web/Worker Roles called the D-Series. Thanks to the hardware characteristics of the underlying host systems, D-Series VMs help increase performance when running critical applications. In particular, applications can take advantage of the following two key features, which do not require specific application changes: Local storage (temporary) based on solid-state drives (SSDs) Higher number of attached data disks (up to 32 for D14 VMs) The D-Series provides great performance for workloads that require low latency and high throughput access to storage. With the earlier VM series, local storage was based on traditional hard disk drive (HDD) technologies and subject to highly variable performance. The best practice was to store performance-sensitive assets on attached data disks. The D-Series changes that. Comparing IO performance To give you a quick example of the difference in executing the same IO operation on a SQL Server workload, compare Figure 1 to Figure 2. Placing the tempdb file on local storage on a D13 VM gave approximately 4.5 times the throughput at a fraction of previous latency compared to an attached data disk on an A7 VM. Figure 1 64k IO block write performance on Azure data disk (E:) Figure 2 64k IO block write performance on local SSD drive (D:) D-Series offers clear improvements for the data tier. For example, you can move Microsoft SQL Server tempdb or Buffer Pool Extensions (BPE) files to the D: drive for workloads that require a better performing IO subsystem. Other examples include data technologies such as MongoDB or Cassandra that can take advantage of nonpersistent (although replicated) high- performance storage. Another D-Series advantage is the ability to attach up to 32 Azure data disks to a single instance to reach a maximum of 32 terabytes (TB) of disk space. In addition, those disks can now be striped into a single volume, achieving better throughput and bandwidth for the storage subsystem. The earlier A-Series VMs had a limit of 16 attached disks. For details about performance characteristics, see Performance Guidance for SQL Server in Azure Virtual Machines.ii In addition to the performance tests we ran on the earlier A-Series VMs, we conducted the same set of tests based on the SQLIO Disk Subsystem Benchmark Tooliii using the new D-Series. 3 Running Critical Application Workloads on Microsoft Azure Virtual Machines The results were interesting, as the following table shows. Random I/O Sequential I/O (8 KB pages) (64 KB extents) Reads Writes Reads Writes IOPS 10,500 15,000 2,500 7,700 Bandwidth 82 MB/second 117 MB/second 160 MB/second 480 MB/second NOTE Because Azure Infrastructure Services is a multi-tenant environment, performance results may vary. These results are an indication of what can be achieved but are not a guarantee. We suggest you repeat these tests and measurements based on your specific workload. It’s important to remember that single data disks are limited to 500 input/output operations per second (IOPS) or 60 MB/second, yet D14 VMs with 32 attached disks can provide up to 85 percent more write