Warning: Constant WP_TEMP_DIR already defined in /var/www/html/blogs/glenn/wp-config.php on line 94

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/blogs/glenn/wp-config.php:94) in /var/www/html/blogs/glenn/wp-includes/feed-rss2.php on line 8
SQL Server Storage https://www.sqlskills.com/blogs/glenn/category/sql-server-storage/ Semi-random musings about SQL Server performance Sun, 03 May 2020 23:55:45 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 Windows Disk Cleanup https://www.sqlskills.com/blogs/glenn/windows-disk-cleanup/ https://www.sqlskills.com/blogs/glenn/windows-disk-cleanup/#comments Thu, 03 May 2018 22:39:48 +0000 http://3.209.169.194/blogs/glenn/?p=1377 One very useful tool for freeing up disk space is the built-in Disk Cleanup application in Windows. You can start this application by simply typing Disk Cleanup at your Windows Start menu. Once it starts, you will need to pick which drive you want to scan and clean up. In most cases, you will want […]

The post Windows Disk Cleanup appeared first on Glenn Berry.

]]>
One very useful tool for freeing up disk space is the built-in Disk Cleanup application in Windows. You can start this application by simply typing Disk Cleanup at your Windows Start menu. Once it starts, you will need to pick which drive you want to scan and clean up. In most cases, you will want to choose your boot drive, which will be C: for most people.


image

Figure 1: Disk Cleanup: Drive Selection Screen


image

Figure 2: Initial Disk Cleanup Screen


You should always click on the “Clean up system files” button to get a complete picture (and find the larger files that you may be able to delete). After clicking on the button, you’ll have to wait for the scan to complete. If you have a magnetic drive, this might take a while, while if you have an Intel Optane 900P drive, it will be extremely quick!


image

Figure 3: Disk Cleanup after clicking on Cleanup system files

In many cases, you will find an entry for “Previous Windows installation(s)” that may be 25-50GB in size, which is pretty significant when you have a smaller boot drive and are running low on disk space. In Windows 10, you will get those when you install the semi-annual updates such as the recent “Windows 10 April 2018” update.

You just need to be aware that if you let Disk Cleanup delete the previous Windows installations, you won’t be able to go back to a previous version by uninstalling the latest version. The tool will display a special confirmation dialog to make sure you know this.

If you choose to delete everything that the tool offers up, it is not uncommon to get 50-75GB of space back. Again, the disk cleanup process will take quite a while with a magnetic drive.

You can start Disk Cleanup from a command line, as Microsoft explains here.


You can also use the Windows Storage Sense feature to automatically do some of the disk cleanup for on all of your drives.


image

Figure 4: Storage Sense Display


image

Figure 5: Storage Sense Configuration

The post Windows Disk Cleanup appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/windows-disk-cleanup/feed/ 3
Initial CrystalDiskMark Results for Intel Optane 900p https://www.sqlskills.com/blogs/glenn/initial-crystaldiskmark-results-for-intel-optane-900p/ https://www.sqlskills.com/blogs/glenn/initial-crystaldiskmark-results-for-intel-optane-900p/#comments Wed, 08 Nov 2017 21:15:29 +0000 http://3.209.169.194/blogs/glenn/?p=1292 I have been building a new desktop workstation based on an AMD Ryzen Threadripper 1950X processor (which I will be describing in much more detail in a subsequent blog post). I am planning on using one of the brand new 480GB Intel Optane SSD 900p PCIe cards as my boot drive. Initially, I installed Windows […]

The post Initial CrystalDiskMark Results for Intel Optane 900p appeared first on Glenn Berry.

]]>
I have been building a new desktop workstation based on an AMD Ryzen Threadripper 1950X processor (which I will be describing in much more detail in a subsequent blog post). I am planning on using one of the brand new 480GB Intel Optane SSD 900p PCIe cards as my boot drive. Initially, I installed Windows 10 Professional, Version 1709 on a pretty lackluster OEM 256GB Toshiba M.2 NVMe drive that I had lying around. My plan is to clone that drive to the Intel Optane 900p.

I also have a couple of 1TB Samsung 960 PRO M.2 NVMe cards in this machine, so I thought I would run a couple of quick CrystalDiskMark tests on the two drives. One thing to keep in mind is that CrystalDiskMark is not the best synthetic benchmark to use to show off the strengths of the Optane 900p.

Traditional NAND-based SSDs excel at very high queue depths that are not usually encountered outside of synthetic benchmarks (especially for random read performance). Optane 900p SSDs perform extremely well for random reads at low queue depths. This gives you outstanding responsiveness and performance where it is going to be most noticeable in daily usage.

You can see part of this effect in the bottom row of CDM test results for reads, where the Optane 900p is doing about 4.3X more 4K IOPS than the Samsung 960 PRO at a queue depth of 1. A better test for this will be Microsoft DiskSpd, which can also measure the latency during the test run.

Here are some of the primary advantages of the Intel Optane 900p compared to current NAND flash storage.

 

    • High random read and write performance
    • High performance at low queue depths
    • High simultaneous read and write performance
    • High read and write performance at small capacity points
    • High performance maintained as the drive fills with data
    • Higher endurance than current NAND technology

 

image

Figure 1: 1TB Samsung 960 PRO with Samsung NVMe driver

 

image

Figure 2: 480GB Intel Optane 900p with Intel NVMe driver

 

The post Initial CrystalDiskMark Results for Intel Optane 900p appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/initial-crystaldiskmark-results-for-intel-optane-900p/feed/ 6
SQLskills SQL101: Sequential Throughput https://www.sqlskills.com/blogs/glenn/sqlskills-sql101-sequential-throughput/ https://www.sqlskills.com/blogs/glenn/sqlskills-sql101-sequential-throughput/#comments Sun, 30 Apr 2017 23:02:46 +0000 http://3.209.169.194/blogs/glenn/?p=1183 Over the past couple of months, SQLskills has embarked on a new initiative to blog about basic topics, which we’re calling SQL101. We’ll all be blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find […]

The post SQLskills SQL101: Sequential Throughput appeared first on Glenn Berry.

]]>
Over the past couple of months, SQLskills has embarked on a new initiative to blog about basic topics, which we’re calling SQL101. We’ll all be blogging about things that we often see done incorrectly, technologies used the wrong way, or where there are many misunderstandings that lead to serious problems. If you want to find all of our SQLskills SQL101 blog posts, check out SQLskills.com/help/SQL101.

The Importance of Sequential Throughput for SQL Server

A number of very common, important operations that are often executed by SQL Server are potentially performance limited by the sequential throughput of the underlying storage subsystem. These include:

  1. Full database backups and restores
  2. Index creation and maintenance work
  3. Initializing transactional replication snapshots and subscriptions
  4. Initializing AlwaysOn AG replicas
  5. Initializing database mirrors
  6. Initializing log-shipping secondary’s
  7. Running DBCC CHECKDB
  8. Relational data warehouse query workloads
  9. Relational data warehouse ETL operations

Despite this, I often see DBAs having to contend with extremely low sequential performance on their various database servers, to the detriment of their ability to meet their SLAs for things like RPO and RTO (not to mention their sanity). This being the case, what if anything can you do to improve this situation?

One thing you should do is to do some storage subsystem benchmarking with tools like CrystalDiskMark and Microsoft DiskSpd, to find out what the potential performance of each logical drive is on the underlying machine where your SQL Server instance is running.

You can also run some simple queries and tests from SQL Server itself to see what level of sequential performance you are actually getting from your storage subsystem (which is much harder for storage administrators, SAN administrators, and storage vendors to dispute). One example is running a full database backup to a NUL device, to see the ultimate sequential read performance from where your data and log files are located. Another example is running a SELECT query with an index hint to force the query to do a clustered index scan or table scan from a relatively large table.

Note: You should do these kinds of tests during a maintenance window or ideally, before a new instance of SQL Server goes into Production. Otherwise, your testing could negatively affect your Production environment or the other Production activity could skew your test results.

Beyond that, here are some general steps you can take to improve overall storage system performance:

  1. Make sure you have power management configured correctly at all levels (BIOS power management, hypervisor power policy, and Windows Power Plan)
  2. Make sure you have Windows Instant File Initialization enabled
  3. Make sure you are not under memory pressure (to reduce stress on your storage subsystem)
  4. Make sure you are using the latest version of SQL Server
  5. Make sure you have installed the latest Service Pack and Cumulative Update for your version of SQL Server
  6. Favor Enterprise Edition or Standard Edition (because it has better I/O performance)
  7. Use compression to reduce your I/O requirements (backup compression, data compression, and columnstore indexes
  8. Make sure your indexes are tuned appropriately (not too many and not too few)
  9. Keep your index fragmentation under control

You can watch my Pluralsight course SQL Server: Improving Storage Subsystem Performance to get more details about this subject. You can also read my article on SQLPerformance.com, Sequential Throughput Speeds and Feeds to get some more technical details about sequential throughput.

The post SQLskills SQL101: Sequential Throughput appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/sqlskills-sql101-sequential-throughput/feed/ 2
Hewlett Packard Enterprise Persistent Memory https://www.sqlskills.com/blogs/glenn/hewlett-packard-enterprise-persistent-memory/ https://www.sqlskills.com/blogs/glenn/hewlett-packard-enterprise-persistent-memory/#respond Thu, 31 Mar 2016 15:51:53 +0000 http://3.209.169.194/blogs/glenn/?p=1076 Hewlett Packard Enterprise (HPE) has announced a new product that uses non-volatile DIMMs (NVDIMMs), which they are calling Persistent Memory. This short video gives a high level view of how it works, via a whiteboard time lapse. The initial product is an 8GB module which has 8GB of DRAM backed by 8GB of flash for […]

The post Hewlett Packard Enterprise Persistent Memory appeared first on Glenn Berry.

]]>
Hewlett Packard Enterprise (HPE) has announced a new product that uses non-volatile DIMMs (NVDIMMs), which they are calling Persistent Memory. This short video gives a high level view of how it works, via a whiteboard time lapse. The initial product is an 8GB module which has 8GB of DRAM backed by 8GB of flash for $899.00, which is pretty pricey!

 

Figure 1: HPE 8GB NVDIMM

HPE has a blog post with some more details about their SQL Server testing using NVDIMMs.

They compared the OLTP database performance of a SQL Server database running on an HP DL360 Gen9 server in two scenarios. The details they provide are frustratingly incomplete. They don’t specify what version of SQL Server, what operating system, what type of SSDs, etc.

First Scenario:

  • Data file(s) on six 400GB SSDs
  • Log file on two mirrored SSDs (so two SSDs in RAID 1)
  • 970K transactions/minute
  • 373 µs log write latency

Second Scenario:

  • Data file(s) on six 400GB SSDs
  • Log file on two mirrored SSDs, with two mirrored NVDIMMs as a write-back cache in front of the SSDs
  • 1.08M transactions/minute
  • 181 µs log write latency

 

DB OLTP.jpg

Figure 2: HPE SQL Server Testing with NVDIMMs

 

These results are actually not as impressive as I would expect on the surface, so I would be very curious to more details behind their testing. For example, was their workload previously limited by how fast it could write to the transaction log? After they started using NVDIMMs, did they run into a different bottleneck, such as CPU utilization?

I also want to know more details how this is implemented, with existing server models and existing operating systems. It looks like there is a driver that excludes the DIMM slots that are being used by NVDIMMs from being visible to the operating system as conventional memory, and instead makes them available as a write-back cache layer for an existing storage device. It looks like you can combine multiple NVDIMMs into a single, mirrored cache layer in front of a single storage device. This seems pretty similar in concept to the hardware memory cache in a RAID controller.

This might be pretty useful if you have a workload that is actually seeing bottlenecks writing to a transaction log (or perhaps you have multiple databases with log files on the same logical drive), and you don’t want to use the Delayed Durability feature in SQL Server 2014 and newer or the In-memory OLTP features in SQL Server 2014 Enterprise Edition and newer.

The post Hewlett Packard Enterprise Persistent Memory appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/hewlett-packard-enterprise-persistent-memory/feed/ 0
Upgrading a SATA III SSD https://www.sqlskills.com/blogs/glenn/upgrading-a-sata-iii-ssd/ https://www.sqlskills.com/blogs/glenn/upgrading-a-sata-iii-ssd/#comments Fri, 11 Dec 2015 16:52:39 +0000 http://3.209.169.194/blogs/glenn/?p=1020 Back in April of 2012, I built an Intel Z77 workstation that used a 512GB OCZ Vertex 4 SATA III SSD, plugged into a SATA III port for it’s Windows 7 boot drive. Back then, this was arguably the fastest consumer SSD available, with an MSRP of $699.99. This drive has soldiered on for over […]

The post Upgrading a SATA III SSD appeared first on Glenn Berry.

]]>
Back in April of 2012, I built an Intel Z77 workstation that used a 512GB OCZ Vertex 4 SATA III SSD, plugged into a SATA III port for it’s Windows 7 boot drive. Back then, this was arguably the fastest consumer SSD available, with an MSRP of $699.99. This drive has soldiered on for over three and a half years, with no problems. It was getting a little low on disk space though, so I decided it was time for an upgrade to a larger, faster SSD.

I ended up getting a 1TB Samsung 850 EVO SATA III SSD, for $329.99 at my local Micro Center. The 850 EVO line has been around for about a year now, and prices have come down quite a bit since they were introduced. It is pretty amazing to get double the size (and better performance) at less than half the price, compared to what was available back in 2012.

Before I cloned the existing drive, I ran CrystalDiskMark 5.0.2 on it with a 4GB test file. The results are shown in Figure 1.

 

image

Figure 1: 512GB OCZ Vertex 4 SATA III SSD Benchmark results

 

I used the free Samsung Data Migration software (which only works with Samsung SSDs as the cloning target) to clone the old OCZ drive to the new Samsung drive. I used an Apricorn SATA Wire 3.0 plugged into a front-panel USB 3.0 port to connect the new Samsung drive for the cloning process. I could have shut down the system, and plugged the new Samsung drive into a native SATA III port to get better copy performance, but I was too lazy to do that… As it was, I was seeing about 125MB/sec during the cloning copy process, which was fast enough. If you are cloning/upgrading a drive in a laptop, you pretty much have to use a USB port to do it.

After the cloning process was complete, I shut down the system and swapped the drives. Windows 7 booted up without any problems, although it wanted a reboot once it realized that the drive had been changed. I also noticed that Windows 7 had lost it’s recollection of ever checking for Windows and Microsoft Updates, but asking it to check for updates fixed that issue.

Next, I fired up the Samsung Magician 4.9 software, which informed me that the new Samsung 850 EVO needed a firmware update. Before I ran the firmware update, I ran CrystalDiskMark 5.0.2 with the same settings as the previous test. The results are shown in Figure 2.

 

image

Figure 2: 1TB Samsung 850 EVO SATA III SSD Benchmark results (before firmware update)

 

After the drive firmware update, Windows 7 booted up without any problems, although it wanted another reboot once it realized that the drive firmware had been updated. I ran CrystalDiskMark 5.0.2 once again with the same settings as the previous test. The results are shown in Figure 3.

 

image

Figure 3: 1TB Samsung 850 EVO SATA III SSD Benchmark results (after firmware update)

As you can see, the benchmark results improved after the firmware update. I have not found any release notes for the firmware update (and it is not even listed on their web page), but at least the latest version of Samsung Magician knew about it.

 

image

Figure 4: Samsung Magician 4.9

I have not enabled RAPID Mode on the drive yet, but I know from prior experience that it can have a nice positive effect on performance. It does make it harder to analyze your storage performance when SQL Server is running on your workstation though. All in all, a pretty easy, trouble-free installation.

The post Upgrading a SATA III SSD appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/upgrading-a-sata-iii-ssd/feed/ 2
Some Quick Comparative CrystalDiskMark Results https://www.sqlskills.com/blogs/glenn/some-quick-comparative-crystaldiskmark-results/ https://www.sqlskills.com/blogs/glenn/some-quick-comparative-crystaldiskmark-results/#comments Sat, 07 Nov 2015 00:14:32 +0000 http://3.209.169.194/blogs/glenn/?p=1009 (New: we’ve published a range of SQL Server interview candidate screening assessments with our partner Kandio, so you can avoid hiring an ‘expert’ who ends up causing problems. Check them out here.) A few weeks ago, I built a new Intel Skylake desktop system that I am going to start using as my primary workstation […]

The post Some Quick Comparative CrystalDiskMark Results appeared first on Glenn Berry.

]]>
(New: we’ve published a range of SQL Server interview candidate screening assessments with our partner Kandio, so you can avoid hiring an ‘expert’ who ends up causing problems. Check them out here.)

A few weeks ago, I built a new Intel Skylake desktop system that I am going to start using as my primary workstation in the near future. I have some details about this system as described in Building a Z170 Desktop System with a Core i7-6700K Skylake Processor. By design, this system has several different types of storage devices, so I can take advantage of the extra PCIe bandwidth in the latest Intel Z170 Express chipset, and do some comparative testing.

The latest addition to the storage family is a brand new 512GB Samsung 950 PRO M.2 PCIe NVMe card that just arrived from Amazon yesterday afternoon. As of now, here is the available storage in this system:

  1. (2) 512GB Samsung 850 PRO SATA III SSDs in RAID 1 (using the chipset RAID controller)
  2. (1) 512GB Samsung 950 PRO M.2 PCIe 3.0 NVMe card in an Ultra M.2 PCIe 3.0 x4 slot
  3. (1) 400GB Intel 750 PCIe NVMe card in a PCIe 3.0 x16 slot
  4. (1) 6TB Western Digital SATA III hard drive in a SATA III port

Since I have an NVidia GeForce GTX 960 video card in one of the PCI 3.0 x16 slots, both that slot and the PCI 3.0 x16 slot that the Intel 750 is using will go down to x8 (which means 8 lanes instead of 16 lanes). The Intel Z170 Express chipset supports 26 PCIe 3.0 lanes, so you need to think about what devices you are trying to use. This system has Windows 10 Professional installed, so it has native NVMe drivers available from Microsoft.

I did some quick and dirty I/O testing today with CrystalDiskMark 5.02. The two NVMe devices are both using the native Microsoft NVMe drivers from Windows 10. As you can see below, both the Samsung 950 PRO and the Intel 750 PCIe NVMe cards have tremendous sequential and random I/O performance!

Device Sequential Reads Sequential Writes Random Reads Random Writes
512GB Samsung 950 Pro 2595 MB/s 1526 MB/s 171755.6 IOPS 104801.3 IOPS
400GB Intel 750 2369 MB/s 1081 MB/s 177938.0 IOPS 151642.1 IOPS
512GB Samsung 850 Pro 1104 MB/s 532 MB/s 100420.4 IOPS 60765.1 IOPS
6TB WD Red HD 176 MB/s 170 MB/s 386.7 IOPS 448.2 IOPS

Table 1: Sequential and Random Results (Queue Depth 32, 1 Thread)

Keep in mind that the two Samsung 850 PRO SSDs are using hardware RAID1, which seems to help their sequential read performance, and that the two NVMe devices are both using the native Microsoft NVMe drivers, which may be hurting their performance somewhat.

image

Figure 1: 512GB Samsung 950 Pro M.2 PCIe NVMe Results

image

Figure 2: 400GB Intel 750 PCIe NVMe Results

image

Figure 3: 512GB Samsung 850 Pro SATA 3 (RAID 1) Results

image

Figure 4: 6TB Western Digital Red Results

The post Some Quick Comparative CrystalDiskMark Results appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/some-quick-comparative-crystaldiskmark-results/feed/ 6
Building a Z170 Desktop System with a Core i7-6700K Skylake Processor https://www.sqlskills.com/blogs/glenn/building-a-z170-desktop-system-with-a-core-i7-6700k-skylake-processor/ https://www.sqlskills.com/blogs/glenn/building-a-z170-desktop-system-with-a-core-i7-6700k-skylake-processor/#comments Tue, 06 Oct 2015 01:25:58 +0000 http://3.209.169.194/blogs/glenn/?p=998 Back when I started at SQLskills in May of 2012, I built myself a pretty nice Z77 chipset system with an Intel Core i7-3770K Ivy Bridge processor and 32GB of RAM, running Windows 7 Enterprise Edition. This system uses an ASUS P8Z77-V Deluxe motherboard, with one 512GB OCZ Vertex 4 SSD. It was about the […]

The post Building a Z170 Desktop System with a Core i7-6700K Skylake Processor appeared first on Glenn Berry.

]]>
Back when I started at SQLskills in May of 2012, I built myself a pretty nice Z77 chipset system with an Intel Core i7-3770K Ivy Bridge processor and 32GB of RAM, running Windows 7 Enterprise Edition. This system uses an ASUS P8Z77-V Deluxe motherboard, with one 512GB OCZ Vertex 4 SSD. It was about the fastest mainstream system that I could build 3.5 years ago. It is mildly overclocked, to 4.3GHz, and it has been extremely reliable over the years as I have used it for much of my daily work.

Some basic information about this system is shown in Figures 1, 2 and 3 below:

image

Figure 1: CPU-Z CPU Tab for Z77 Core i7-3770K System

 

image

Figure 2: CPU-Z Bench Tab for Z77 Core i7-3770K System

 

image

Figure 3: Geekbench 3.3.2 Scores for Z77 Core i7-3770K System

 

Even though this system is still pretty fast, I felt like I could do better in some areas, with a current generation Z170 chipset system with an Intel Core i7-6700K Skylake processor and 64GB of RAM. Last Saturday, I built this new system, and got Windows 10 Professional installed.

Here is the parts list for this system:

  1. Fractal Design Define R5 case
  2. Seasonic SS-660XP2 power supply
  3. ASRock Z170 Extreme 7+ motherboard (Micro Center’s web page has it mislabeled as an Extreme 7)
  4. Intel Core i7-6700K processor
  5. Scythe Kotetsu CPU cooler
  6. (2) 32GB Corsair Vengeance LPX 2666MHz DDR4 RAM kits
  7. (2) 512 GB Samsung 850 Pro SATA III SSDs in hardware RAID 1
  8. 400GB Intel 750 PCIe NVMe storage card

Initially, I’ll be using the Intel integrated graphics, but I may end up using an EVGA Geforce GTX 960 video card. But then again, I may not, since I want to reduce my power usage and have more PCIe lanes available for storage use.

I spent a couple of hours putting this system together, doing a pretty careful job with the cable management. When I had it ready to turn on for the first time (without putting the case sides on, which is always bad luck), I was rewarded with the CPU and case fans spinning, but no visible POST or video output at all. Luckily, the ASRock motherboard has a built-in LED diagnostic display, which was showing a code 55 error. Looking this up in the motherboard manual, I discovered that this was a memory-related issue. I removed two of the 16GB DDR4 RAM modules, and powered it back up, and this time I got a POST.

Going into the UEFI BIOS setup, I discovered that my ASRock Z170 Extreme 7+ motherboard had the initial 1.4 BIOS, while the latest version was 1.7. One of the fixes listed for version 1.7 is “improve DRAM compatibility”. I was able to flash the BIOS to 1.7 using the Instant Flash utility in the UEFI BIOS setup, and then I was able to use all four 16GB DDR4 RAM modules.

Next I created a RAID 1 array with my two 512GB Samsung 850 Pro SSDs, using the Intel RAID controller that is built-in to the Z170 chipset. I made sure the Intel 750 was not installed yet, and then I used an old USB optical drive to install Windows 10 Professional on to the RAID 1 array. Windows 10 Professional installed default drivers for the dual Intel 1GB NICs, so I was able to get on the internet and download and install all of the latest Windows 10 64-bit drivers for this motherboard from the ASRock web site. Then I used Windows and Microsoft Update to get Windows 10 fully patched.

Windows 10 recognized the Intel 750 using the default Microsoft NVMe drivers. I will benchmark using those drivers, and then compare the results to the native Intel NVMe drivers. So far, I have benchmarked the new system using CPU-Z and Geekbench 3.3.2. The basic information and scores for the new system is shown in Figures 4. 5, and 6 below:

clip_image002

Figure 4: CPU-Z CPU Tab for Z170 Core i7-6700K System

 

clip_image002[5]

Figure 5: CPU-Z Bench Tab for Z170 Core i7-6700K System

 

clip_image002[7]

Figure 6: Geekbench 3.3.2 Scores for Z170 Core i7-6700K System

 

Keep in mind, that beyond enabling XMP 2.1, I have not overclocked the new system yet. The new system is about 10-20% faster than the old system, from a CPU and memory perspective, depending on which benchmark you choose. In some respects, this is disappointing, but the real advantage of the new system is having twice the RAM, and a lot more potential I/O bandwidth with the Z170 Express chipset. With Windows 10 Professional, I have Hyper-V support (and the Core i7-6700K supports VT-x and VT-d), so I can run more VMs simultaneously. I also have two Intel 1GB NICS, which I plan to use together with NIC teaming in Windows 10.

I plan on getting at least one of the upcoming 512GB Samsung 950 Pro M.2 NVMe cards (and this motherboard has three Ultra M.2 slots) when they are released in October/November, so I will have plenty of disk space and I/O performance for the VMs.

System CPU-Z Single Thread CPU-Z Multi-Thread Geekbench Single-Core
Core i7-3770K 1573 5920 3680
Core i7-6700K 1711 6815 4404

The post Building a Z170 Desktop System with a Core i7-6700K Skylake Processor appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/building-a-z170-desktop-system-with-a-core-i7-6700k-skylake-processor/feed/ 1
Building a Desktop Workstation for SQL Server Development and Testing https://www.sqlskills.com/blogs/glenn/building-a-desktop-workstation-for-sql-server-development-and-testing/ https://www.sqlskills.com/blogs/glenn/building-a-desktop-workstation-for-sql-server-development-and-testing/#comments Tue, 29 Sep 2015 16:10:37 +0000 http://3.209.169.194/blogs/glenn/?p=985 Back in March of 2014, I wrote a fairly long blog post called Building a Workstation for SQL Server 2014 Development and Testing, which still generates quite a bit of hits and e-mail. Since it is about eighteen months later, I thought it was about time to update this information to cover the latest available […]

The post Building a Desktop Workstation for SQL Server Development and Testing appeared first on Glenn Berry.

]]>
Back in March of 2014, I wrote a fairly long blog post called Building a Workstation for SQL Server 2014 Development and Testing, which still generates quite a bit of hits and e-mail. Since it is about eighteen months later, I thought it was about time to update this information to cover the latest available hardware choices.

With the current selection of high-performance and very affordable desktop computer components, it is not very difficult to assemble an extremely high performance workstation for SQL Server development and testing at a very reasonable cost. Depending on how much performance you want and what your available budget is, you can take several different routes to get this accomplished.

At the high end of the spectrum, you can get a Socket 2011 v3 motherboard, with an Intel Xeon E5-2600 v3 product family “Haswell-EP” processor or an Intel Core i7-5800 product family “Haswell-E” processor and up to 64GB or 128GB of ECC DDR4 RAM, and multiple PCIe flash storage cards, and spend a pretty significant amount of money, depending on your exact hardware and storage choices. 

In the middle, you can build a very powerful system using the new 14nm Intel Core i7-6700K “Skylake” processor that uses a new LGA 1151 motherboard and DDR4 memory. Skylake processors require a newer Intel chipset, and the first Skylake motherboards that are available are using the high-end Z170 Express chipset. Aside from DDR4 support, the most interesting improvement to Z170 Express is an increased number of PCIe lanes. The Z170 chipset supports a total of 20 PCI-Express lanes at the PCH in conjunction with the CPU’s 16 PCIe 3.0 lanes for a platform total of 36. Last generation’s Z97 Express chipset coupled with Devil’s Canyon or Haswell CPUs only allowed for 24 PCIe 2.0 lanes. All of these from the PCH were only PCIe 2.0 compliant. In contrast, all of the Z170’s PCIe lanes are Generation 3.0 compliant while retaining backwards compatibility with PCIe 2.0 and 1.0 specifications. This means you have a lot more I/O bandwidth available for storage.

At the lower end of the spectrum, you can put together a system with a single Intel Core i7-4790K “Devil’s Canyon” processor, 32GB of non-ECC DDR3 RAM, and a single high-performance, 6Gbps consumer-class SSD, and still have a system with more processing power than many existing Production database servers. A system that uses this older generation architecture will still be quite powerful, but will be more economical than ever, since the Skylake family has been released.

If you are going to build a desktop system from scratch, you need eight basic components:

  1. Computer Case
  2. Power Supply
  3. Motherboard
  4. Processor
  5. Memory (RAM)
  6. Storage (magnetic or flash)
  7. Discrete Video Card (optional, not really necessary in most cases)
  8. Optical Drive (optional, becoming much less important)

This assumes that you have a keyboard, mouse, and one or more monitors. I’ll discuss each one of these components, with some tips for what you should consider as you are choosing them.

Computer Case

You will need some sort of case to hold your components (unless you want to leave them running on a test bench). Personally, I like mid-range, mid-tower cases from companies like Fractal Design, Antec, Cooler Master, and Corsair. Mid-Tower cases give you plenty of room for common ATX motherboards, and they usually have at least four to six internal 3.5” or 2.5” drive bays. Newer designs have special 2.5” mounting points for SSDs and front or top mounted USB 3.0 or USB 3.1 ports. Better cases are much easier to work with, and they often have much better cable management features (so you can route most of your cables in a separate space under the motherboard). This not only looks much nicer, but it gives you better airflow inside the case. You probably don’t really need a fancy, gaming-oriented case with LED lighting and a huge number of case fans. A decent case in the $50-100 range will usually have good quality components (such as quieter, larger diameter case fans), along with good thermal and noise management features. The Fractal Design Core 3300 is a good example of an affordable, good quality case for about $80.00. You can spend a little less on a case, or quite a bit more. Just make sure that the case will allow you to install the size of motherboard that you will be using.

Power Supply

You should invest in a decent quality power supply as opposed to the cheapest one you can find. You don’t want to go overboard and get a 1200 watt behemoth gaming-oriented power supply (unless you are building an extreme gaming rig with multiple, high-end video cards that really need that much power). For the kind of system that I am recommending, you can use a high quality 400-500 watt 80 PLUS modular power supply and have plenty of reserve power. Modular power supplies have detachable cables for things like SATA power, MOLEX power, PCI-E power, etc., so you only need to plug in and use the cables you actually need.

Power supplies are much less efficient when they are only supplying a very small portion of their rated output. Getting a 1200 watt power supply because you think it must be “better” than a good 500 watt power supply is actually a waste of money, both for the initial cost of your power supply and the electrical power costs over the life of your machine. The components that I am recommending will end up drawing about 30-40 watts at idle.  I really like Seasonic power supplies, especially their fan-less, modular models such as the SS400FL and the newer SS-520FL2. They are both completely silent and highly efficient, 80+ Platinum rated power supplies. Another less expensive alternative that I like are Corsair power supplies, such as the Corsair CX500M modular power supply.

Motherboard

The motherboard is where all of your other components are plugged into, so it is a critical component. You need to consider which processor you are going to be using, since there are several different processor socket types available, which will dictate your motherboard choices. The most common type in late 2015 is the LGA 1150, which will work with the 4th generation, 22nm Intel Core processors (Haswell and Devil’s Canyon). You also need to consider the form-factor of your motherboard. You can choose from ATX, micro-ATX, and mini-ITX, which refers to the size of the motherboard. You also need to think about the chipset used on your motherboard.

The Intel Z97 Express chipset is their best chipset for an LGA 1150 motherboard. As you are looking at motherboards, you should be looking at the low-to-mid range Z97-based motherboards instead of the high-end, gaming motherboards. The high-end gaming Z97 motherboards can be quite expensive, and they will probably have features (such as support for three discrete video cards), that you don’t really need for a SQL Server workstation or test server. Instead, make sure you choose a model that has four DDR3 RAM slots, and at least six 6Gbps SATA ports. You also might want a model that has one or more M.2 slots. A good example Z97 motherboard is the ASRock Z97 Extreme6/3.1.

A newer, slightly more expensive choice is a 6th generation, 14nm Intel Core processor (Skylake), combined with a Z170 chipset. Right now, there are only two Skylake processor choices that are widely available, the Core i7-6700K, and the Core i5-6600K. Skylake processors use the the new Socket LGA 1151, and DDR4 RAM, so you will need a new motherboard and new memory if you are upgrading from an older platform. Unlike older Intel processors, these new Skylake processors do not come with a stock cooling fan bundled with the processor, so you will have to buy some type of CPU cooler. A good example Z170 motherboard is the ASRock Z170 Extreme7 +. The reason I really like this motherboard is because of all of the I/O capacity and flexibility that it offers, with three PCIe 3.1 x16 slots, and three Ultra M.2 PCIe 3 x4 slots.

If you are going to run Windows Server 2012 R2 for your host operating system, you should be aware that most Intel embedded NICs that you will find on many desktop motherboards will refuse let you install the NIC drivers with a Microsoft server operating system. In that case, you can buy an inexpensive, non-Intel ($15-20) PCI-E Gigabit Ethernet card that work just fine. If you are running Windows 8.1 or Windows 10 for your host operating system, you won’t have this issue.

Processor

You can choose a modern, Intel desktop processor that may well have much more raw processing power than many older two or four-socket production database servers. This is not an exaggeration, although it depends on the age of your production database server. You are far more likely to run into memory or I/O bottlenecks as you push a modern Intel desktop system than processor bottlenecks. For most people, an Intel Core i7-4790K processor will be your best choice (especially if you live near a Micro Center). It is a quad-core processor with hyper-threading (so you have eight logical cores) that runs at a base clock speed of 4.0GHz, with the ability to TurboBoost to 4.4GHz. It runs very cool, and is easy to overclock even with the stock Intel processor cooler. It is not really necessary to overclock this processor, to get good performance. You can have a maximum of 32GB of DDR3 RAM with this processor, and it supports both VT-x and VT-d for better virtualization performance.

Most 4th generation Intel Core processors (Haswell) have pretty good integrated graphics built-in to the CPU package. The better models have HD4600 graphics which give you more than enough performance for normal desktop usage and even some moderate gaming. There was a pretty big improvement in the integrated graphics performance between the Ivy Bridge and Haswell processors, so it is much more feasible to simply use the integrated graphics instead of buying a separate, discrete video card. This will save you money and reduce your electrical power usage.

One big variable in the cost of using this processor is whether you live near a Micro Center computer store or not. Micro Center has 25 locations in the Continental United States, and they sell a few specific models of Intel processors at prices that no other company seems willing to match. They have been doing this for years, and it is their regular practice (so it is not a special sale or promotion). The only catch is that those processors are only available for in-store pickup (so no mail-order).

For example, Micro Center is currently selling the Intel Core i7-4790K processor for $279.99, while NewEgg is selling the exact same Intel Core i7-4790K processor for $339.99. Micro Center quite often does promotions where they will reduce the price of a motherboard by $40-$50 if you buy the motherboard with a qualifying processor. Their prices on motherboards, cases, memory, hard drives and SSDs are also quite competitive.

A newer Intel Core i7-6700K processor will cost $349.99 at Micro Center, and it will cost $369.99 at NewEgg.

Memory

If you select an LGA 1150, Z97 Express motherboard with four RAM slots, you can have up to 32GB of non-ECC DDR3 RAM in your system. You can get two 8GB sticks of 240-pin PC3 12800 DDR3 RAM for about $89.00, so it would be about $178.00 to get 32GB of RAM. This should be plenty for most development and testing workloads (including running multiple VMs), but if you really need more, you could make the jump to the LGA 2011 v3 platform that uses the more expensive six and eight-core Intel Haswell-E processors where you can eventually have up to 128GB of DDR4 RAM.

DDR4 RAM is a little bit more expensive than DDR3 RAM, but the price differential is not really that large. For example, you can get two 8GB sticks of 288-pin PC4 17000 DDR4 RAM for about $105.00, so it would be about $210.00 to get 32GB of RAM. Eventually, you will be able to get 16GB DDR4 DIMMs, so you will be able to have 64GB of RAM in a Z170 Express system.

One thing you will want to do as you are configuring your system is to go into your BIOS setup and turn on Extreme Memory Profile (XMP), so that you will get better memory performance. This can occasionally cause stability problems, depending on the type of memory that you have, but if that happens, you can always turn it back off.

Storage

You will need some type of storage for your system. Traditional magnetic hard drive prices continue to decline, so that you can get a high-performance 3TB, 7200rpm SATA III drive with 64MB of cache, such as a 3TB Western Digital WD Black WD3003FZEX for $149.99. For just a little more money, you can also get a much smaller, but much much higher performance 6Gbps SATA III consumer-grade SSD, such as a 500GB Samsung 850 EVO SSD for $179.99. Solid State Drive prices have come down a lot (as performance has increased dramatically) over the past couple of years, but they still cost about six times as much as conventional magnetic storage, per gigabyte.

I really encourage you to use a modern, fast 6Gbps SATA III SSD for your boot drive since it will have an extremely dramatic, positive effect on how fast your system performs and “feels” in everyday use. It will boot faster, shut down faster, programs will load nearly instantly, and it will take much less time to install new software and Windows Updates. It is similar to the difference between a dial-up modem and a fast broadband connection. Once you start using a fast SSD, you will never want to go back to a conventional magnetic hard drive.

You want to make sure your fast 6Gbps SSD is plugged into a 6Gbps SATA III port (not one of the 3Gbps SATA II ports). Otherwise, your fast SSD will be limited to about 275MB/sec for sequential reads and writes (which is still about twice as fast as a very fast traditional 7200rpm SATA hard drive). You also want to avoid the smallest capacity 64GB and 128GB SSD models, since their performance is much usually much lower than the larger capacity models from the same manufacturer and product line. This is because the smaller capacity models have fewer NAND chips and fewer data channels. Ideally, you would want a 250GB (or larger) 6Gbps SATA III SSD plugged into each SATA III port that you have available on your motherboard. This would give you lots of options for how to lay out your SQL Server data files, log files, tempdb files and SQL Server backup files.

Of course, you may not want to spend that much money, so it is still common to have one or two SSDs, along with one or more conventional magnetic drives in a desktop system. One of the luxuries with a desktop system compared to any laptop is that you have a very high number of internal drive bays and up to ten or twelve SATA III ports on the motherboard. You can also buy inexpensive PCI-E SATA III cards to add even more SATA III ports to a desktop system.

If you want even more storage performance, you may want to consider a PCIe NVMe flash storage card such as the Intel 750 Series, which comes in 400GB, 800GB, and 1.2TB capacities. These cost slightly less than $1.00/GB, and their performance is about 4-5 times better than SATA III SSDs for reads and about 2-3 times better for writes. Another alternative that will be available in October is the new Samsung 950 Pro Series of M.2 PCIe NMVe flash devices, which will initially come in 256GB and 512GB capacities. If you have one or more M.2 slots that support PCIe 3.0 x4, then you will also get tremendous performance from these.

Discrete Video Card

There are some situations where the Intel integrated graphics might not be enough for your needs. An example would be if you were doing things such as AutoCad that really place a lot of stress on your graphics performance. Another example is if you wanted to run multiple, large monitors on your system. Most motherboards that support the Intel integrated graphics only have two or three video connectors (such as a VGA connector, DVI connector and an HDMI connector), so that would limit how many monitors you could connect to the system. Depending on your processor choice, you may not have integrated graphics at all.

If you do decide to go with one or more discrete video cards, you can get quite decent performance for about $100-150.00 each (but you can spend much, much more). You may also need a power supply with multiple, supplemental PCI-E power connectors, and you might even need a higher capacity power supply.

Optical Drive

Even though they are becoming much less useful over time, it can still be useful to have a DVD-Recorder, optical drive in a desktop system. It just makes it easier to install the operating system and other software (although you can certainly install from a USB drive). It is also becoming much more common to simply mount an .iso file for doing something like installing SQL Server 2014. You can get bare, OEM optical DVD drives for about $15-20. Personally, I like to use an external USB optical drive to install the operating system, so I don’t have to have an internal optical drive taking up space and power in the system.

So, after all of this, how much money am I trying to convince you to spend?  Well, here is one example:

  1. Case                   $80.00
  2. Power Supply       $50.00
  3. Motherboard      $190.00          (ASRock Z97 Extreme 6 USB 3.1 from Micro Center)
  4. Processor          $270.00          (Intel Core i7-4790K from Micro Center)
  5. RAM                  $178.00          (32GB of DDR3 RAM)
  6. Storage             $330.00          (One 500GB Samsung 850 EVO SSD and one 3TB 7200rpm drive)
  7. Optical drive         $20.00

Total System         $1118.00

This system would have much better performance than a laptop that would cost several times as much. It would also have better performance than many production SQL Server database servers. It would be pretty easy to slice over $400.00-$500.00 off of this system cost by choosing some different components, and still have a very capable system.

Of course, a desktop system like this does not have redundant, server-class components or ECC RAM, so you would not want to use them in a production situation. They would probably be much better (in terms of performance) than some ancient, out of warranty, retired server for development and testing.

The post Building a Desktop Workstation for SQL Server Development and Testing appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/building-a-desktop-workstation-for-sql-server-development-and-testing/feed/ 3
Samsung 950 PRO M.2 PCIe NVMe SSD https://www.sqlskills.com/blogs/glenn/samsung-950-pro-m-2-pcie-nvme-ssd/ https://www.sqlskills.com/blogs/glenn/samsung-950-pro-m-2-pcie-nvme-ssd/#comments Tue, 22 Sep 2015 15:33:36 +0000 http://3.209.169.194/blogs/glenn/?p=982 Samsung has announced their new 950 PRO M.2 PCIe NVMe solid state drive, which is potentially great news if you are considering building a new system (or have a new enough system that has M.2 slots that support PCIe 3.0 x4 speeds) According to the press release: The 950 PRO will be available in 512 […]

The post Samsung 950 PRO M.2 PCIe NVMe SSD appeared first on Glenn Berry.

]]>
Samsung has announced their new 950 PRO M.2 PCIe NVMe solid state drive, which is potentially great news if you are considering building a new system (or have a new enough system that has M.2 slots that support PCIe 3.0 x4 speeds)

According to the press release:

The 950 PRO will be available in 512 gigabyte (GB) and 256GB storage capacities. The 512GB version delivers sequential read/write speeds of up to 2,500 MB/s and 1,500 MB/s. Random read performance is up to 300,000 IOPS, with write speeds of up to 110,000 IOPS.

Both capacities come with a 5-year limited warranty up to 200 terabytes written (TBW) for the 256GB and 400TBW for the 512GB. The 950 PRO will be available beginning in October 2015, with an MSRP of $199.99 for the 256GB capacity and $349.99 for the 512GB capacity.

TheSSDReview has a good story about this drive here.

In case you are wondering, NVMe or NVM Express (Non-Volatile Memory Express) is an optimized, high performance, scalable host controller interface with a streamlined register interface and command set designed for enterprise and client systems that use PCIe SSDs. It typically offers much better performance than the legacy AHCI (Advanced Host Controller Interface) interface used by some PCIe solid state drives (and all SATA solid state drives). You can read more about NVM Express here.

I am getting close to buying the parts for a new Z170-based, Core i7-6700K desktop system to replace my current Z77-based Core i7-3770K system that I built in early 2012. I am going to be using an ASRock Z170 Extreme7+ motherboard for this new system, mainly because all of the I/O capacity that it offers, including four PCIe 3.1 x16 slots, and three “Ultra” M.2 PCIe 3.0 x4 slots. It also has ten SATA 3 ports, three SATA Express ports, and USB 3.1 Type A and C support.

Even with the new Z170 chipset, you won’t be able to use all of this I/O capacity, since you only have 26 high-speed I/O lanes available, but you should be able to put three Samsung 950 PRO M.2 drives into the three available slots on this motherboard.

 

 

Figure 1: ASRock Z170 Extreme7+ Motherboard

If you want to be able to use one of these very fast M.2 solid state drives, you will need to make sure that your system has an M.2 slot that is also long enough (80mm) to accommodate the card. You will also want your M.2 slot to support PCIe 3.0 x4 (meaning four lanes), which is sometimes called “Ultra M.2”.

The post Samsung 950 PRO M.2 PCIe NVMe SSD appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/samsung-950-pro-m-2-pcie-nvme-ssd/feed/ 2
Analyzing and Improving I/O Subsystem Performance Precon in Denver https://www.sqlskills.com/blogs/glenn/analyzing-and-improving-io-subsystem-performance-precon-in-denver/ https://www.sqlskills.com/blogs/glenn/analyzing-and-improving-io-subsystem-performance-precon-in-denver/#comments Tue, 08 Sep 2015 22:05:01 +0000 http://3.209.169.194/blogs/glenn/?p=980 On September 18, 2015, I will be presenting Analyzing and Improving I/O Subsystem Performance as an all day pre-conference session the day before SQLSaturday #441 in Denver. This session should be a lot of fun and will be very useful for SQL Server database administrators and other I.T. professionals who work with SQL Server. Here […]

The post Analyzing and Improving I/O Subsystem Performance Precon in Denver appeared first on Glenn Berry.

]]>
On September 18, 2015, I will be presenting Analyzing and Improving I/O Subsystem Performance as an all day pre-conference session the day before SQLSaturday #441 in Denver. This session should be a lot of fun and will be very useful for SQL Server database administrators and other I.T. professionals who work with SQL Server. Here is the abstract:

SQL Server is often I/O bound, but proving it to your storage or SAN administrator can be challenging! You will learn about the different types of storage that are available for SQL Server, and how to decide what type of storage to use for different SQL Server workload and file types. You will also learn useful tips and techniques for configuring your storage for the best performance and reliability for your workload. There will be extensive coverage on how to use disk benchmark tools like CrystalDiskMark 4.0, SQLIO and Microsoft DiskSpd, so you can confidently understand the performance that your I/O subsystem can deliver. We’ll also cover methods to effectively measure and monitor your storage performance from an OS and SQL Server perspective so that you will have valuable information and evidence available the next time you have to discuss I/O performance with your storage administrator. You will also learn a number of valuable OS and SQL Server configuration settings that will help you get the best I/O performance possible from your storage subsystem.

I hope to see you there and at SQLSaturday #441 the next day!

The post Analyzing and Improving I/O Subsystem Performance Precon in Denver appeared first on Glenn Berry.

]]>
https://www.sqlskills.com/blogs/glenn/analyzing-and-improving-io-subsystem-performance-precon-in-denver/feed/ 1