Windows NT Performance Notebook
Download
Report
Transcript Windows NT Performance Notebook
Windows XP Performance
and Tuning: An Update
Demand Technology Software
1020 Eighth Avenue South, Suite 6, Naples, FL 34102
phone: (941) 261-8945 fax: (941) 261-5456
e-mail: [email protected]
http://www.demandtech.com
Demand Technology Software, Inc.
Windows XP
Designed to provide an upgrade path from
Windows (9x, ME) to Windows NT
Conceived with usability, not performance, in mind
Unified desktop permits MS apps to exploit native NT
technology
Multithreading, file cache, NTFS, etc.
Another new UI to get used to…
A minor, maintenance release of Windows NT
Server (internally, version 5.1)
Synchronized with Windows XP – 64 bit support
Demand Technology Software, Inc.
Windows XP: Introduction
2
Windows XP
No major changes in the way the OS
works!
New Power Management-related Processor
utilization Counters
Many incremental improvements:
Several changes designed to enhance scalability
Prefetching to speed-up program loading (including
the boot process)
New Volume snapshot copy APIs for backing up
Open files with integrity
Demand Technology Software, Inc.
Windows XP: Introduction
3
Windows NT evolution:
new in WinXP
New Processor
Object Counters
Supports Intel SpeedStep processor that run at
different speeds to save power
Disk prefetching
Designed to speedup the boot process and
program image file loading
System virtual
memory
changes
Overcome a variety of “large system” deficiencies,
most noticeable with large Terminal Services
environments: Registry size limits, accessing very
large mapped files, very large device drivers
Volume shadow
copy service
Supports file Cache flush and freeze so that
volume snapshots can be easily created with
integrity
Demand Technology Software, Inc.
Windows XP: Introduction
4
Windows NT evolution:
new in WinXP
Boot and
image file
prefetch:
(An attempt to
answer criticisms
leveled at OS
designers by Jeffrey
Raskin in his
influential book, The
Humane Interface)
Demand Technology Software, Inc.
Windows XP: Introduction
5
Windows NT evolution:
new in WinXP
Volume
shadow
copy:
IOCTL_VOLSNAP_FLUSH_AND_HOLD_WRITES,
IOCTL_VOLSNAP_RELEASE_WRITES
Demand Technology Software, Inc.
Windows XP: Introduction
6
Windows NT evolution:
new in WinXP
New Networking
tab in Taskman
Demand Technology Software, Inc.
Windows XP: Introduction
7
Windows NT evolution:
new in WinXP
Some new
Counters:
Demand Technology Software, Inc.
Windows XP: Introduction
8
Windows NT evolution:
new in WinXP
New built-in
security profiles
SYSTEM
LOCAL SERVICE
NETWORK
SERVICE
Demand Technology Software, Inc.
Windows XP: Introduction
9
Windows NT evolution:
new in WinXP
Improved disk
defragger
Demand Technology Software, Inc.
Windows XP: Introduction
10
Windows XP – 64 bit support
Major new version of the
OS to support new Intel 64bit processors
P7 chips
64-bit virtual addressing
Matches look-and-feel of
Windows XP 32-bit desktop
and applications
Demand Technology Software, Inc.
Windows XP: Introduction
11
Intel 786 IA-64 architecture
EPIC: Explicitly Parallel Instruction Execution
Explicit parallelism
Predication
Speculation
Massive Resources
10 GHz by 2010
First generation Itanium chips: 800 MHz
.013 micron fabrication process
Second generation Itanium chips (McKinley):
Clocked at 1.2 GHz and higher
400 MHz X 128 bit internal system bus
Demand Technology Software, Inc.
Windows XP: Introduction
12
Intel 786 IA-64 architecture
Very difficult to compare performance of the
P7 to the P6
Significant architectural differences
Massive microprocessor designed for high-end
applications
New instruction set
Parallel programming model
Currently, requires Intel compiler optimizations that exploit its
major architectural features
Far superior Floating Point performance
Demand Technology Software, Inc.
Windows XP: Introduction
13
Intel 786 IA-64 architecture
Parallel Execution Resources
2 Memory Units
2 Integer Units
2 Floating Point Units
3 Branch Units
all designed to execute up to six separate
instructions in parallel
Demand Technology Software, Inc.
Windows XP: Introduction
14
Intel 786 IA-64 architecture
Massive Resources: extended Register set
64-bit Instruction Pointer (IP)
128 64-bit GPRs, plus an associated Not a Thing (NaT) bit
some GPRs have reserved meanings;
–
–
Register stacking functions for loop optimization
128 82-bit Floating Point Registers
128 64-bit dedicated Application Registers
GR 0 is hardwired to always contains a Zero value
GR 1 is a global data pointer (gp) for the currently addressable global
data segment
e.g., 8 dedicated Kernel registers (AR0-AR7)
64 1-bit Predicate Registers
8 64-bit Branch Registers
Demand Technology Software, Inc.
Windows XP: Introduction
15
Intel 786 IA-64 architecture
VLIW: Very Long Instruction Word
16-byte Instruction Bundles
(aligned on 16-byte boundaries)
5-bit template, followed by
3 41-bit instruction slots
Can be filled out with No Ops
Compiler optimization:
Match Instruction Bundles to Execution Resources
Instruction dispersal
Demand Technology Software, Inc.
Windows XP: Introduction
16
Intel 786 IA-64 architecture
Memory Latency
Instructions executing in parallel all stall during
memory waits
Cache
level
Size
Integer latency
(cycles)
Floating point
latency
L1
32 KB
2
n/a
L2
96 KB
6
9
L3
4 MB
22
24
176
178
RAM
Demand Technology Software, Inc.
Windows XP: Introduction
17
Intel 786 IA-64 architecture
Strategies to minimize memory latency
Instructions executing in parallel all stall during
memory waits
Utilizes a Register stack for passing parameters to
and from functions
Function arguments do not have to be loaded from
memory
Register stack overflows into process virtual memory
Speculative Loads from memory
Demand Technology Software, Inc.
Windows XP: Introduction
18
Intel 786 IA-64 architecture
Speculation
Data speculation
Advanced Load with an associated Check to ensure that there
was no intermediate store instruction
ld8.a r6=[r8] makes an entry in the ALAT (Advanced Load
Address Table)
ld8.c r6=[r8] is a zero cycle Check instruction that must be issued
prior to using the data loaded in r6 speculatively
Store into memory at [r8] sets the NaT Register bit & invalidates
the ALAT entry, causing the processor to recover the Load
Control speculation
Advanced Load in front of a Branch instruction with an associated
Check to ensure the Branch was taken
ld8.s r6=[r8]
Demand Technology Software, Inc.
Windows XP: Introduction
19
Intel 786 IA-64 architecture
Predication
Conditional execution of an instruction based on a
qualifying predicate value
Contained in a Predicate Register
Uses:
If conversion: remove branches from IF-THEN-ELSE
constructs and execute in-line predicated instructions
Loop optimizations (control parallel execution)
Demand Technology Software, Inc.
Windows XP: Introduction
20
HP i2000 Itanium Workstation
Uses first generation Itanium chip:
733 MHz
4.2 GB/sec system bus
1 GB RAM
DVD/CD drive
Ethernet port
Etc.
Demand Technology Software, Inc.
Windows XP: Introduction
21
HP i2000 Itanium Workstation
Uses first generation Itanium chip:
Install Evaluation copy of Windows XP – 64 bit from
bootable CD-ROM
Test Performance SeNTry collection agent
Demand Technology Software, Inc.
Windows XP: Introduction
22
64-bit Address Space
One uniform
64-bit Virtual
address space
7152 GB
Process
address
spaces are
built on
demand
Demand Technology Software, Inc.
0
6fc 0000 0000
User Mode User Space
Kernel Mode User Space
1fff ff00 0000 0000
2000 0000 0000 0000
3fff ff00 0000 0000
User Page Tables
Session Space
Session Space Page Tables
e000 0000 0000 0000
System Space
e000 0600 0000 0000
System Space Page Tables
ffff ff00 0000 0000
Windows XP: Introduction
23
64-bit Address Space
Resource
Physical Memory (RAM)
Nonpaged pool
Paged pool
System file cache
User Address Space
System space
Paging File size (max)
Demand Technology Software, Inc.
Win32
Win64
64 GB
256 MB
470 MB
960 MB
2 or 3 GB
2 GB
16 GB
128 GB
128 GB
128 GB
1024 GB
7152 GB
128 GB
32 TB
Windows XP: Introduction
24
64-bit Windows Applications
WOW64 provides emulation services for
32-bit applications
Thunking in User mode is performed to extract
arguments from the 32-bit stack, extend them to
64 bits, then make the native 64-bit system call to
ntdll.dll.
WOW64.dll, WOW64cpu.dll, and WOW64win.dll
increase the size of the application’s working set
significantly
System calls redirected to %systemroot%\SysWOW64
for 32-bit DLLs
Demand Technology Software, Inc.
Windows XP: Introduction
25
64-bit Windows Applications
WOW64.dll,
WOW64cpu.dll, and
WOW64win.dll increase
the size of the
application’s working set
significantly
Demand Technology Software, Inc.
Windows XP: Introduction
26
64-bit Windows Programming
New data types
DWORD32
DWORD64
INT32
INT64
LONG32
LONG64
UINT32
UINT64
ULONG32
ULONG64
Demand Technology Software, Inc.
32-bit unsigned integer
64-bit unsigned integer
32-bit signed integer
64-bit signed integer
32-bit signed integer
64-bit signed integer
Unsigned INT32
Unsigned INT64
Unsigned LONG32
Unsigned LONG64
Windows XP: Introduction
27
64-bit Windows Programming
New Pointers:
POINTER_32
A 32-bit pointer. On 32-bit Windows, this is a native pointer. On
64-bit Windows, this is a truncated 64-bit pointer.
POINTER_64
A 64-bit pointer. On 64-bit Windows, this is a native pointer. On
32-bit Windows, this is a sign-extended 32-bit pointer.
Demand Technology Software, Inc.
Windows XP: Introduction
28
64-bit Windows Programming
New 64-bit compiler
macros:
_WIN64 – 64-bit platform.
_WIN32 – 32-bit platform. This value is also defined by the 64bit compiler for backward compatibility.
_WIN16 – 16-bit platform
Inline Helper functions to convert from one data type to
another
E.g., UIntToPtr
Demand Technology Software, Inc.
Windows XP: Introduction
29
Where to get more information
“Windows XP: Kernel improvements create a
more robust, powerful, and scalable OS”
by David Solomon and Mark Russinovich,
MSDN Magazine, December 2001.
Itanium Processor Microarchitecture
Reference
http://developer.intel.com/design/itanium/downloads/245474.htm
Programming Itanium-based Systems
By Triebel, Bissell and Booth (Intel Press)
TechNet or the Microsoft Developer Network
(MSDN) CD
Demand Technology Software, Inc.
Windows XP: Introduction
30