Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

83
Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1

Transcript of Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Page 1: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 1

Page 2: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Best Practices for Oracle Database Performance on Windows

Christian Shay

Product Manager, Oracle

Page 3: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 3

The following is intended to outline our general product direction. It is intended

for information purposes only, and may not be incorporated into any contract.

It is not a commitment to deliver any material, code, or functionality, and should

not be relied upon in making purchasing decisions. The development, release,

and timing of any features or functionality described for Oracle’s products

remains at the sole discretion of Oracle.

Page 4: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 4

<Insert Picture Here>

Program Agenda

Overview

Architecture

Best Practices for Windows

– Client side tuning

– Windows OS Diagnostic Tools

– Optimize CPU usage, Optimize Network, Optimize File I/O

Best Practices for RAC on Windows

Q+A: Ask the Experts

Page 5: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 5

Slidedeck for this session

Within about one week:

– http://bit.ly/18Wh3UZ

Also will be linked to on OTN Windows page:

– http://otn.oracle.com/windows

Page 6: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 6

Windows 8 and Windows 2012 Supported Editions

Windows 8 Editions

– Windows 8 Pro

– Windows 8 Enterprise

Windows Server 2012 Editions

– Essentials

– Foundation

– Standard

– Datacenter

Page 7: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 7

Windows 32-bit Platform Support OS 10gR2 11gR1 11gR2 #2 12cR1 #3

Windows XP Professional

#1 Yes Yes Yes No

Windows Server 2003 and

Windows Server 2003 R2 Yes Yes Yes No

Windows Vista #1 10.2.0.4 Yes Yes No

Windows 7 #1 10.2.0.5 No Yes Yes

Windows Server 2008 10.2.0.4 11.1.0.7 Yes Yes

Windows Server 2008 R2 10.2.0.5 11.1.0.7 Yes Yes

Windows 8 #1 No No Planned in Patchset Yes

Windows Server 2012 No No Planned in Patchset Yes

#2

RAC not

supported for 32-

bit Windows in

11gR2 and later

# 3

Only Database

Client is

supported for 32-

bit Windows in

12c and later

#1

RAC and some

other features not

supported on

Windows client

systems

Page 8: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 8

Windows 64-bit (x64) Platform Support

OS 10gR2 11gR1 11gR2 12cR1

Windows XP (#1), Windows Server

2003, and Windows Server 2003 R2 Yes Yes Yes No

Windows Vista #1

10.2.0.4 Yes Yes No

Windows 7 #1 10.2.0.5 No Yes Yes

Windows Server 2008 10.2.0.4 11.1.0.7 Yes Yes

Windows Server 2008 R2 10.2.0.5 No Yes Yes

Windows 8 #1 No No Planned in

Patchset Yes

Windows Server 2012 No No Planned in

Patchset Yes # 2

#1

RAC and some

other features not

supported on

Windows client

systems

Windows 32-bit

Client is also

supported on x64

systems

# 2

Single Instance

and Client support

only; RAC support

planned in a

future patchset

Page 9: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 9

Hyper-V and Windows Azure Certification

Windows 2012 Hyper-V

– DB 12cR1 (Single Instance) certified on Windows 2012 guest OS

– DB 12cR1 (Single Instance ) planned to be certified on Windows 2008R2 guest OS in a

future patchset

– DB 11gR2 (Single Instance) planned to be certified on Windows 2008R2 and Windows 2012

guest operating systems in a future patchset

Windows Azure

– DB 12cR1(Single Instance) on Windows 2012 and Oracle Linux 6.4 (Preview)

– DB 11gR2 (Single Instance) on Windows 2012 and Windows 2008R2 planned in future

http://www.oracle.com/technetwork/topics/cloud/faq-1963009.html

Page 10: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 10

<Insert Picture Here>

Program Agenda

Overview

Architecture

Best Practices for Windows

– Windows OS Diagnostic Tools

– Optimize CPU usage, Optimize Network, Optimize File I/O

Best Practices for RAC on Windows

Q+A: Ask the Experts

Page 11: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 11

Architecture: Thread Model

Oracle process

8TB

total

Code

SGA

SGA contains

db buffers,

log buffers

shared pool,

other memory

allocations

Each thread

consists of

PGA, stack,

other memory

allocations

Background and foreground threads

Page 12: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 12

Database Architecture

Thread model, not a straight port of Oracle’s process

architecture

8TB maximum memory per database instance

Runs as a Windows service process

No limits on memory, connections, resources except

those imposed by the operating system

Page 13: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 13

File I/O

Supports asynchronous I/O to all types of files

Logical and physical raw files and partitions are

fully supported (faster than NTFS)

Page 14: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 14

File I/O

Full 64-bit file I/O internally. This means:

– No 2GB or 4GB limitations on database file

sizes.

– Maximum file size is 64GB

– Maximum database size is 4 petabytes

Page 15: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 15

File I/O

Asynch IO support on Windows is very good for both

file system and raw devices.

No need to set INIT.ORA parameter

“filesystemio_options”

Default value of “asynch” is the recommended setting.

Page 16: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 16

Memory - Large Pages Large Page support

– For instances with large memory requirements, large page support can improve performance.

To enable, set registry parameter ORA_LPENABLE

x64 – 4kb default page size – will now be 2 MB

– In 12c, if Oracle Home User is a standard Windows account, the administrator must grant the "Lock pages in memory" privilege to Oracle Home User or Service SID of Oracle Database Service (NTAUTHORITY\OracleService<sid>)

Page 17: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 17

Memory - Large Pages Large Page support

– Windows Server may be slow to allocate a huge amount of memory when using large pages especially if memory is already fragmented. Start Oracle before other processes if this affects you.

– Oracle Database 12c introduces a new option to allow use of large pages but it will fall back to small pages if OS is not able to allocate large pages

Page 18: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 18

Memory - Large Pages Support

Under HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOMENAME

– Create ORA_LPENABLE or ORA_SID_LPENABLE

– Set the value to 1 for regular mode and 2 for mixed mode

– Mixed mode is a new 12c option to allow use of large pages but fall back to small

pages if OS is not able to allocate large pages

– ORA_SID_LPMAXTIME is the optional time parameter for mixed mode

Page 19: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 19

Memory - Numa

NUMA support for memory/scheduling

– Database intelligently allocates memory and schedules threads

based on node configuration

Test well before going into production, Work with your

hardware vendor and Oracle support to enable NUMA.

Page 20: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 20

Hyperthreading

Circuitry added to Intel CPUs resulting in single CPU

functioning as 2 CPUs

All versions of Oracle are supported in Hyperthreaded

environments.

Page 21: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 21

Additional Integration with Windows

Integration with Performance Monitor

Integration with Event Log

Page 22: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 22

Direct NFS Client on Windows

Network Attached Storage (NAS) uses Network File

System (NFS)

As of 11g, Oracle Database allows direct Windows NFS

v3 access

– Part of DB kernel in Oracle Disk Manager library

Page 23: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 23

Direct NFS Client on Windows

Bypasses a lot of software layers in OS

Tailored for the specific I/O patterns that Oracle uses

Page 24: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 24

Direct NFS

Linear scalability of direct NFS can be achieved with

inexpensive NICS - and

– Does not require expensive switches which support link

aggregation…Oracle does load balancing rather relying on a

switch.

– Parallel network paths – More NICS – more bandwidth

Direct NFS is a good solution from low to high end

database servers

Page 25: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 25

Direct NFS Client on Windows

Database 12c Release 1

– dnfs_batch_size allows Windows systems that don't have enough

bandwidth to throttle the number of IOs queued to the system,

which may improve overall performance. (Bug 13647945)

Page 26: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 26

<Insert Picture Here>

Program Agenda

Overview

Architecture

Best Practices for Windows

– Windows OS Diagnostic Tools

– Client side tuning

– Optimize CPU usage, Optimize Network, Optimize File I/O

Best Practices for RAC on Windows

Q+A: Ask the Experts

Page 27: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 27

Enterprise Manager

Page 28: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 28

Diagnostic Tools - Performance Monitor

Page 29: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 29

Process Explorer

Page 30: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 30

OS Tools

tasklist, taskkill

tlist (Shows command line args with -c)

driverquery

diskpart

sc (sc query state= all)

process monitor (regmon, filemon, procexp) tcpview

Windows Services for Unix

Page 31: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 31

Client Diagnosability

Integrated with Automatic Diagnostic Repository (ADR)

OCI and Net tracing and logging uses ADR by default

Multithreaded client-side diagnosability context support

Page 32: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 32

Client Diagnosability

First Failure Capture

– No need to reproduce a second time to get a dump

Client and Server trace file correlation

Reduce one-off diagnostic patches

Structure Dump Facility

– Dumps more than just a stack

Page 33: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 33

Client Characteristics

V$SESSION_CONNECT_INFO/GV$_SESSION_CONNECT_INF

– CLIENT_CHARSET (NLS character set)

– CLIENT_CONNECTION (Homogeneous/heterogeneous)

– CLIENT_OCI_LIBRARY (Home-based, Instant Client Full/Light)

– CLIENT_VERSION (client RSF version)

– CLIENT_DRIVER (OCI/JDBC/other)

OCI_ATTR_DRIVER_NAME to set third party driver

Page 34: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 34

Client-Side Crash Handler

Goal: handle segfaults, other core dumps

As of 10.2, handler only in RDBMS server

As of 11g, we added one on client side

Generates error message & stack trace, and controls

core dump location

Page 35: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 35

Auto-Tuning

Automatically tune client-side OCI Statement Cache size • Low value will cause more soft parses on server, and higher network and

CPU getting cursor meta-data to client repeatedly

• High value will cause more memory usage on client

Auto tuning continuously monitors various parameters and adjusts size

internally to optimal performance given memory constraints specified

Enable during deployment via oraaccess.xml – Out-of-the-box solution that can be used by all OCI applications to improve

performance

– Freeing OCI drivers and applications from custom implementations

New in Oracle Database 12c

Page 36: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 36

Auto-Tuning

<config_descriptions>

<config_description>

<!-- configuration description and giving it an alias -->

<config_alias>foo</config_alias>

<parameters>

<auto_tune>

<enable>true</enable>

<ram_threshold>80</ram_threshold> <!--percentage-->

<memory_target>100</memory_target>

</auto_tune>

</parameters>

</config_description>

...

</config_descriptions>

Configuring in oraaccess.xml

Page 37: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 37

ODP.NET Integration with Performance Monitor

Monitor Connection Pools (As of ODP.NET 11.1)

Enable in

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ODP.NET\Assem

bly_Version\PerformanceCounters

Page 38: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 38

ODP.NET Integration with Performance Monitor

Counters include (among many):

HardConnectsPerSecond

HardDisconnectsPerSecond

SoftConnectsPerSecond

SoftDisconnectsPerSecond

NumberOfActiveConnection

NumberOfFreeConnections

Page 39: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 39

CPU Tuning

ORACLE_AFFINITY registry value can be set to tell

Oracle which threads to run on which processors (same

setting for all instances)

ORACLE_AFFINITY must be set if more than 64 CPUs

Page 40: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 40

Support of Multiple Processor Groups

• Support a max of 4 processor groups with up to 64 CPUs in each

group for a total of 256 logical CPUs (Support of 10 processor groups

planned in a patchset)

• ORACLE_AFFINITY enhanced to enable affinity of Oracle threads to

cpus in multiple processor groups

• processorgroup is an optional parameter designating Windows CPU

group. On systems with 64+ logical CPUs, Windows divides all available

CPUs into 4 groups (0,1,2,3) with each group containing no more than

64 logical CPUs

Details in Oracle® Database Platform Guide 12c Release 1 (12.1) for

Microsoft Windows

Page 41: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 41

CPU Tuning

Use Database Resource Manager to set CPU usage for

different classes of users

– For example, one can configure the db to use 50% CPU for gold

customers, 30% for silver and 20% for rest

Thread priorities can be set in the registry using the

ORACLE_PRIORITY variable

Page 42: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 42

CPU Tuning – Diagnosing High CPU

Process Explorer: drill down to threads

Get thread id of high CPU thread and then do query

SELECT a.spid, b.username FROM v$process a,

v$session b WHERE a.addr= b.paddr AND a.spid =

<thread number>

Page 43: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 43

Networking Best Practices

Use one listener per system

The default queue-size for Windows Server is 50 –

increase to 200 or 300 using QUEUESIZE parameter in

LISTENER.ORA – prevents errors during login storms

Listener Logon Storm Handler

– Configurable on server side in LISTENER.ORA (RATE_LIMIT =

<max conn/sec>)

– Use only if you have logon storm issues

Page 44: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 44

Networking Best Practices

Increase “DEFAULT_SDU_SIZE” in SQLNET.ORA or

“SDU” in TNSNAMES.ORA

– Controls SQL*Net packet size (Session Data Unit)

– Default SDU size in 11g, 12c is 8k. For bulk data transfer

scenarios, increase DEFAULT_SDU_SIZE in sqlnet.ora or SDU

in tnsnames.ora. It can be increased up to 2 MB in 12.1, 64K as

of 11.2.0.2 and 32k for earlier versions.

Page 45: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 45

Networking Best Practices

– Any mix of 11g and 10g will cause it to negotiate down to lower

of the two peers (pre-11g default is 2K)

For 10g increase DEFAULT_SDU_SIZE to 8k or higher.

– Common misperception: Do not set to match MTU!

Page 46: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 46

Networking Best Practices: Shared Server vs. Dedicated Server

Dedicated server gives very best performance

– Each client connection has it’s own thread

– Memory usage is 2-4 MB per server thread

– Oracle uses dedicated server for OLTP benchmarks

– Can hit scalability limits due to memory use

Shared server saves a lot of memory!

– Idle connections will not consume much memory

– Latency because dispatcher hands request to shared server

– Good for large number of connections with many idle

Page 47: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 47

Networking Best Practices: Shared Server vs. Dedicated Server

Recommendation: Use dedicated server if you have

enough physical memory, otherwise use shared for all

sessions that may be idle for some time.

Continue to use dedicated server for a small number of

high performance connections/queries.

Page 48: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 48

Networking Best Practices: Using Shared Server

Client connections share pre-spawned server threads

– No dedicated idle threads wasting resources

Enable Shared Server on client in tnsnames.ora:

(DESCRIPTION=

(ADDRESS=(PROTOCOL=tcp)

(HOST=sales-server)(PORT=1521))

(CONNECT_DATA= (SERVICE_NAME=sales.us.acme.com)

(SERVER=shared) ))

Page 49: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 49

Networking Best Practices: Using Shared Server

Modify init.ora parameters on server to enable shared

servers

Rough guidelines: 20 or 30 Shared Servers per 500 sessions, then

tune from there

Use 1 dispatcher for every 50-100 sessions

See Net Admin Guide for more details

Page 50: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 50

Networking Best Practices: Oracle Database Resident Connection Pool

– Pools Oracle Dedicated Servers

– Shares server side connection pool across mid tier systems and

processes

– Co-exists in all server configurations

Dedicated Servers, Shared Servers, RAC

– Most useful when you have many thousands of client processes

connecting to a database server and each process needs to hold

on to the database server session for a short time

Page 51: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 51

Networking Best Practices: Oracle Database Resident Connection Pool

– In test environment, we were able to support more than 20,000

connections to a 2 GB Database Server

– Pooling is optionally enabled by DBA on Server

– Client connect string also needs to have (SERVER=POOLED)

Page 52: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 52

Networking Best Practices: Connection Timeouts

Client Side connection timeouts: Achieve fast failover when you have multiple addresses in connect string

– TCP.CONNECT_TIMEOUT – as of 11g – Constrains only time required to go from client to listener (no db processing). It can be a few seconds. (60 Seconds default in 11.2). Tune down from there. Too low – false positives

– SQLNET.OUTBOUND_CONNECT_TIMEOUT – Constrains time required to go from client to database (including db processing) - from 10gR2 and later. Not set by default.

– These two timeouts can be used individually or at the same time

Page 53: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 53

Networking Best Practices: Connection Timeouts

Server Side connection timeouts:

– SQLNET.INBOUND_CONNECT_TIMEOUT – available in 10gR1 and later - default 60 secs for 10gR2 and 11g, not enabled by default for 10gR1; this can also be used along with the client side timeouts mentioned on the last slide.

Page 54: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 54

Networking Best Practices: TCP Optimization on Windows

Windows 7 / Server 2008 supports TCP auto-tuning

For other versions, *careful* tuning necessary under RegKey

– HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\

Services\Tcpip\Parameters

– TcpWindowSize

Page 55: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 55

Networking Best Practices: TCP Optimization on Windows

Turn on Window Scaling and Timestamps Tcp1323Opts = 3

Set TCP Window Size to BDP GlobalMaxTcpWindowSize = <BDP>

If desired, tune Window Size at the Interface Level (eg network card level)

Tcpip\Parameters\Interfaces\<interfaceGUID>\

TcpWindowSize

Page 56: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 56

Networking Best Practices

SQLNET.AUTHENTICATION_SERVICES=(NTS)

– This is a default value in SQLNET.ORA, needed for OS

authentication (connect / as SYSDBA)

– It should be left at default on server side.

Use SecureFile LOBs

– NET stack optimizations provide very high throughput limited

only by the underlying hardware

Page 57: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 57

File System Best Practices - ASM

Use Oracle Automatic Storage Management (ASM) –

whether single-instance or RAC – use most recent version

Benefits

– Don’t need to move datafiles around

– Don’t need to take tablespaces offline

– Add disks with no downtime

If you don’t use ASM, but want to use raw devices:

– Use volume mount points to mount raw devices onto directories

– Use this mount point as the file name for raw devices.

Page 58: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 58

File System Best Practices - ASM

ASM provides equivalent performance to RAW

– Database instance directly accesses data on disks

– ASM not in path between instance and storage

Sun ASM vs RAW benchmark

– ASM supported 80% more throughput with 50% shorter response

CERN testing on 11.2 Beta: “ACFS much faster than ext3 with comparable or less CPU usage”

Page 59: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 59

Stores All Data ASM Cluster File System (ACFS)

General purpose scalable file

system

Accessible through NAS

protocols (NFS, CIFS)

Multi OS platform (Linux

and Windows at initial release)

Dynamic Volume Management

Supported

Read Only Snapshots

Supported

Siebel Web

PSFT

DW ODS

SOA IMDB OC4J APACHE

EBS

DB

Datafiles

OCR &

Voting Files

Binaries

File

System A

SM

Clu

ste

r F

ile S

yste

m

Page 60: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 60

Memory Best Practices

11g, 12c: Use MEMORY_TARGET for automatic

management of combined SGA and PGA

10g and earlier:

– Control SGA Memory by using SGA_TARGET parameter

– Control PGA Memory by using PGA_AGGREGATE_TARGET

parameter

Page 61: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 61

Using ORASTACK

Each thread within Oracle process is provided 1MB

reserved stack space

When needed use orastack to increase stack size:

C:\ orastack oracle.exe 8000000

Some Oracle apps installations have required

Oracle.exe stacks as large as 32mb

Page 62: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 62

Using ORASTACK

Stop processes before running Orastack

If you apply a patch, you must re-run Orastack

Page 63: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 63

Oracle on 64-bit Windows

Long history of supporting 64-bit databases on other platforms

Interoperability between 32-bit clients and 64-bit servers and vice versa

Improved performance, availability and scalability

Page 64: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 64

64-bit: Migration

32-bit to 64-bit upgrade process is simple

– 32-bit data files are compatible with 64-bit DB

– Only recreate control file if neccesary (eg file location changes)

No need to recreate the database

Full export and import not required

Database Upgrade Assistant automates process

Transparent migration for end-user applications

– No changes required to existing client applications when running

against 64-bit database

Page 65: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 65

64-Bit Best Practices

Use SP2 or later for Windows Server 2003 to avoid OS

performance bug. (Fixed in 2008)

32-Bit Oracle db not supported on 64-Bit platforms

32-bit Client is supported on x64 64-bit platforms

Enable Large Pages

Page 66: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 66

64-Bit Best Practices

If system has more than 4G of SGA use sga_target (and

not memory target).

Having a fixed, non-pageable SGA with large pages

(compared to dynamically growing SGA) has many

benefits, in particular, stability.

Page 67: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 67

<Insert Picture Here>

Program Agenda

Overview

Architecture

Best Practices for Windows

– Windows OS Diagnostic Tools

– Client side tuning

– Optimize CPU usage, Optimize Network, Optimize File I/O

Best Practices for RAC on Windows

Q+A: Ask the Experts

Page 68: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 68

Real Applications Clusters

Use RAC for scalability and High Availability

– Add instances against same database files providing more

Oracle processes and increasing number of users

– Provides unique scalability on Windows that no other vendor

offers

Clustered databases supported on Windows platforms

since version 7.3.4

Page 69: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 69

Real Applications Clusters

Oracle provides platform independent Oracle

Clusterware to handle failover of services to surviving

nodes

Uses Oracle’s own clustering software, it does not

depend on MSCS

Page 70: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 70

RAC Best Practices for Performance

Read “RAC and Oracle Clusterware Best Practices and

Starter Kit (Windows) (Doc ID 811271.1)”

Installation and performance best practices

Also contains excellent attached illustrated installation

walkthrough.

Page 71: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 71

RAC Best Practices for Performance

Disable Anti-Virus software running on cluster nodes

during installation of Oracle on Windows (be mindful of

manual reboots during this time).

After install, the following should be excluded from being

scanned:

– Oracle Software directories

– OCFS filesystems

– ACFS filesystems

– Network scanning of the private interconnect

Anti-Virus

Page 72: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 72

RAC Best Practices for Performance

Some examples of how AV issues can manifest:

– Installation freezing

– Voting File Disk being locked

– Node eviction issues

Anti-Virus Symptoms

Page 73: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 73

RAC Best Practices for Performance

Set /USEPMTIMER in the boot.ini to prevent excessive

LMD and LMS trace generation and to prevent

connectivity issues as described in Document 437101.1.

/USEPMTIMER

Page 74: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 74

RAC Best Practices for Performance

Increase size of the default Non-Interactive Desktop

Heap to 1MB to prevent instability due to Desktop Heap

exhaustion. See Document 744125.1 and KB947246.

Consult with Microsoft for further tuning of the Non-

Interactive Desktop Heap beyond 1MB.

Non-Interactive Desktop Heap Size

Page 75: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 75

RAC Best Practices for Performance

Run Perfmon to monitor CPU, Memory, Network, Disk IO

Rates - To aid in troubleshooting, configure Perfmon to

monitor these OS statistics and to generate binary log

files (.BLG). Instructions for implementing this change

can be found on the Microsoft support website using the

following link: http://support.microsoft.com/kb/146005

Expensive – don’t run all the time

Generate .BLG files

Page 76: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 76

RAC Best Practices for Performance

Keep memory allocation under 80%.

Shoot for 75% allocated (eg more than 20-25% free)

This will allow for ample memory needed for Windows

OS operations (including collection of physical memory

dumps if required).

Memory Allocation

Page 77: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 77

RAC Best Practices for Performance

Turn off default Scalable Networking Pack (SNP)

features. On a computer that has a TCP/IP Offload-

enabled network adapter, you may experience many

network-related problems like network adapters

consuming lots of nonpaged pool memory or adapters

requesting large blocks of contiguous memory -- causing

interference with internode communication.

See Document 988008.1 and KB Articles KB948496 and

KB951037 for instructions on how to fix.

Scalable Networking Pack

Page 78: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 78

More Oracle on Windows Resources

.Windows Technology Center – http://otn.oracle.com/windows

For more questions

[email protected]

Page 79: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 79

Upcoming Sessions

“Oracle Database 12c on Windows” (What’s New)

– Today 5:00pm-6:00pm Moscone South - 104

Page 80: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 80

Demogrounds Booth

Moscone South, Left - S-067 – Oracle Database on

Windows

Page 81: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 81

Questions & Answers

Page 82: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 82

Page 83: Oow 2013 BestPracticesforOracleDatabasePerformanceonWindows

Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 83