OPS-23: OpenEdge Performance Basics

Similar documents
Top n performance tips Adam Backman, White Star Software

abstract 2015 Progress Software Corporation.

OS and Hardware Tuning

OS and HW Tuning Considerations!

OpenEdge Replication. A Few Words about the Speaker. Before We Start. Agenda. Business Continuity. Business Continuity Myths 3/23/2016

Inside the PostgreSQL Shared Buffer Cache

What s New with VSTs. Rich Banville June 5, 2017

When DR is not Enough

What s New with VSTs. Richard Banville Fellow, OpenEdge Development. November 16, 2017

Dump & Load: More than just a few Proutil Commands Paul Koufalis, White Star Software

WHITE PAPER. Optimizing Virtual Platform Disk Performance

a process may be swapped in and out of main memory such that it occupies different regions

VERITAS Storage Foundation 4.0 TM for Databases

OpenEdge 12.0 Database Performance and Server Side Joins. Richard Banville Fellow, OpenEdge Development October 12, 2018

Optimising Insert Performance. John Campbell Distinguished Engineer IBM DB2 for z/os Development

IBM InfoSphere Streams v4.0 Performance Best Practices

IT Best Practices Audit TCS offers a wide range of IT Best Practices Audit content covering 15 subjects and over 2200 topics, including:

Exadata X3 in action: Measuring Smart Scan efficiency with AWR. Franck Pachot Senior Consultant

DBA Best Practices. Paul Koufalis

Tales of the Secret Bunker 2016 (231) Dump and Load Edition Mike Furgal Director MDBA and Pro2 Services Gus Bjorklund - Lackey

An A-Z of System Performance for DB2 for z/os

CS5460: Operating Systems Lecture 20: File System Reliability

Introduction. Assessment Test. Chapter 1 Introduction to Performance Tuning 1. Chapter 2 Sources of Tuning Information 33

MySQL Performance Optimization and Troubleshooting with PMM. Peter Zaitsev, CEO, Percona

Performance Tuning. Chapter 25

The Secrets Behind DB Startup Parameters. Paul Koufalis, White Star Software

HP AutoRAID (Lecture 5, cs262a)

vsan 6.6 Performance Improvements First Published On: Last Updated On:

Operating Systems Unit 6. Memory Management

Performance Tuning the OpenEdge Database in The Modern World

<Insert Picture Here> Exadata MAA Best Practices Series Session 1: E-Business Suite on Exadata

Lecture 16. Today: Start looking into memory hierarchy Cache$! Yay!

Applying a Blockcentric Approach to Oracle Tuning. Daniel W. Fink

Oracle Database 11g: Performance Tuning DBA Release 2

DESIGNING FOR PERFORMANCE SERIES. Smokin Fast Queries Query Optimization

Oracle Database 11g: Performance Tuning DBA Release 2

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2

CSE 153 Design of Operating Systems

Configuring Short RPO with Actifio StreamSnap and Dedup-Async Replication

Chapter 8 Virtual Memory

File Structures and Indexing

Classifying Physical Storage Media. Chapter 11: Storage and File Structure. Storage Hierarchy (Cont.) Storage Hierarchy. Magnetic Hard Disk Mechanism

Classifying Physical Storage Media. Chapter 11: Storage and File Structure. Storage Hierarchy. Storage Hierarchy (Cont.) Speed

Implementing a Statically Adaptive Software RAID System

Designing Database Solutions for Microsoft SQL Server (465)

- SLED: single large expensive disk - RAID: redundant array of (independent, inexpensive) disks

Scaling PostgreSQL on SMP Architectures

PESIT Bangalore South Campus

The term "physical drive" refers to a single hard disk module. Figure 1. Physical Drive

Virtual Memory. CSCI 315 Operating Systems Design Department of Computer Science

Virtual Memory #3 Oct. 10, 2018

HP AutoRAID (Lecture 5, cs262a)

Segregating Data Within Databases for Performance Prepared by Bill Hulsizer

OpenEdge Management in the Real World. Paul Koufalis President Progresswiz Consulting

Lesson 2: Using the Performance Console

Operating Systems Design Exam 2 Review: Spring 2011

CS6401- Operating System UNIT-III STORAGE MANAGEMENT

Managing Large Databases in the R/3 Environment

CS 416: Opera-ng Systems Design March 23, 2012

TokuDB vs RocksDB. What to choose between two write-optimized DB engines supported by Percona. George O. Lorch III Vlad Lesin

Rdb features for high performance application

SQL Server: Practical Troubleshooting. Dmitri Korotkevitch (

Top 10 Essbase Optimization Tips that Give You 99+% Improvements

Lenovo Database Configuration

Optimizing MySQL performance with ZFS. Neelakanth Nadgir Allan Packer Sun Microsystems

BIG DATA AND HADOOP ON THE ZFS STORAGE APPLIANCE

When DR Is Not Enough

MAINVIEW Batch Optimizer. Data Accelerator Andy Andrews

Presentation Abstract

CSE544 Database Architecture

CHAPTER 6 Memory. CMPS375 Class Notes (Chap06) Page 1 / 20 Dr. Kuo-pao Yang

The Role of Database Aware Flash Technologies in Accelerating Mission- Critical Databases

Readings and References. Virtual Memory. Virtual Memory. Virtual Memory VPN. Reading. CSE Computer Systems December 5, 2001.

Proper Care and Feeding of your SQL MDB

Tales From the Bunker Episode No. 6. Presented by: Gus Björklund, Dan Foreman, John Harlow

Welcome to Part 3: Memory Systems and I/O

Learning Objectives : This chapter provides an introduction to performance tuning scenarios and its tools.

Operating System Concepts

DB2 Data Sharing Then and Now

IMPROVING THE PERFORMANCE, INTEGRITY, AND MANAGEABILITY OF PHYSICAL STORAGE IN DB2 DATABASES

Assessing performance in HP LeftHand SANs

Chapter 6 Memory 11/3/2015. Chapter 6 Objectives. 6.2 Types of Memory. 6.1 Introduction

CSCI 4717 Computer Architecture

COSC3330 Computer Architecture Lecture 20. Virtual Memory

Before-image log, checkpoints, crashes

PS2 out today. Lab 2 out today. Lab 1 due today - how was it?

NEC Express5800 A2040b 22TB Data Warehouse Fast Track. Reference Architecture with SW mirrored HGST FlashMAX III

Virtual Memory Outline

6. Results. This section describes the performance that was achieved using the RAMA file system.

Oracle Database 11g : Performance Tuning DBA Release2

Automated Storage Tiering on Infortrend s ESVA Storage Systems

INFORMATICA PERFORMANCE

Chapter 3 - Memory Management

Section 9: Cache, Clock Algorithm, Banker s Algorithm and Demand Paging

Horizontal Table Partitioning

DESIGNING DATABASE SOLUTIONS FOR MICROSOFT SQL SERVER CERTIFICATION QUESTIONS AND STUDY GUIDE

Cache introduction. April 16, Howard Huang 1

Storage and File Structure

On BigFix Performance: Disk is King. How to get your infrastructure right the first time! Case Study: IBM Cloud Development - WW IT Services

Week 2: Tiina Niklander

Transcription:

OPS-23: OpenEdge Performance Basics White Star Software adam@wss.com Agenda Goals of performance tuning Operating system setup OpenEdge setup Setting OpenEdge parameters Tuning APWs OpenEdge utilities 2 Goals of Performance Tuning Consistent performance despite load Why not fast People want consistency Month end should not be different from the middle of the month People want their TPS reports to take the same amount of time each day Fast is relative 3 1

When to Tune Performance? Installation or upgrade of hardware Installation or upgrade of software Change in workload Number of users Volume of data 4 Application Performance The single largest component of performance tuning is application performance. A well written application will run well given the proper resources while a poorly written application will rarely run well despite resource allocation. 5 UPDATE STATISTICS If you are a SQL user you should use the UPDATE STATISTICS function within OpenEdge to ensure your queries are as efficient as possible How Often? Weekly would be nice but I think monthly is more practical for most Caution: This can take some time to run 6 2

Operating System Setup Which operating system? Network Considerations Disks Yes, RAID 5 is still bad. Memory Use the memory for the common good first Then get creative CPU Good versus bad CPU utilization 7 Which Operating System? Consider the following: Your needs and capabilities Uptime requirements Ability to self support The ability of the vendor Local support Phone support Quality control Price/performance 8 Network contention The network is the slowest resource for client/server applications so you want to eliminate contention for this resource before moving on to the other resources. AppServer applications reduce network utilization and improve performance Moving large jobs to the server also reduces dependency on the network 9 3

Networking tips Keep things local No temp files on network drives Move the application close to the user Use -cache to speed initial connection Use -pls if you are using program libraries over the network Application issues are magnified over a network (field-lists, no-lock, indexes, ) 10 Disks This is where to spend your money Goal: Use all disks evenly Buy as many physical disks as possible RAID 5 is still bad in many cases, improvements have been made but test before you buy as there is a performance wall out there and it is closer with RAID 5 11 Causes of Disk I/O Database User requests (Usually 90% of total load) Updates (This affects DB, BI and AI) Temporary file I/O - Use as a disk utilization leveler Operating system - usually minimal provided enough memory is installed Other I/O 12 4

Disks - General Rules Use RAID 10 (0+1) or Mirroring and Striping for best protection of data with optimal performance for the database For the AI and BI RAID 10 still makes sense in most cases. Exception: Single database environments 13 File Placement Think security of data first and then performance The After Image files should always reside in a different location than the database AND before image files Best if database and before image can be separated as well 14 Data Placement - Example 1 16 disks total Single database 10 disks RAID 10 for the DB 2 disks mirrored for OS 2 disks mirrored for BI 2 disks mirrored for AI 15 5

Data Placement - Example 2 16 disks Multiple databases (let s say 5) 10 disks RAID 10 for DB and BI 6 disks RAID 10 for OS and AI 16 Memory Use memory to avoid disk I/O Have enough to eliminate swapping Excessive physical page faulting is a good indicator of a memory lean situation If you are low on memory get more or reduce utilization (Yes, you paid to see this) 17 Memory When increasing memory always increase broker parameters first and then increase client parameters Buffer hit ratio in promon is a bad indicator of real performance but the goal is to reduce I/O and this ratio shows the cost of each request If you increase -B buffers you should see a reduction in disk reads at the same workload 18 6

Memory hints Increase -B in 10% increments until the point of diminishing returns or swapping, whichever comes first Use Post-Version 9 private buffers (-Bp) for reporting Use memory for the users closest to the customer first (developers increase last) Use -Bt for temp tables - In OE10 they use a minimum of 9 blocks (1 Index + 8 Data) 19 CPU Buy a single fast CPU or multiple slower ones? A Single fast CPU is good for single threaded operations (nightly report runs) Multi-CPU systems excel at running many small threads at the same time Single core processors versus multi-core A dual core is approximately equal to 1.5 single cores (Source: IBM benchmark center) A quad core is approximately equal to 2.75 single cores (Source: IBM benchmark center) 20 CPU contention High CPU activity is not bad in and of itself but high system CPU activity is bad and should be corrected. A host-based system will have a higher percentage of User time that client/server or n-tier 21 7

Components of CPU activity USER - This is what you paid for SYSTEM - This is overhead WAIT - This is waste IDLE - This is nothing ;-) 22 CPU activity goals The goal is to have as much USER time as possible with as little SYSTEM and WAIT. A practical split is USER: 70% SYSTEM: 25% WAIT: 0% IDLE: 5% This represents a good goal for a host-based system 23 Eliminating high SYSTEM CPU activity Always use -spin Use a setting of 1 for single CPU systems Use a higher setting for multiple CPU systems Testing has shown that the optimal setting will vary significantly based on CPU clock speed Start at 2000 and work up (perhaps way up) from there 24 8

Eliminating high WAIT CPU activity WAIT = Waiting on I/O If you still have IDLE time it generally is not a big problem Look at paging/swapping first Next look at your disk I/O 25 OpenEdge Setup Database block size Storage Areas Before image cluster size File placement 26 Database Block Size Generally, 8k works best for Unix/Linux 4k works best for Windows Remember to build filesystems with larger block sizes (match if possible) There are exceptions so a little testing goes a long way but if in doubt use the above guidelines 27 9

Storage Areas Two types (Type I and Type II) Allow you to split objects (tables and Indexes) into different physical locations Allow you to store more data as you increase the number of areas Areas can be split into multiple extents 28 Type I Areas Data blocks are social They allow data from any table in the area to be stored within a single block Index blocks only contain data for a single index Data and index blocks can be tightly interleaved potentially causing scatter 29 Type II Storage Areas Data is clustered together A cluster will only contain records from a single table A cluster can contain 8, 64 or 512 blocks This helps performance as data scatter is reduced Disk arrays have a feature called read-ahead that really improves efficiency with type II areas. 30 10

Storage Areas Compared 31 Type I Index Block Index Block Index Block Index Block Type II Index Block Index Block What is the Before Image Log and How Does is Work? Keeps track of data intra-transaction to allow for transaction back out in case of user interaction or system malfunction The before image log is made up of clusters which are definable in size Transaction notes are written to the log sequentially and blocks can be reused It is automatic and cannot be turned off 32 How the AI File Works FOR EACH customer: Transaction Begin UPDATE customer. BI Note Written AI Note Written END. Transaction End 33 11

Before Image Cluster Size This can have a dramatic effect on update performance Default is generally too low for most applications General rule: 2 minutes between checkpoints at high update times of the day This will equate to settings between 1 and 8 MB for most users. 34 BI File - Reuse Clusters fill sequentially When the last formatted cluster is reached there is a reuse decision point The oldest cluster is examined to determine if it can be reused Then, either the oldest cluster is reused or another cluster is added, formatted and used 35 35 35 BI File - Reuse Cluster 1 Cluster 2 Cluster 3 Cluster 4 Cluster 5 Cluster 6 Cluster 7 Cluster 8 Cluster 9 Cluster 10 Checkpoints Growth Decision Point 36 12

OpenEdge Parameters Which parameters are important How to set them When to watch and change them 37 Important OpenEdge Parameters -B - Database buffers -Bp - Private buffers -Mn - Maximum number of servers -bibufs - Before image buffers -aibufs - After image buffers 38 Private Buffers (-Bp) Not really private Use different LRU chain Good for read only clients (reports) _MyConnection._MyConn-NumSeqBuffers to allocate or deallocate from the application level 39 13

Tuning APWs Start with 1 APW Monitor buffers flushed at checkpoint on the activity screen (option 5) in promon If buffers flushed increases during the important hours of the day add 1 APW 40 Tuning Page Writers Asynchronous page writer (APW) Before image writer (BIW) After image write (AIW) 41 OpenEdge Monitoring Utilities Database Analysis Can be run while the db is up Should be run at least once a quarter How to read it (see example) Promon Activity Screen Block Access Virtual System Tables (VSTs) VST-Based tools (Protop, OE Management, ProMonitor) 42 14

OpenEdge Management Utilities Index compact Index rebuild Table move Index move 43 Index Compact Online reorganization of indexes Rebalances B-Tree Can increase but not decrease index utilization proutil <db> -C idxcompact [#] 44 Table and Index Move Much faster with type II areas Moving a 2GB index completed in 2 minutes Good way to reduce scatter provided you have a fresh area as a target Not totally online as the table is locked for the duration of the move 45 15

Index Rebuild Offline way to rebuild indexes Provides better end indexes due to sorting capability Ability to specify packing factor can help avoid block splits proutil <db> -C idxbuild [-pfactor %] 46 Conclusion The application code still has the most effect on performance Work from slowest resource to fastest Network, Disk, Memory, CPU Change one thing at a time to know the effect of changes Performance tuning is an ongoing process as things constantly change 47 16