Download Red Hat Enterprise Linux 6 vs. Microsoft Windows Server 2012 and more Exercises English in PDF only on Docsity!
APRIL 2013
A PRINCIPLED TECHNOLOGIES TEST REPORT
Commissioned by Red Hat, Inc.
COMPARING FILE SYSTEM I/O PERFORMANCE:
RED HAT ENTERPRISE LINUX 6 VS. MICROSOFT WINDOWS SERVER 2012
When choosing an operating system platform for your servers, you should know
what I/O performance to expect from the operating system and file systems you select.
In the Principled Technologies labs, using the IOzone file system benchmark, we
compared the I/O performance of two operating systems and file system pairs, Red Hat
Enterprise Linux 6 with ext4 and XFS file systems, and Microsoft Windows Server 2012
with NTFS and ReFS file systems. Our testing compared out-of-the-box configurations
for each operating system, as well as tuned configurations optimized for better
performance, to demonstrate how a few simple adjustments can elevate I/O
performance of a file system.
We found that file systems available with Red Hat Enterprise Linux 6 delivered
better I/O performance than those shipped with Windows Server 2012, in both out-of-
the-box and optimized configurations. With I/O performance playing such a critical role
in most business applications, selecting the right file system and operating system
combination is critical to help you achieve your hardware’s maximum potential.
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 2
About file system and platform configurations
While you can use IOzone to gauge disk performance, we concentrated on the
file system performance of two operating systems (OSs): Red Hat Enterprise Linux 6,
where we examined the ext4 and XFS file systems, and Microsoft Windows Server 2012
Datacenter Edition, where we examined NTFS and ReFS file systems. We deployed each
OS in turn on the same hardware configuration, keeping server, processors, RAM, disks,
RAID-groups, and other components constant. We tested the file system performance
of each OS out-of-the-box and in optimized configurations that included OS and server
tuning parameters.
The out-of-box configurations used the server’s default BIOS settings for CPU,
RAM, and system power profile (see below for more), with standard OS installation
parameters. Specifically, we used the default BIOS configuration for the Dell™
PowerEdge™ R720xd, which includes the default system performance profile, called
“Performance per Watt Optimized (DAPC).” This configuration setting enables the Intel
processor’s Turbo Boost, C States, and C1E settings, and sets the memory frequency to
its maximum. The server manages CPU power.
We performed the optimized tests with the server’s BIOS set to an OS-
controlled system power profile. We adjusted the OS configuration to remove
unnecessary processes, enabled the OS’s automatic CPU or power controls, and
adjusted file system parameters. For the optimized configurations, we chose the Dell
Performance Per Watt Optimized (OS) system profile for our system’s power setting. In
the optimized configurations, the Turbo Boost settings, etc. are the same as the default
profile, but with the OS managing CPU power. For the complete list of optimizations we
used for both operating systems, see the Optimizing operating system configurations
section of Appendix B.
BETTER DISK PERFORMANCE FOR RED HAT ENTERPRISE LINUX FILE
SYSTEMS
For our testing of the four file systems, we used the IOzone Filesystem
Benchmark. IOzone tests a system’s file I/O performance by simulating file-access
patterns that may be used in different enterprise applications, such as database or Web
applications, and by using operating system-specific heuristics for reading and writing
files, such as direct and asynchronous I/O, as well as operating system-specific
optimizations at the file system level. We used the IOzone benchmark to test 13
synthetic file access patterns for a range of file sizes.
For each test, we first used out-of-box (default) settings, and then tested the
exact same server and disk hardware with a set of tuning parameters. We ran the 13
tests as a set, and ran each set (of 13) three times for each file system and each data-
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 4
As Figure 2 shows, using the in-cache method, both file systems we tested on
Red Hat Enterprise Linux 6 delivered better performance than the file systems on
Windows Server 2012, in both optimized and out-of-box configurations. For example,
the ext4 file system on Red Hat Enterprise Linux 6 in out-of-box configuration delivered
65.2 percent better performance than the NTFS file system on Windows Server 2012,
and the XFS file system on Red Hat Enterprise Linux 6 delivered 31.9 percent better
performance than the ReFS file system on Windows Server 2012. In addition, the
optimized ext4 file system on Red Hat Enterprise Linux 6 delivered 38.4 percent better
performance than the optimized NTFS file system on Microsoft Windows Server 2012.
Finally, the optimized XFS file system on Red Hat Enterprise Linux delivered 48.4 percent
better performance than the ReFS file system on Windows Server 2012.
Figure 2 : Comparison of the I/O performance in KB/s for the four file systems using the in-cache method. The throughput represents the geometric average of 13 IOzone tests. Higher throughput is better.
Out-of-box Optimized
Average performance (KB/s)
Comparison of file system performance - In cache
Red Hat Enterprise Linux 6 ext
Microsoft Windows Server 2012 NTFS
Red Hat Enterprise Linux 6 XFS
Microsoft Windows Server 2012 ReFS
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 5
As Figure 3 shows, using the out-of-cache method, both file systems we tested
on Red Hat Enterprise Linux 6 delivered better performance than the file systems on
Windows Server 2012 in both out-of-box and optimized configurations. The default ext
file system on Red Hat Enterprise Linux 6 delivered 7.3 percent better performance than
the default NTFS file system on Microsoft Windows Server 2012, and the default XFS file
system on Red Hat Enterprise Linux 6 delivered 5.5 percent better system performance
than the default ReFS file system on Windows Server 2012. In optimized configurations,
the ext4 file system on Red Hat Enterprise Linux delivered 14.5 percent better
performance than the NTFS file system on Microsoft Windows Server 2012, and the
optimized XFS file system on Red Hat Enterprise Linux 6 delivered 14.0 percent better
performance than the optimized ReFS file system on Windows Server 2012.
Figure 3 : Comparison of the I/O performance in KB/s for the four file systems using the out-of-cache method. The throughput represents the geometric average of 13 IOzone tests. Higher throughput is better.
Out-of-box Optimized
Average performance (KB/s)
Comparison of file system performance - Out of cache
Red Hat Enterprise Linux 6 ext
Microsoft Windows Server 2012 NTFS
Red Hat Enterprise Linux 6 XFS
Microsoft Windows Server 2012 ReFS
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 7
WHAT WE TESTED
About IOzone
The IOzone benchmark tests a system’s file I/O performance by simulating file-
access patterns that may be used in different enterprise applications, and by using
operating-system specific heuristics for reading and writing files, such as direct and
asynchronous I/O, as well as operating-system specific optimizations at the file system
level. The read and write operations IOzone tests include:
Write data to a new file
Overwrite an existing file
Write data to random locations of a file
Write and immediately rewrite data to a fixed section of the file
Write data to a new file using buffered I/O system routines
Overwrite an existing file using buffered I/O system routines
Read an entire file
Read an entire, recently read file
Read the entire file starting from the file’s end and proceeding to the beginning
Read data from sections separated by a fixed amount (stride)
Read data from random locations of a file
Read an entire file using buffered I/O system routines
Read an entire, recently read file using buffered I/O
For more information about IOzone, visit http://www.iozone.org.
We performed these 13 tests on files of varying sizes ranging from 1 MB to 2 GB.
We also varied the record length (or size of the applications read-write buffer) from 8 KB
to 1 MB in order to mimic real-world application workloads of varying sizes and kinds
and to better gauge the OS’s file system performance under more realistic
circumstances.
About Red Hat Enterprise Linux 6
Designed to deliver performance and scalability for both small and large servers,
and with documented scalability up to 4,096 CPUs and 64 terabytes of RAM, Red Hat
Enterprise Linux 6 is Red Hat’s flagship server operating system. It provides native
support for the majority of the latest and most important enterprise data center
technologies, such as 40Gb Ethernet networking and KVM virtualization as well as
InfiniBand®, FCoE, and iSCSI protocols. According to Red Hat, the operating system
minimizes downtime, increases availability, and protects data due to reliability,
serviceability (RAS), and scalability. Red Hat includes open source applications as part of
its Linux offering. For more information about Red Hat Enterprise Linux 6, see
http://www.redhat.com/f/pdf/rhel/RHEL6_datasheet.pdf.
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 8
IN CONCLUSION
Understanding how your choice of operating system affects file system I/O
performance can be extremely valuable as you plan your infrastructure. Using the
IOzone Filesystem Benchmark in our tests, we found I/O performance of file systems on
Red Hat Enterprise Linux 6 was better than the file systems available on Microsoft
Windows Server 2012, with both out-of-the-box and optimized configurations. Using
default native file systems, ext4 and NTFS, we found that Red Hat Enterprise Linux 6
outperformed Windows Server 2012 by as much as 65.2 percent out-of-the-box, and as
much as 33.4 percent using optimized configurations. Using more advanced native file
systems, XFS and ReFS, we found that Red Hat Enterprise Linux 6 outperformed
Windows Server 2012 by as much as 31.9 percent out-of-the-box, and as much as 48.
percent using optimized configurations.
Many applications are ultimately constrained by the I/O subsystems on which
they reside, making it crucial to choose the best combination of file system and
operating system to achieve peak I/O performance. As our testing demonstrates, with
the file system performance that Red Hat Enterprise Linux 6 can deliver, you are less
likely to see I/O bottlenecks and can potentially accelerate I/O performance in your
datacenter.
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 10
System Dell PowerEdge R720xd
Number of RAM module(s) 8
Chip organization Double-sided
Rank Dual
Operating system
Name Red Hat Enterprise Linux 6.
File system ext4 or XFS (see text)
Kernel
2.6.32-358.0.1.el6.x86_64, or
2.6.32-358.1.1.el6.x86_64 (see text )
Language English
Operating system
Name Windows Server 2012 Datacenter Edition
Build number 9200
File system NTFS or ReFS (see text)
Kernel ACPI x64-based PC
Language English
Graphics
Vendor and model number Matrox® G200eR
Graphics memory (MB) 16
Driver Matrox Graphics, Inc 2.3.3.0 (8/19/2011)
RAID controller
Vendor and model number Dell PERC H710P Mini
Firmware version 21.1.0-
Cache size 1 GB
RAID configuration
OS #1 boot volume: RAID 1 configuration of two disks
(Hard drive type #3)
OS #2 boot volume: RAID 1 configuration of two disks
(Hard drive type #2)
IOzone test volume: RAID 0 configuration of 17 disks (Hard
drive type #1)
OS swap volume: RAID 0 configuration of three disks (Hard
drive type #1)
Hard drives type
Vendor and model number Dell MBF2600RC
Number of drives 20
Size (GB) 600
Buffer size (MB) 16
RPM 10K
Type SAS
Hard drives type
Vendor and model number Fujitsu MBB2073RC
Number of drives 2
Size (GB) 73
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 11
System Dell PowerEdge R720xd
Buffer size (MB) 16
RPM 10K
Type SAS
Hard drives type
Vendor and model number Dell Savvio ST9146803SS
Number of drives 2
Size (GB) 146
Buffer size (MB) 16
RPM 10K
Type SAS
Ethernet adapters
Vendor and model number Intel Gigabit 4P I350-t rNDC
Type Internal
Optical drive(s)
Vendor and model number TEAC DV-28SW
Type DVD-ROM
USB ports
Number 4 external, 1 internal
Type 2.
Figure 5 : Configuration information for our test system.
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 13
mkdir /test
mount /dev/sdb1 /test
27. Create a swap area on the new swap partition (here /dev/sdd1):
mkswap /dev/sdd
swapoff -a
swapon /dev/sdd
Installing the IOzone software on Red Hat Enterprise Linux 6.
1. Log onto Red Hat Enterprise Linux 6.4.
2. Install the GCC compiler as well as the run-time libraries for 32-bit programs by adding the following packages:
gcc, libc.i686, libgcc.i686, libstdc++.i686, and glibc-devel.i686.
3. Download the IOzone 3.414 source code from www.iozone.org.
wget http://www.iozone.org/src/current/iozone3_414.tar
4. Un-tar the source code and go to the main directory:
tar xf iozone3_414.tar cd iozone3_414/src/current/
5. Modify the makefile to force 32-bit compilation by applying this patchfile:
patch < makefile-patch
The patch file for IOzone’s makefile (makefile-patch) is diff -u makefile* --- makefile 2013-03-20 16:51:15.559646000 - +++ makefile- 2013-03-20 16:46:51.007276100 - @@ -9,7 +9,7 @@
convex, FreeBSD, OpenBSD, OSFV3, OSFV4, OSFV5, SCO
SCO_Unixware_gcc,NetBSD,TRU64, Mac OS X
-CC = cc -m +CC = cc C89 = c GCC = gcc CCS = /usr/ccs/bin/cc @@ -1220,10 +1220,10 @@ @echo "" @echo "Building iozone for Windows (No async I/O)" @echo ""
- $(GCC) -c -O3 -Dunix -DHAVE_ANSIC_C -DNO_MADVISE \
- -DWindows $(CFLAGS) iozone.c \
- $(GCC) -c -O -Dunix -DHAVE_ANSIC_C -DNO_MADVISE \
- -DWindows $(CFLAGS) -DDONT_HAVE_O_DIRECT iozone.c -o iozone_windows.o $(GCC) -c -O -Dunix -DHAVE_ANSIC_C -DNO_MADVISE -DWindows $(CFLAGS) libbif.c -o libbif.o
6. Create the iozone binary, iozone.
make linux
Running the IOzone tests on Red Hat Enterprise Linux 6.
The following three bash scripts are used to perform IOzone tests for the corresponding file-access methods:
direct I/O, in-cache, and out-of-cache.
dio.sh
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 14
#!/bin/bash
Direct-I/O Method, March 2013
First argument is added the output file
mkdir /test/$1 > /dev/null 2>& ./iozone -n 1024 -g 4096000 -y 8 -q 1024 -a -R -I -f /test/$1/t1 > directio_$1.txt rm -f /test/$1/t echo 3 > /proc/sys/vm/drop_caches sync
End of the Direct-I/O script
inc.sh
#!/bin/bash
In-Filesystem-Cache Method, March 2013
First argument is added the output file
mkdir /test/$1 > /dev/nul 2>& ./iozone -n 1024 -g 4096000 -y 8 -q 1024 -a -R -f /test/$1/t1 > incache_$1.txt rm -f /test/$1/t echo 3 > /proc/sys/vm/drop_caches sync
End of the In-Filesystem-Cache script
otc.sh
#!/bin/bash
Out-of-Filesystem-Cache Method, March 2013
First argument is added the output file
mkdir /test/$1 >/dev/null 2>& for r in 64k 1024k; do ./iozone -s 32g -r $r -C -c -e -w -x -f /test/$1/t1 > outcache_$1-$r.txt rm -f /test/$1/t echo 3 > /proc/sys/vm/drop_caches sync done
End of the Out-of-Filesystem-Cache script
Microsoft Windows Server 2012 Datacenter: Installation, configurations, and IOzone testing
Installing Microsoft Windows Server 2012 Datacenter
1. Insert and boot from the Windows Server 2012 Datacenter installation DVD.
2. At the first Window Setup screen, keep the defaults for installation language, time/currency format, and
keyboard input method. Click Next.
3. At the second Windows Setup screen, click Install now.
4. At the third Windows Setup screen, enter the Windows activation key, and click Next.
5. At the fourth Windows Setup screen, select the Windows Server 2012 Datacenter (Server with a GUI), and click
Next.
6. At the fifth Windows Setup screen, select the checkbox to accept the license term, and click Next.
7. At the sixth Windows Setup screen, click Custom: Install Windows only (advanced).
8. At the seventh Windows Setup screen, select Drive 2 as the Windows installation drive, and click Next to start
installation.
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 16
--- makefile 2013-03-20 16:51:15.559646000 - +++ makefile- 2013-03-20 16:46:51.007276100 - @@ -9,7 +9,7 @@
convex, FreeBSD, OpenBSD, OSFV3, OSFV4, OSFV5, SCO
SCO_Unixware_gcc,NetBSD,TRU64, Mac OS X
-CC = cc -m +CC = cc C89 = c GCC = gcc CCS = /usr/ccs/bin/cc @@ -1220,10 +1220,10 @@ @echo "" @echo "Building iozone for Windows (No async I/O)" @echo ""
- $(GCC) -c -O3 -Dunix -DHAVE_ANSIC_C -DNO_MADVISE \
- -DWindows $(CFLAGS) iozone.c \
- $(GCC) -c -O -Dunix -DHAVE_ANSIC_C -DNO_MADVISE \
- -DWindows $(CFLAGS) -DDONT_HAVE_O_DIRECT iozone.c -o iozone_windows.o $(GCC) -c -O -Dunix -DHAVE_ANSIC_C -DNO_MADVISE -DWindows $(CFLAGS) libbif.c -o libbif.o
4. Create the iozone binary, iozone.exe.
make Windows
5. Copy the IOzone binary and the Cygwin DLL, /bin/cygwin1.dll from the build server to the Windows server under
test.
Running the IOzone tests on Windows Server 2012
The following three batch scripts are used to perform IOzone tests for the corresponding file-access methods:
direct I/O, in-cache, and out-of-cache.
dio.bat
rem ## IOzone with Direct I/O, March 2013 rem ## the first argument is added to the run’s output file del \test\t1 > NUL 2>& .\iozone.exe -n 1024 -g 4096000 -y 8 -q 1024 -a -R -I -f \test\t1 > dio-%1%.txt del \test\t shutdown /r rem ## end of Direct-I/O script
inc.bat
rem ## IOzone with the In-Filesystem-Cache method, March 2013 rem the first argument is added to the run’s output file del \test\t1 > NUL 2>& .\iozone.exe -n 1024 -g 4096000 -y 8 -q 1024 -a -R -f \test\t1 > inc-%1%.txt del \test\t shutdown /r rem ## end of In-Filesystem-Cache script
out.bat
rem ## IOzone with the Out-of-Filesystem-Cache method, March 2013 rem ## the first argument is added to the run’s output file del \test\t1 > NUL 2>& .\iozone.exe -s 32g -r 64k -C -c -e -w -x -f \test\t1 > out-%1%-64k.txt
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 17
del \test\t .\iozone.exe -s 32g -r 1024k -C -c -e -w -x -f \test\t1 > out-%1%-1024k.txt del \test\t shutdown /r rem ## end of Out-of-Filesystem-Cache script
Optimizing operating system configurations
Before running IOzone for the optimized Red Hat Enterprise Linux configuration, run the following two bash
scripts. Red Hat Enterprise Linux 6.4 uses the tuned utility with the enterprise-storage profile to configure the file
systems for better performance and to run the CPUs at high performance.
AdditionalLinuxFileSystemTuning.sh
#!/bin/bash
For the optimized-configuration tests, ensure the filesystem
under test is mounted without journal write-barriers
March 2013
mount /test swapon /dev/sdd tuned-adm profile default tuned-adm profile enterprise-storage mount -o remount,barrier=0 /test cat /proc/mounts swapon – s
End of AdditionalLinuxFileSystemTuning.sh
DisableSomeDefaultServices.sh
#!/bin/bash
For the optimized-configuration tests, disable unneeded services
March 2013
for i in abrt-ccpp abrt-oops abrtd acpid atd auditd autofs avahi-daemon cgconfig crond cups haldaemon irqbalance kdump libvirt-guests mcelogd mdmonitor messagebus portreserve postfix rhnsd rhsmcertd rpcbind rpcgssd rpcidmapd certmonger netfs sysstat; do service $i stop done service lvm2-monitor force-stop
end of DisableSomeDefaultServices.sh
Before running IOzone for the optimized Windows Server 2012 configuration, run the following batch script. In
particular, the OS power profile is set to High performance and the desktop GUI is configured for high performance.
CommandsNoPersonaManagement.bat
rem Note: script closely adapted from rem http://mtellin.com/2010/09/13/creating-a-windows-7-template-for-vmware-view/ rem Version dated 2012 – 02 – 05 reg load "hku\temp" "%USERPROFILE%..\Default User\NTUSER.DAT" reg ADD "hku\temp\Software\Policies\Microsoft\Windows\Control Panel\Desktop" /v SCRNSAVE.EXE /d "%windir%\system32\scrnsave.scr" /f reg ADD "hku\temp\Software\Policies\Microsoft\Windows\Control Panel\Desktop" /v ScreenSaveTimeOut /d "600" /f reg ADD "hku\temp\Software\Policies\Microsoft\Windows\Control Panel\Desktop" /v ScreenSaverIsSecure /d "1" /f
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 19
Powershell Set-Service 'UxSms' -startuptype "disabled" Powershell Set-Service 'Defragsvc' -startuptype "disabled" Powershell Set-Service 'HomeGroupListener' -startuptype "disabled" Powershell Set-Service 'HomeGroupProvider' -startuptype "disabled" Powershell Set-Service 'iphlpsvc' -startuptype "disabled" Powershell Set-Service 'MSiSCSI' -startuptype "disabled" Powershell Set-Service 'swprv' -startuptype "disabled" Powershell Set-Service 'CscService' -startuptype "disabled" Powershell Set-Service 'SstpSvc' -startuptype "disabled" Powershell Set-Service 'wscsvc' -startuptype "disabled" Powershell Set-Service 'SSDPSRV' -startuptype "disabled" Powershell Set-Service 'SysMain' -startuptype "disabled" Powershell Set-Service 'TabletInputService' -startuptype "disabled" Powershell Set-Service 'Themes' -startuptype "disabled" Powershell Set-Service 'upnphost' -startuptype "disabled" Powershell Set-Service 'VSS' -startuptype "disabled" Powershell Set-Service 'SDRSVC' -startuptype "disabled" Powershell Set-Service 'WinDefend' -startuptype "disabled" Powershell Set-Service 'WerSvc' -startuptype "disabled" Powershell Set-Service 'MpsSvc' -startuptype "disabled" Powershell Set-Service 'ehRecvr' -startuptype "disabled" Powershell Set-Service 'ehSched' -startuptype "disabled" Powershell Set-Service 'WSearch' -startuptype "disabled" Powershell Set-Service 'wuauserv' -startuptype "disabled" Powershell Set-Service 'Wlansvc' -startuptype "disabled" Powershell Set-Service 'WwanSvc' -startuptype "disabled" bcdedit /set BOOTUX disabled vssadmin delete shadows /All /Quiet Powershell disable-computerrestore -drive c: netsh advfirewall set allprofiles state off powercfg -H OFF powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c net stop "sysmain" fsutil behavior set DisableLastAccess 1 schtasks /change /TN "\Microsoft\Windows\Defrag\ScheduledDefrag" /Disable schtasks /change /TN "\Microsoft\Windows\SystemRestore\SR" /Disable schtasks /change /TN "\Microsoft\Windows\Registry\RegIdleBackup" /Disable schtasks /change /TN "\Microsoft\Windows Defender\MPIdleTask" /Disable schtasks /change /TN "\Microsoft\Windows Defender\MP Scheduled Scan" /Disable schtasks /change /TN "\Microsoft\Windows\Maintenance\WinSAT" /Disable rem End of CommandsNoPersonaManagement.bat
Analyzing IOzone results
Iozone writes its data in fields of fixed width, and when the reported numbers are high, fields may run into each
other. The following bash script reformats the data so that the 13 fields are separated by one space.
fix-iozone-fields.sh
#!/bin/bash
Auxiliary script to reformat IOzone’s main table (data transfer
speed for each file size and ## record length pair) when transfer
rates are so high adjacent columns abut.
March 2013
Run as a Unix-style filter
Comparing file system performance: Red Hat Enterprise Linux 6 A Principled Technologies test report 20
cut -c1-16,17-24,25-32,33-40,41-49,40-58,59-66,67-74,75-82,83-91,92-100,101- 109,110-118,119-126,127-135 --output-delimiter=" "
end of fix-iozone-fields script