Avatar of Marka Mekapse
Marka MekapseFlag for United States of America

asked on 

Slow performance on Windows 2016 Server

Recently migrated SQL database from 2008 to 2016 (SQL 2008 to SQL 2014); the issue appears to be on the Operating System as i have run several tests that prove this.  I run a simple script that runs a for loop counting from 1 to 16000 to emulate a rudimentary write to disk. When i run this script on a 2016 server it takes almost 6 minutes to complete where as it is instantaneous on a windows 2008 server.  

The purpose of the test was to prove that there is additional overhead on a Server 2016 box versus the 2008.

1.      2008 server
      a.      On the <host> network
            i.      Result = instant
      b.      Off the <host> network
            i.      Result = instant

2.      2012 server
      a.      On the <host> network
            i.      Result = 35 seconds
      b.      Off the <host> network
            i.      Result = Test 1 - 15 seconds (SSD) ;
            ii.      Result = Test 2 - 29 Seconds

3.      2016 server
      a.      On the <host> network
            i.      Result = 5 minutes
      b.      Off the <host> network
            i.      Result = 6 minutes

We know it is not the disk or the amount of memory and CPU
Is there anything i can do to the windows server 2016 box to increase its performance and remove the "overhead"???

Server OS is Server 2016 - 4 vCPU w 2 Cores & 50 GB Ram
Virtualization - Vmware 5.5 U2
SQL server 2014

here is my script that i have been testing with
#Powershell Script#
#
$file = "C:\testlog.txt"
    
Remove-Item –path $file

$d = Get-Date -Format G

Write-Output $d >> $file



for($i=1 
    $i -le 16000 
    $i++){
    
       Write-Output $i >> $file
    
    }

$d = Get-Date -Format G

Write-Output $d >> $file
#End

Open in new window

DatabasesWindows OSWindows Server 2016SQL

Avatar of undefined
Last Comment
Adam Brown
ASKER CERTIFIED SOLUTION
Avatar of Adam Brown
Adam Brown
Flag of United States of America image

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of Marka Mekapse
Marka Mekapse
Flag of United States of America image

ASKER

Thank you!  that put a lot of questions to rest

Thank You
Avatar of Adam Brown
Adam Brown
Flag of United States of America image

I also found a different script that performs an IO benchmark (Original is here but it is buggy as crap, so I fixed some bugs and attached the debugged version)

This is a more realistic drive IO test that does things at a more fundamental level. If you run this script against both systems, you should see much more realistic speeds and that they're very close (unless you have significantly different Disk architecture).

The difference we're seeing with using the >> operation is likely due to increased complexity and more features in Powershell on 2016 than other version. I don't know exactly what the cause is, but it is a matter of how we're interacting with the files.
disktest.ps1
Windows OS
Windows OS

This topic area includes legacy versions of Windows prior to Windows 2000: Windows 3/3.1, Windows 95 and Windows 98, plus any other Windows-related versions including Windows Mobile.

129K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo