Accelerating Microsoft SQL Server 2014 Using Buffer Pool Extension and SanDisk SSDs



Similar documents
SanDisk SSD Boot Storm Testing for Virtual Desktop Infrastructure (VDI)

Accelerating Cassandra Workloads using SanDisk Solid State Drives

Unexpected Power Loss Protection

Accelerating Big Data: Using SanDisk SSDs for MongoDB Workloads

Accelerating Big Data: Using SanDisk SSDs for Apache HBase Workloads

SanDisk and Atlantis Computing Inc. Partner for Software-Defined Storage Solutions

Accelerating Server Storage Performance on Lenovo ThinkServer

Accelerate MySQL Open Source Databases with SanDisk Non-Volatile Memory File System (NVMFS) and Fusion iomemory SX300 PCIe Application Accelerators

Best Practices for Optimizing SQL Server Database Performance with the LSI WarpDrive Acceleration Card

Increasing Hadoop Performance with SanDisk Solid State Drives (SSDs)

ACCELERATE SQL SERVER 2014 WITH BUFFER POOL EXTENSION ON LSI NYTRO WARPDRIVE

Improving Microsoft Exchange Performance Using SanDisk Solid State Drives (SSDs)

Optimizing SQL Server Storage Performance with the PowerEdge R720

MS Exchange Server Acceleration

Improve Business Productivity and User Experience with a SanDisk Powered SQL Server 2014 In-Memory OLTP Database

Accomplish Optimal I/O Performance on SAS 9.3 with

High Performance VDI using SanDisk SSDs, VMware s Horizon View and Virtual SAN A Deployment and Technical Considerations Guide

Fusion iomemory iodrive PCIe Application Accelerator Performance Testing

Data Center Storage Solutions

Accelerate Oracle Backup Using SanDisk Solid State Drives (SSDs)

Intel RAID SSD Cache Controller RCS25ZB040

Intel RAID Controllers

Accelerating Enterprise Applications and Reducing TCO with SanDisk ZetaScale Software

Best Practices for Deploying SSDs in a Microsoft SQL Server 2008 OLTP Environment with Dell EqualLogic PS-Series Arrays

HP and SanDisk Partner for the HP 3PAR StoreServ 7450 All-flash Array

SanDisk s Enterprise-Class SSDs Accelerate ediscovery Access in the Data Center

EMC VFCACHE ACCELERATES ORACLE

Dell InTrust Preparing for Auditing Microsoft SQL Server

An Oracle White Paper November Oracle Real Application Clusters One Node: The Always On Single-Instance Database

The MAX5 Advantage: Clients Benefit running Microsoft SQL Server Data Warehouse (Workloads) on IBM BladeCenter HX5 with IBM MAX5.

EMC Unified Storage for Microsoft SQL Server 2008

Evaluation Report: Accelerating SQL Server Database Performance with the Lenovo Storage S3200 SAN Array

Data Center Solutions

CA Nimsoft Monitor. Probe Guide for Active Directory Server. ad_server v1.4 series

ServeRAID M5000 Series Performance Accelerator Key for IBM System x Product Guide

An Oracle White Paper May Exadata Smart Flash Cache and the Oracle Exadata Database Machine

Website Hosting Agreement

INCREASING EFFICIENCY WITH EASY AND COMPREHENSIVE STORAGE MANAGEMENT

Intel Solid-State Drives Increase Productivity of Product Design and Simulation

Accelerate SQL Server 2014 AlwaysOn Availability Groups with Seagate. Nytro Flash Accelerator Cards

Analysis of VDI Storage Performance During Bootstorm

SQL Server 2014 Optimization with Intel SSDs

Comprehending the Tradeoffs between Deploying Oracle Database on RAID 5 and RAID 10 Storage Configurations. Database Solutions Engineering

All-Flash Storage Solution for SAP HANA:

Using Iometer to Show Acceleration Benefits for VMware vsphere 5.5 with FlashSoft Software 3.7

The Shortcut Guide to Balancing Storage Costs and Performance with Hybrid Storage

Aberdeen AberNAS 110 RAID Recovery Technical Brief

HP ProLiant BL660c Gen9 and Microsoft SQL Server 2014 technical brief

SUN ORACLE EXADATA STORAGE SERVER

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

How To Store Data On An Ocora Nosql Database On A Flash Memory Device On A Microsoft Flash Memory 2 (Iomemory)

Reduce Latency and Increase Application Performance Up to 44x with Adaptec maxcache 3.0 SSD Read and Write Caching Solutions

How To Write On A Flash Memory Flash Memory (Mlc) On A Solid State Drive (Samsung)

Boost Database Performance with the Cisco UCS Storage Accelerator

WITH A FUSION POWERED SQL SERVER 2014 IN-MEMORY OLTP DATABASE

Optimizing SQL Server AlwaysOn Implementations with OCZ s ZD-XL SQL Accelerator

How To Scale Myroster With Flash Memory From Hgst On A Flash Flash Flash Memory On A Slave Server

Maximum performance, minimal risk for data warehousing

Microsoft Dynamics NAV 2013 R2 Sizing Guidelines for On-Premises Single Tenant Deployments

MICROSOFT SOFTWARE LICENSE TERMS MICROSOFT WINDOWS SERVER 2003 AND MICROSOFT WINDOWS SERVER 2003 R2 PRODUCTS

Achieving a High Performance OLTP Database using SQL Server and Dell PowerEdge R720 with Internal PCIe SSD Storage

Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper October 2010

HP reference configuration for entry-level SAS Grid Manager solutions

Best Practices for Installing and Configuring the Hyper-V Role on the LSI CTS2600 Storage System for Windows 2008

DIABLO TECHNOLOGIES MEMORY CHANNEL STORAGE AND VMWARE VIRTUAL SAN : VDI ACCELERATION

Accelerating Microsoft Exchange Servers with I/O Caching

N /150/151/160 RAID Controller. N MegaRAID CacheCade. Feature Overview

Best practices for operational excellence (SharePoint Server 2010)

Accelerating MS SQL Server 2012

SUN STORAGE F5100 FLASH ARRAY

Dell Compellent Storage Center SAN & VMware View 1,000 Desktop Reference Architecture. Dell Compellent Product Specialist Team

The Methodology Behind the Dell SQL Server Advisor Tool

About Recovery Manager for Active

Assessing RAID ADG vs. RAID 5 vs. RAID 1+0

LSI MegaRAID CacheCade Performance Evaluation in a Web Server Environment

Answering the Requirements of Flash-Based SSDs in the Virtualized Data Center

Hardware/Software Specifications for Self-Hosted Systems (Multi-Server)

Leveraging EMC Fully Automated Storage Tiering (FAST) and FAST Cache for SQL Server Enterprise Deployments

Can Flash help you ride the Big Data Wave? Steve Fingerhut Vice President, Marketing Enterprise Storage Solutions Corporation

High Performance SQL Server with Storage Center 6.4 All Flash Array

An Oracle White Paper September Oracle Database Smart Flash Cache

FlashSoft for VMware vsphere VM Density Test

Increase Database Performance by Implementing Cirrus Data Solutions DCS SAN Caching Appliance With the Seagate Nytro Flash Accelerator Card

Data Center Solutions

EMC XtremSF: Delivering Next Generation Storage Performance for SQL Server

Online Transaction Processing in SQL Server 2008

CONSOLIDATING MICROSOFT SQL SERVER OLTP WORKLOADS ON THE EMC XtremIO ALL FLASH ARRAY

Evaluation Report: Supporting Microsoft Exchange on the Lenovo S3200 Hybrid Array

Intel Cloud Builders Guide to Cloud Design and Deployment on Intel Platforms

Dell Virtualization Solution for Microsoft SQL Server 2012 using PowerEdge R820

Amadeus SAS Specialists Prove Fusion iomemory a Superior Analysis Accelerator

Transcription:

WHITE PAPER Accelerating Microsoft SQL Server 2014 Using Buffer Pool Extension and SanDisk SSDs December 2014 951 SanDisk Drive, Milpitas, CA 95035 2014 SanDIsk Corporation. All rights reserved www.sandisk.com

Introduction Microsoft incorporated a new feature in Microsoft SQL Server 2014 that is known as a Buffer Pool Extension (BPE). With this feature enabled, the buffer manager is capable of extending Microsoft SQL Server s usable memory from physical memory onto solid state disk drives (SSDs) for cost-effective increased performance. This expands the available memory, allowing customers to scale-up their databases, as demand for data access grows. Given that SQL Server 2014 is the latest version of the widely installed SQL Server database, this change in Microsoft SQL Server technology will impact IT deployments of SQL Server workloads, even as it impacts the expectations of the business organizations that are leveraging SQL Server database. This document will outline the usage of this BPE feature, as it describes SanDisk s testing of its usage models, alone with describing best practices for BPE s use with SanDisk SSDs. Overview SQL Server 2014 exerts intensive pressure on the file system on which the database, backup, and indexes are stored. During normal operations, the SQL Server database makes use of the buffer manager in order to decrease the amount of database file I/O. By adding the BPE functionality, Microsoft is expanding the buffer pool by moving data onto solid-state disks. In this way, Microsoft has provided a performance increase by using a combination of DRAM and NAND flash memory to provide SQL Server instance with a much larger pool of lukewarm pages in non-volatile random access memory that is backed by the SSD. The word lukewarm means that the data is ready to be transferred more quickly by the SSD than it would be from other types of storage, such as mechanically driven HDDs. Multiple SSDs may be used in the buffer pool extension (BPE). The new structure provides multi-level caching hierarchy with level one (L1) as the DRAM and level two (L2) as a file that is stored on the SSD. The file stored on the SSD can be configured by the administrator to any given size, all the way up to full capacity. Only clean pages are written to the L2 cache, a process that ensures the safety of an organization s data in the event of an unexpected server failure. The buffer pool extension may be enabled or disabled at any time the SQL Server remains operational, and it can scale up to 32 times the value of max_server_memory. Importantly, Microsoft recommends a ratio for the buffer pool extension of 1:16 or less. SQL Server can change its memory requirements dynamically based on available resources. However, it is recommended that the administrator configure a fixed amount of memory, using all available DRAM that is left, when the server is fully loaded and idle. The Buffer Pool Extension file is created to a specified size and subsequently written to in sequential order as data as passed to the server. This data is also randomly read, as needed, by the SQL Server database instead of retrieving the data that is stored on the spinning disks. This increases the performance of the server by up to 30%. 2

Hardware Information IBM x3650 M4 type 7915 Two Intel Xeon CPU E5-2690 v2 3GHz Processors (8 cores) 144GB DDR3 memory Drive bays: one 146GB IBM-ESXS ST9146853SS JBOD operating system Two external enclosures containing: 24 300GB SAS HDDs configured in RAID10 for database and log volume Six 300GB SAS HDDs configured in RAID5 for backup volume SanDisk Optimus SSD in external enclosure used for Buffer Pool Extension Technical Setup Notes To configure the memory options for a SQL Server database, open the SQL Server Management Studio and do the following: 1. Right-click a server and select Properties. 2. Click the Memory node. 3. Under Server Memory Options, enter the amount that you want for Minimum Server Memory and Maximum Server Memory. The following command examples will enable and disabled the buffer pool extension. To enable: ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION ON (FILENAME = Z:\BPECACHE. BPE, SIZE =370 GB) To disable: ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION OFF Note that the file name Z:\BPECACHE.BPE is merely an example taken from our local configuration. This means that you may choose to specify a different drive and file name to suit your needs. Performance Monitoring Once you have the buffer pool extension enabled, you may periodically want to check the performance status in the performance monitor or by using the following commands: SELECT * FROM sys.dm_os_performance_counters WHERE object_name LIKE %Buffer Manager% ORDER BY counter_name These commands can be entered into a script and executed from the power shell using the following command line which will allow you to automate pulling this information as needed to facilitate performance reports that are useful in further tuning your server. In this example the commands were entered into a file named BPEstat.sql and executed as follows: SQLCMD.exe E I.\BPEstat.sql >dumpstats.txt This will create a text file containing the performance counters related to the buffer manager. You may also choose to display the results on screen, but keep in mind that the fields are long and that they will 3

likely wrap on your power-show window. The output file can be quickly cleaned up with further scripting to provide an overview report as shown here from an idle (over 24 hours) test server in Figure 1. Figure 1. Output of SQLCMD.exe E I.\BPEstat.sql >dumpstats.txt It may also be useful to have a look at all of the information stored in the Buffer Pool Extension and this can be achieved using the following commands: SELECT * FROM sys.dm_os_buffer_descriptors; GO Scripting this as above will provide a long report depending upon the size of your Buffer Pool Extension, and as such I have truncated ours to a few lines just to show you what you should be expecting. Figure 2. Output of SELECT * FROM sys.dm_os_buffer_descriptors; GO 4

For a clean and decoded report of what the Buffer Pool Extension contains, use the following script: select db_name(database_id) databasename, file_name(file_id) filename, CASE WHEN page_id = 0 THEN File Header Page m_type 15 WHEN page_id = 1 OR page_id % 8088 = 0 THEN PFS m_type 11 WHEN page_id = 2 OR page_id % 511232 = 0 THEN GAM m_type 8 WHEN page_id = 3 OR (page_id - 1) % 511232 = 0 THEN SGAM m_type 9 WHEN page_id = 6 OR (page_id - 6) % 511232 = 0 THEN DCM m_type 16 WHEN page_id = 7 OR (page_id - 7) % 511232 = 0 THEN BCM m_type 17 WHEN page_id = 9 AND file_id = 1 THEN Boot Page m_type 13 WHEN page_id = 10 AND DB_ID() = 1 THEN config page > sp_configure settings only present in master m_type 14 ELSE Other END page_type, page_level, (select type_desc from sys.allocation_units where sys.allocation_units.allocation_unit_id = sys.dm_os_buffer_descriptors.allocation_unit_id) as allocation_type_desc, page_type, row_count, free_space_in_bytes, cast(free_space_in_bytes as numeric)/1024 as free_space_in_mega_bytes, is_modified, numa_node, read_microsec, is_in_bpool_extension from sys.dm_os_buffer_descriptors; This will provide an extremely detailed and decoded view of the activity involving the Buffer Pool Extension. As you will see when you execute the script, the output of this view is far too detailed to include in this whitepaper. That s why it is best to export this to a text file, or to send it directly to a wide-format line printer for review. The information contained in this report will include databasename, filename, page_type, page_level, allocation_type_desc, page_type, row_count, free_space_in_bytes, free_space_in_mega_bytes, is_ modified, numa_node, read_microsec, is_in_bpool_extension. This report will give you a much clearer picture of your level of activity for the Microsoft SQL Server database. It is recommended that you periodically execute this view as you gather performance information during the setup of your Buffer Pool Extension. 5

As seen in Figure 3, the Performance Monitor provides real-time graphing of any of the counters you choose. Simply select add counter and scroll down the SQLServer:Buffer Manager as shown below. Figure 3. Using Performance Monitor to add counters. It s worth noting that if you add all counters from this selection you re going to end up with a significant amount of information that will be difficult to decipher on the fly. However, it is useful to create a Data Collector Set to record a large sample. Observed Performance Buffer Pool Extension will benefit read-heavy OLTP activity, particularly in servers that have lower amounts of physical memory, whereas OLAP will see little or no increase in performance. It was also found that an increase in the number of solid-state disks (SSDs) did not necessarily increase the performance on our test database, which contained 75,000 customers and a size of approximately 850GB. For deployments using more physical memory and multiple SSDs to store a Buffer Pool Extension file that was the same size as the database, a significant performance increase can be achieved, but it would not be determined to be cost-effective to do so. The following figures will illustrate the performance characteristics that were observed during extensive testing. There is a massive performance increase in the number of page reads per second as seen in Figure 4. The more read-intensive the database is, the greater the benefit will clearly be when the Buffer Pool Extension is enabled and configured appropriately. 6

Figure 4. Page Reads/Sec with Buffer Pool Extension enabled vs. disabled Figure 5. The Percentage of Processor Usage is lower even under the peak of operations with the Buffer Pool Extension enabled. 7

Figure 6. Average Disk I/O time in milliseconds shows significant performance improvements, which will directly translate into better Quality of Service. Figure 7. Transactions per Second (TPS), as observed from Performance Monitor, shows more consistent performance with the Buffer Pool Extension enabled during heavy mixed read/write activity. The sample, shown above, was taken several hours into a TPC-e-like workload (similar to an industrystandard TPC-e benchmark test) during a checkpoint. Checkpoints have a highly mixed workload. The best performance is achieved when the SQL Server database retrieves pages from the buffer, and not the spinning disks. As the limits of the buffer are reached, the data is moved to the disks to create free space for new pages. This generally occurs during a checkpoint operation. In the figure above, the 8

transaction count dips dramatically during this activity. However, there is still a significant transaction account occurring, and a much faster recovery to the normal Quality of Service (QoS) when using the Buffer Pool Extension (BPE). While the Buffer Pool Extension is largely Random Reads in an OLTP type of workload, as the file is being populated, it is being written to up to 75% of the time and up to 99.3% of the writes are sequential writes. SQL 2014 BPE Characterization: I/O Operations Read (9) 26% Write (26) 74% Figure 8. Average disk I/O write time is also lower with the Buffer Pool Extension enabled, because SSDs have a much faster write time compared to spinning disks Figure 9. Average time in milliseconds to achieve a disk write The Lazy Write process, like the checkpoint, pushes pages from the buffer to the physical disks. As logic dictates and as seen in the figure below, the more buffer space you have, the more pages can be stored there. These pages can be subsequently written by the Lazy Write process and this happens at 9

a perceived performance gain to the user. This is another advantage seen when using the Buffer Pool Extension: There is more buffer to store pages that are then written by a background process while the SQL I/O continues to take place in the foreground. Figure 10. Lazy Writes captured over several minutes of sampling The amount of the Buffer Pool Extension that is in use will increase over time. During testing, the amount of Buffer Pool Extension used was observed to be as high as 100%. This will vary, depending on the page lock setting and on the amount of pressure the database is under, as well as the size of the Buffer Pool Extension. As the size of the Buffer Pool Extension in use increases, so the Extension Page Reads/sec increases. This is due to the increasing amount of useful data that is being held in the extension file after writing it to the database. In an effort to reduce file-system pressure, this data is retrieved from the buffer, rather than from the disks themselves. Figure 11. Buffer Pool Extension Page Reads vs Percentage of Buffer Pool Extension in use 10

The result of these improvements is shown in a TPC-E type workload of the type described earlier. The amount of performance increase will vary, depending upon the amount of physical memory that is available, the size of the Buffer Pool Extension, the database and log sizes, and the type of workload that is being executed. Transactions per Second BPE off BPE on 31.9% Increase 0 50 100 150 200 250 300 350 Figure 12. Shows the percentage of performance increase measured in Transactions per Second with Buffer Pool Extension enabled vs. Buffer Pool Extension disabled Conclusion The SQL Server 2014 Buffer Pool Extension (BPE) used with SanDisk Enterprise SSDs provides a costeffective performance increase, particularly when compared to deployments with lower amounts of physical memory. This scalable performance increase is created by leveraging the BPE functionality provided in MS SQL Server 2014. Using BPE requires minimal configuration and deployment time -- and it can be easily expanded to meet future requirements. Importantly for IT customers in the enterprise data center, all of this can be achieved without taking the server that is hosting Microsoft SQL Server offline. This allows users to gain performance improvements by implementing them on-the-fly, while maintaining operational status. This makes the process of expanding memory for SQL Server deployments seamless and invisible to the end-users who are accessing the data. For more on the Microsoft SQL Server 2014 Buffer Pool Extension, refer to: http://msdn.microsoft.com/en-us/library/dn133176.aspx 11

Products, samples and prototypes are subject to update and change for technological and manufacturing purposes. SanDisk Corporation general policy does not recommend the use of its products in life support applications wherein a failure or malfunction of the product may directly threaten life or injury. Without limitation to the foregoing, SanDisk shall not be liable for any loss, injury or damage caused by use of its products in any of the following applications: Special applications such as military related equipment, nuclear reactor control, and aerospace Control devices for automotive vehicles, train, ship and traffic equipment Safety system for disaster prevention and crime prevention Medical-related equipment including medical measurement device Accordingly, in any use of SanDisk products in life support systems or other applications where failure could cause damage, injury or loss of life, the products should only be incorporated in systems designed with appropriate redundancy, fault tolerant or back-up features. Per SanDisk Terms and Conditions of Sale, the user of SanDisk products in life support or other such applications assumes all risk of such use and agrees to indemnify, defend and hold harmless SanDisk Corporation and its affiliates against all damages. Security safeguards, by their nature, are capable of circumvention. SanDisk cannot, and does not, guarantee that data will not be accessed by unauthorized persons, and SanDisk disclaims any warranties to that effect to the fullest extent permitted by law. This document and related material is for information use only and is subject to change without prior notice. SanDisk Corporation assumes no responsibility for any errors that may appear in this document or related material, nor for any damages or claims resulting from the furnishing, performance or use of this document or related material. SanDisk Corporation explicitly disclaims any express and implied warranties and indemnities of any kind that may or could be associated with this document and related material, and any user of this document or related material agrees to such disclaimer as a precondition to receipt and usage hereof. EACH USER OF THIS DOCUMENT EXPRESSLY WAIVES ALL GUARANTIES AND WARRANTIES OF ANY KIND ASSOCIATED WITH THIS DOCUMENT AND/OR RELATED MATERIALS, WHETHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR INFRINGEMENT, TOGETHER WITH ANY LIABILITY OF SANDISK CORPORATION AND ITS AFFILIATES UNDER ANY CONTRACT, NEGLIGENCE, STRICT LIABILITY OR OTHER LEGAL OR EQUITABLE THEORY FOR LOSS OF USE, REVENUE, OR PROFIT OR OTHER INCIDENTAL, PUNITIVE, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES, INCLUDING WITHOUT LIMITATION PHYSICAL INJURY OR DEATH, PROPERTY DAMAGE, LOST DATA, OR COSTS OF PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES. No part of this document may be reproduced, transmitted, transcribed, stored in a retrievable manner or translated into any language or computer language, in any form or by any means, electronic, mechanical, magnetic, optical, chemical, manual or otherwise, without the prior written consent of an officer of SanDisk Corporation. All parts of the SanDisk documentation are protected by copyright law and all rights are reserved. For more information, please visit: www.sandisk.com/enterprise At SanDisk, we re expanding the possibilities of data storage. For more than 25 years, SanDisk s ideas have helped transform the industry, delivering next generation storage solutions for consumers and businesses around the globe. 951 SanDisk Drive Milpitas CA 95035 USA 2014 SanDisk Corporation. All rights reserved. SanDisk is a trademark of SanDisk Corporation, registered in the United States and other countries. Other brand names mentioned herein are for identification purposes only and may be the trademarks of their holder(s). 121914