Upload
zekeriya-besiroglu
View
1.041
Download
0
Embed Size (px)
TEN VITAL TIPS FOR ORACLE RAC PERFORMANCE
ZEKERİYA BEŞİROĞLU EXPERT CONSULTANT&INSTRUCTOR BİLGİNC IT ACADEMY ISTANBUL TURKİSH ORACLE USER GROUP ORACLE OPEN WORLD 15 SAN FRANCİSCO
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
WHO I AM
▸ Oracle Ace Database Management & Performance
▸ OCP since 2002
▸ OCE Rac Expert
▸ Exadata Specialist
▸ President of TROUG
▸ Expert Consultant & Oracle University Instructor
TEN VITAL TIPS▸ CAPACITY & ARCHITECTURE
▸ SQL TUNING
▸ PARALLEL QUERY TUNING
▸ TUNING DATABASE
▸ TUNING NETWORK
▸ RECOVERY TUNING
▸ GLOBAL CACHE TUNING
▸ TUNING STORAGE
▸ TUNNNG CLUSTERWARE
▸ TOOLS
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
1-CAPACITY & ARCHITECTURE
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
CAPACITY & ARCHITECTURE▸ Building Balanced Hardware Configuration
▸ High Throughput
▸ You should consider configuring the following hardware components in order to create a balanced system:
▸ Number and speed of CPUs
▸ Memory size
▸ Number and size of disks
▸ Number and speed of the I/O bandwidth components, such as:
▸ Host Bus Adapters(HBAs)
▸ Switches
▸ Disk Controllers
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
CAPACITY & ARCHITECTURE
▸ per Cpu Core avg 100-300 mb/per second
▸ Core = HBA
▸ Fiber switch avg 800 mb/per second
▸ One Disk Array avg 200 mb/per second
▸ Small 15000 rpm disk. 10 disk one array
▸ 4 gb memory per core / 8 gb Compress.
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
CAPACITY & ARCHITECTURE▸Estimating Size of Database Objects
▸ SELECT * FROM TABLE(dbms_space.object_growth_trend(object_owner => 'SH', object_name => 'SALES', object_type => 'TABLE'));
▸DBMS_SPACE.CREATE_TABLE_COST(‘USERS’,30(avgrowsize),100000000(rowcount),10(pctfree),ub,ab);
▸DBMS_OUTPUT.PUT_LINE('Used Bytes = ' || TO_CHAR(ub));
▸DBMS_OUTPUT.PUT_LINE('Allocated Bytes = ' || TO_CHAR(ab));
▸END;
▸ /
▸Used Bytes = (100GB)
▸Allocated Bytes = (100GB)
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
CAPACITY & ARCHITECTURE
▸Size Interconnect for aggregated throughput – approx 1Gb/sec per 32 cores
▸10Gb/sec or IB generally good for database consolidations and large SMP nodes Bonded 1GbE solutions with load balancing are supported Use same type NICs for LB and failover
▸Use Jumbo frames wherever possible
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
2-SQL TUNING
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
SQL TUNING
▸Optimizing Third Normal Form: Power, Partitioning, Parallelism
▸ Power
▸ Partition : Range- Hash partition
▸ Hash count cpus X 2
▸ Paralel degree power X 2 and goal parallel partition-wise join
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
SQL TUNING
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
SQL TUNING▸ Reduce long full-table scans in OLTP systems.
▸ Use Automatic Segment Space Management (ASSM).
▸ Increase sequence caches.
▸ Use partitioning to reduce interinstance traffic.
▸ Avoid unnecessary parsing.
▸ Minimize locking usage.
▸ Remove unselective indexes.
▸ Configure interconnect properly.
▸ In Memory-Parallel Query
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
SQL TUNING▸ How to avoid “Write Hot Spots” in applications
▸ Frequent transactional changes to the same data blocks in all instances may result in “write hot spots”
▸ in 99% of OLTP performance issues write hot spots occur on indexes
▸ Use non-ordered & cached sequences if sequence is used to generate primary key
▸ ALTER SEQUENCE E1 ... CACHE 10000+
▸ Consolidate applications to use only one server and route via services
▸ Place redo logs on fast storage & Separate disks for logs from other IO busy disks
▸ Schema tuning only involves minimal modification
▸ Global hash partitioned indexes
▸ Locally partitioned indexes
▸ Drop unused indexes
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
3- PARALLEL QUERY TUNING
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
PARALLEL QUERY TUNING
▸ Parallel execution improves performance for the following:
▸ Queries that perform a full table scan
▸ Fast full index scans
▸ The creation of large indexes
▸ DML operations doing bulk inserts, updates, and deletes
▸ Aggregations and copying
Partitioned index scans
Database recovery
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
4-TUNING DATABASE
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
TUNING DATABASE
▸ Distribution of data using data partitions
▸ Distribution of data access using database services
▸ Distribution of workload based on resource availability
▸ Accessing data from a database using indexes
▸ Tuning parameters to help improve performance
▸ Partition pruning
▸ Partition-wise joins
▸ Parallel DML
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
TUNING DATABASE
▸Sequence Numbers
▸Row level locking causing high contention. Getting and maintaining sequences can cause enqueue contention on the sequence enqueue and latches.
▸Due to the non-recursive nature of the transaction, in high INSERT intensive applications, updates to the table can be queued.
▸There could be serious concurrency issues when this method is used.
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
5-TUNING NETWORK
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
TUNING NETWORK
▸ListenersThere are two types of listeners in an Oracle Database 11g Release 2 RAC configuration.
▸SCAN Listeners
▸Database Listeners
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
TUNING NETWORK▸For example, the following SDU settings in the TNS connection descriptor will set the value of the SDU
to 16K:
▸ORCL =
▸ (DESCRIPTION =
▸ (SDU = 16384) (FAILOVER = ON) (ADDRESS = (PROTOCOL = TCP)(HOST = oradb.istanbul.com)(PORT = 1521))
▸ (LOAD_BALANCE = YES)
▸ (CONNECT_DATA = (SERVER = DEDICATED)
▸ (SERVICE_NAME = ORCL)
▸ (FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 10)(DELAY = 3))) )
▸Similar settings should also be made to the listener to ensure that the bytes received by the server are also of a similar size. SID_LIST_LISTENER =
▸ (SID_DESC =
▸ (SDU=16384) (SID_NAME = ORCL)))
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
6-RECOVERY TUNING
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
FAST START PARALLEL ROLLBACK
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
RECOVERY PARALLELLISM
▸ SQL>RECOVER PARALLEL 4;
▸ SQL>RECOVER TABLESPACE SALES
▸ SQL>RECOVER DATAFILE /u01/app/IST/sales.dbf PARALLEL (DEGREE 4);
▸ SQL>RECOVER DATABASE PARALLEL ; -- default DOP is used.
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
REDO SIZE
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
CHECKPOINT
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
7-GLOBAL CACHE TUNING
Data is either stored ‣ 1. Locally (local cache) " access time: nanoseconds ‣ 2. Remote (global cache) " access time: micros. ‣ 3. “On disk”
Flash cache"access time: microseconds Disk controller cache"access time: micros. Spinning disk"access time: milliseconds
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
▸ Global cache optimization
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
GLOBAL CACHE SCENARIOS
There are several scenarios for single block reads: ‣ Read from Disk
‣ Read – Read
‣ Read – Write
‣ Write – Write
‣ Write – Read
‣ Write to Disk
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
GLOBAL CACHE SCENARIOS
‣ Instance A
‣ Instance B
‣ Instance C
‣ Instance D-resource master
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
READ FROM DISK
‣ Instance A
‣ Instance B
‣ Instance C ——Request to obtain a shared resource
‣ Instance D-resource master
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
READ FROM DISK
‣ Instance A
‣ Instance B
‣ Instance C
‣ Instance D-(RM)request is granted
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
READ FROM DISK
‣ Instance A
‣ Instance B
‣ Instance C Read Request
‣ Instance D-(RM)request is granted
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
READ FROM DISK
‣ Instance A
‣ Instance B
‣ Instance C Read Request —- SCN 1000
‣ Instance D-(RM) Request is Granted
‣ Database-SCN 1000 -Block image Delivered
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
READ WRITE CACHE FUSION
‣ Instance A
‣ Instance B Request to obtain resource
‣ Instance C SCN 1000
‣ Instance D-(RM)
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
READ WRITE CACHE FUSION
‣ Instance A
‣ Instance B Request to obtain resource
‣ Instance C SCN 1000
‣ Instance D-(RM) Instruct to transfer the block to B
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
READ WRITE CACHE FUSION
‣ Instance A
‣ Instance B Request to obtain resource ——SCN 1000
‣ Instance C SCN 1000-Send Block image to instance B
‣ Instance D-(RM) Instruct to transfer the block to B
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
WRITE WRITE CACHE FUSION
‣ Instance A
‣ Instance B Request to obtain resource ——SCN 1000-write SCN 1001
‣ Instance C SCN 1000-Send Block image to instance B
‣ Instance D-(RM) Instruct to transfer the block to B
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
WRITE WRITE CACHE FUSION
‣ Instance A-request to write
‣ Instance B SCN 1001
‣ Instance C SCN 1000
‣ Instance D-(RM)
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
WRITE WRITE CACHE FUSION
‣ Instance A-request to write
‣ Instance B SCN 1001
‣ Instance C SCN 1000
‣ Instance D-(RM)——Instruct to transfer to instance A
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
WRITE WRITE CACHE FUSION
‣ Instance A-request to write ——SCN1001
‣ Instance B SCN 1001—-Copy To Buffer
‣ Instance C SCN 1000
‣ Instance D-(RM)——Instruct to transfer to instance A
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
WRITE WRITE CACHE FUSION
‣ Instance A-request to write ——SCN1001 ———SCN 1002
‣ Instance B SCN 1001—-Copy To Buffer
‣ Instance C SCN 1000
‣ Instance D-(RM)——Instruct to transfer to instance A
‣ Database-SCN 1000
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
8-TUNING STORAGE
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
▸ Types of I/O Operations
▸ Read vs. writeSingle-block vs. multi-block Random vs. sequentialSynchronous vs. asynchronous
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
▸ I/O Access Patterns
▸ Sequential access
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
▸ I/O Access Patterns
▸ Random access
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
▸ How Many Disk Groups?
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
9-TUNING CLUSTERWARE
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
10-TOOLS
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
REMOTE DIAGNOSTIC AGENT
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
RAC DIAG
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
ORACHK
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
OLS$ ./ols.pl
The Cluster Nodes are : "NodeA, NodeB, NodeC, NodeD"
The Local Node is : "NodeA"
The Remote Nodes are : "NodeB, NodeC, NodeD"
Major Clusterware Version is : "12.1.0.1.0"
CRS_HOME is installed at : "/u01/app/12.1.0/grid"
CRS_BASE is installed at : "/u01/app/crsusr"
CRS_OWNER is : "crsusr"
CRS_GROUP is : "oinstall"
ORACLE_HOMES[0] is installed at : "/u01/app/crsusr/product/12.1.0/dbhome_1"
ORACLE_BASES[0] is installed at : "/u01/app/crsusr"
ORACLE_OWNERS[0] is : "crsusr"
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
TEN VITAL TIPS▸ CAPACITY & ARCHITECTURE
▸ SQL TUNING
▸ PARALLEL QUERY TUNING
▸ TUNING DATABASE
▸ TUNING NETWORK
▸ RECOVERY TUNING
▸ GLOBAL CACHE TUNING
▸ TUNING STORAGE
▸ TUNNNG CLUSTERWARE
▸ TOOLS
TEN VITAL TIPS FOR REAL APPLICATION CLUSTER PERFORMANCE ZEKERIYABESIROGLU.COM
ZEKERİYA BESİROGLU BILGINC IT ACADEMY ISTANBUL