Informix Best Practices Configuration, ONCONFIG, CPU and

Informix Best Practices Configuration, ONCONFIG, CPU and
Informix Best Practices
Configuration, ONCONFIG,
CPU and Memory Usage
Webcast – February 23, 2017
by
Lester Knutsen
Lester Knutsen
Lester Knutsen is President of Advanced DataTools
Corporation, and has been building large Data
Warehouse and Business Systems using Informix
Database software since 1983. Lester focuses on large
database performance tuning, training and consulting.
Lester is a member of the IBM Gold Consultant
program and was presented with one of the Inaugural
IBM Data Champion awards by IBM. Lester was one of
the founders of the International Informix Users Group
and the Washington Area Informix User Group.
lester@advancedatatools.com
www.advancedatatools.com
703-256-0267 x102
Informix Best
Practices
2
Overview
• CPU Recommendations and Best Practices
• Memory Recommendations and Best Practices
• ONCONFIG Recommendations and Best Practices
– Basic Settings
– Additional Key Settings
Informix Best
Practices
3
CPU – Central Processor Unit
Recommendations for Informix
and Best Practices
CPU Terms
•
•
•
•
•
Socket = One Chip or Processor
Cores per Socket = How many cores run on a chip. A core only
runs one process at a time.
Hyper-Threads or SMT threads per Core = Many Cores have
the ability to run multiple threads. No matter how many threads
run on a Core, only one thread can run at a time on a core.
Hyper-Threads will appear as additional Virtual Cores.
Chip speed is measured in gigahertz (GHz); this is the speed of
a single core of your processor.
PVU - IBM Processor Value Unit = A unit of measure used to
differentiate licensing of software
Informix Best
Practices
5
CPU Terms
• Example: 2 Sockets with 5 Cores and 2 HyperThreads per Core = 10 Cores and 20 Virtual Cores
• Can run 10 processes at the same time
Informix Best
Practices
6
Informix CPU Best Practices
• How many Cores will be allocated for
Informix? What else is running on the
machine?
• Traditional best practice is number of
physical CPU Cores minus 1
• Current CPU Cores are fast enough to
handle 2-3 oninits per Core or 1 oninit
per 500-1000 MHz
Informix Best
Practices
7
CPU Usage Best Practices
• How busy are your CPUs?
• Tools to monitor:
– sar –u, vmstat, mpstat, top, prstat
• Performance Guideline for Average CPU Usage:
– < 30 % - Good
– 30-60% - Fair
– > 60% - Poor
• Save 60% of your CPU usage to handle Workload
Spikes or you may not be able to handle busy
loads
Informix Best
Practices
8
Hyper-Threads or SMT
Threads
• Hyper-Threads and SMT Threads may
not be helpful to Informix oninit process
• Example:
Informix on AIX.
Each AIX Core
has 4 SMT
threads, each
displaying as a
CPU; only the
first thread is
busy, the rest
are idle.
Informix Best
Practices
9
Hyper-Threads or SMT
Threads Best Practices
• Test, Test and Test again; don’t assume that
more Hyper-Threads or SMT threads are
better. Your workload will determine what is
best.
• AIX – Try 2 SMT threads per Core on Power6
and Power7, 4 SMT on Power8
• Intel – Try 2 Oninits per Core instead of 2
Hyper-Threads and 1 Oninit per HyperThread
Informix Best
Practices
10
Informix Architecture
SQL
Clients
SQL
Clients
Oninit
Oninit
Oninit
SQL
Clients
SQL
Clients
Oninit
Oninit
Informix
Shared
Memory
Oninit
SQL
Clients
Disk Drives
Informix Best
Practices
11
Oninit Process
informix@train6:~ train6 > ps
informix 22472
1 9 14:03
root
22473 22472 0 14:03
root
22474 22473 0 14:03
root
22475 22473 0 14:03
root
22476 22473 0 14:03
root
22477 22473 0 14:03
root
22478 22473 0 14:03
root
22479 22473 0 14:03
Informix Best
Practices
-ef | grep oninit
?
00:00:03
?
00:00:00
?
00:00:00
?
00:00:00
?
00:00:00
?
00:00:00
?
00:00:00
?
00:00:00
oninit
oninit
oninit
oninit
oninit
oninit
oninit
oninit
-v
-v
-v
-v
-v
-v
-v
-v
12
Oninit Process
onstat –g sch
informix@train6:~ train6 > onstat -g sch
IBM Informix Dynamic Server Version 12.10.FC6 -- On-Line -- Up
VP Scheduler Statistics:
vp
pid
class
semops
busy waits spins/wait
1
22472
cpu
141
0
0
2
22473
adm
0
0
0
3
22474
lio
4115
0
0
4
22475
pio
30
0
0
5
22476
aio
7453
0
0
6
22477
msc
5
0
0
7
22478
fifo
2
0
0
8
22479
soc
2
0
0
9
22480
aio
2890
0
0
10
22481
aio
187
0
0
11
22482
aio
113
0
0
12
22483
aio
55
0
0
13
22484
aio
58
0
0
14
22485
aio
41
0
0
15
22486
aio
32
0
0
16
22487
aio
29
0
0
17
22489
aio
22
0
0
Informix Best
Practices
00:02:12 -- 766404 Kbytes
bsy lspins
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
Oninit Process Classes
•
•
•
•
•
•
•
•
•
•
•
•
CPU - Executes all user and session threads and some system threads
PIO - Handles physical log file when cooked disk space is used
LIO - Handles logical log file when cooked disk space is used
AIO - Handles disk I/O
SHM - Performs shared memory communications
TLI - Performs TLI network communications
SOC - Performs socket network communications
FIFO - Performs FIFO operations
OPT - Handles optical disk I/O
ADM - Executes administrative threads
ADT - Executes auditing threads
MSC - Handles request for system calls
Informix Best
Practices
14
Oninit Process
Automatically Started
• Started Automatically
–
–
–
–
–
PIO - Handles physical log file when cooked disk space is used
LIO - Handles logical log file when cooked disk space is used
FIFO - Performs FIFO operations
ADM - Executes administrative threads
MSC - Handles request for system calls
• Started when Auditing is on
– ADT - Executes auditing threads
• Started when UDRs are called
– Java
– User Defined Functions
Informix Best
Practices
15
Oninit Process Controlled
by VPCLASS
• ONCONFIG VPCLASS Setting
– CPU - Executes all user and session threads and
some system threads
– AIO - Handles disk I/O
Informix Best
Practices
16
VPCLASS Options
The VPCLASS parameter allows you to:
• Designate a class of virtual processors (VPs)
• Create a user-defined VP, and specify the following information
for it:
– The number of virtual processors that the database server should start
initially - optional
– The maximum number of virtual processors allowed for this class - optional
– The assignment of virtual processors to CPUs if processor affinity is
available - optional
– The disabling of priority aging by the operating system if the operating
system implements priority aging - optional
Syntax:
•
VPCLASS classname, options
Informix Best
Practices
17
CPU Oninit Configuration
• VPCLASS CPU – Configure the number
of Oninit CPU VPs to start for Informix
– VPCLASS cpu,num=<number> [,max=<max number cpu>]
[,aff=<single CPU number> | <start cpu>-<end cpu> | ( <start
cpu>-<end cpu>/<skip amount> ) ] ] [,noage]
• Examples for 8 Core machine:
–
–
–
–
VPCLASS cpu,num=4,noage
VPCLASS cpu,num=8,noage
VPCLASS cpu,num=8,aff=0,noage
VPCLASS cpu,num=8,aff=1-4,noage
Informix Best
Practices
18
CPU Affinity
• Example:
– VPCLASS cpu,num=4,aff=0-3,noage
Message in the Online Log:
15:33:12 Affinitied VP 8 to phys proc 1
15:33:12 Affinitied VP 9 to phys proc 2
15:33:12 Affinitied VP 10 to phys proc 3
15:33:12 Affinitied VP 1 to phys proc 0
Informix Best
Practices
19
Additional CPU Best
Practices
• Set MULTIPROCESSOR to 1 (Almost
all machines today are multiprocessor)
• Set SINGLE_CPU_VP to 0 (Allows you
to run more Oninits of CPU class as
needed)
• Set NOAGE if your OS supports it
Informix Best
Practices
20
Additional CPU Best
Practices
• Set VP_MEMORY_CACHE_KB <size in
KB for private cache for each CPU VP>
• Format is: <size>[,DYNAMIC|STATIC]
Acceptable values for <size> are: 0
(disable) or 800 through 40% of the
value of SHMTOTAL
• Example:
– VP_MEMORY_CACHE_KB 4096
Informix Best
Practices
21
AIO Oninit Best Practices
• Default is
– AUTO_AIOVPS 1 – enable automatically adding
AIO VPs as needed
– This can lead to too many AIO VPs writing to the
same disk system
• Recommended
– AUTO_AIOVPS 0
– VPCLASS aio,num=<number of oninits you need
to write to disk>
Informix Best
Practices
22
AIO Oninit Best Practices
• How many AIO Class Oninits do you
need? Test, Test, Test…
– With KAIO on – only need 2 AIO oninits
– With KAIO off (default), it depends on how many
processes can write to a disk at the same time.
– Never need more than twice the number of active
chunks.
– Most disks can handle up to 8 AIO oninit
processes.
Informix Best
Practices
23
AIO Oninit Best Practice
Examples
• 1 Disk and 24 Chunks
– VPCLASS aio,num=8
• 6 Disks and 24 Chunks (12 active)
– VPCLASS aio,num=24
Informix Best
Practices
24
Oninit Processes Controlled
by NETTYPE
• ONCONFIG NETTYPE Setting
– SHM - Performs shared memory communications
– TLI - Performs TLI network communications
– SOC - Performs socket network communications
Informix Best
Practices
25
NETTYPE Configuration
• NETTYPE <protocol>,<number of oninit
process>, <number of connections per
oninit>, <Type of Oninit – CPU or NET>
• Examples:
– NETTYPE ipcshm,1,50,CPU
– NETTYPE soctcp,4,250,NET
Informix Best
Practices
26
NETTYPE Configuration
Best Practices
• Configure Shared Memory Connection to run
on NETTYPE type CPU and Network
Connections to run on NETTYPE NET.
• Configure 200-300 Connections per Oninit
process.
• Example:
– NETTYPE ipcshm,1,50,CPU – Shared Memory with 50 connections
– NETTYPE soctcp,4,250,NET – Network with 1000 connections
Informix Best
Practices
27
Memory Recommendations for
Informix and Best Practices
Informix Memory Best
Practices
• How much memory is available on the
machine?
• How much is used by the Operating
System and other applications?
• How much will be assigned to Informix?
• DO NOT allow the machine to Swap
memory to disk as this will SLOW
everything down
Informix Best
Practices
29
Informix Memory Classes
• R – Resident Memory Segment
• B – Buffer Pool Segment for data
• V – Virtual Memory Segment for
Working Storage
• M – Message Segment for
communications between clients
Informix Best
Practices
30
Informix Shared Memory
Resident Memory Segment
•Control Tables
•Buffers
LRU Page Page
LRU Page Page
LRU Page Page
LRU Page Page
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Informix Best
Practices
31
Informix Shared Memory
onstat –g seg
informix@train6:~ train6 > onstat -g seg
IBM Informix Dynamic Server Version 12.10.FC6 -- On-Line -- Up 00:30:00 -- 766404 Kbytes
Segment Summary:
id
key
32769
525c4801
65538
525c4802
98307
525c4803
131076
525c4804
163845
525c4805
196614
525c4806
294919
525c4807
Total:
-
addr
44000000
444af000
46493000
67d41000
71be8000
71c71000
72471000
-
size
4911104
33439744
562749440
166359040
561152
8388608
8388608
784797696
ovhd
495784
393384
1
1
7848
99720
99720
-
class
R
V
B
B
M
V
V
-
blkused
1199
8030
137390
40615
136
1529
25
188924
blkfree
0
134
0
0
1
519
2023
2677
(* segment locked in memory)
No reserve memory is allocated
Informix Best
Practices
32
ONCONFIG Memory
Configuration Settings
•
•
•
•
BUFFERPOOL
SHMVIRTSIZE
SHMADD
LOCKS
Informix Best
Practices
33
BUFFERPOOL Best
Practices
• More Buffers - the better and faster your
database will perform.
• Goal is to put all the active data into Memory
Buffers.
• Goal is to prevent high Memory Buffers
Turnover (Art Kagel’s rule – less than 8 times
and hour).
• Always leave the default BUFFERPOOL line
in the ONCONFIG.
Informix Best
Practices
34
BUFFERPOOL Settings
•
The BUFFERPOOL configuration parameter consists of two lines in the onconfig.std file,
as shown in this example for a UNIX platform:
BUFFERPOOL default,lrus=8,buffers=5000,lru_min_dirty=50,lru_max_dirty=60
BUFFERPOOL size=2K,buffers=5000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
•
The top line specifies the default values that are used if you create a dbspace with a
page size that does not already have a corresponding buffer pool created at startup.
•
The next line below the default line specifies the database server's default values for a
buffer pool, which are based on the database server's default page size.
•
When you add a dbspace with a different page size with the onspaces utility, or when
you add a new buffer pool with the onparams utility, a new line is appended to the
BUFFERPOOL configuration parameter in the ONCONFIG file. The page size for each
buffer pool must be a multiple of the system's default page size.
Informix Best
Practices
35
BUFFERPOOL Examples
•
3 GB Memory for Buffers – Linux OLTP System
–
•
12 GB Memory for Buffers – AIX OLTP System
–
•
BUFFERPOOL size=4k,buffers=3000000,lrus=128,lru_min_dirty=1,lru_max_dirty=2
48 GB Memory for Buffers – Solaris Data Warehouse
–
•
BUFFERPOOL size=2k,buffers=1500000,lrus=32,lru_min_dirty=10,lru_max_dirty=20
BUFFERPOOL size=2K,buffers=24000000,lrus=128,lru_min_dirty=60,lru_max_dirty=70
15 GB Memory for 4K Buffers and 12.8 GB for 16K Buffers
–
–
BUFFERPOOL size=4K,buffers=60000000,lrus=256,lru_min_dirty=0.1,lru_max_dirty=0.2
BUFFERPOOL size=16K,buffers=800000,lrus=256,lru_min_dirty=20,lru_max_dirty=30
Informix Best
Practices
36
Monitoring BUFFERPOOL
Turnover
Informix Best
Practices
37
Informix Shared Memory Management
Resident Memory Segment
•Control Tables
•Buffers
LRU Page Page
LRU Page Page
LRU Page Page
LRU Page Page
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
38
Page Gets Read into Memory by a Select
Resident Memory Segment
•Control Tables
•Buffers
LRU Page Page
LRU Page Page
LRU Page Page
LRU Page Page
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
39
When all Buffers are full, Least Recently Used (LRU)
Page is discarded to make room for more data.
Tables
Resident Memory Segment •Control
•Buffers
LRU Page Page
LRU Page Page
LRU Page Page
LRU Page Page
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
Page
Page
Page
Page Page
40
When a user updates a page, it is marked as dirty and must
be written out to disk before it is discarded.
Tables
Resident Memory Segment •Control
•Buffers
Updates
LRU Page Page
UpdatesLRU Page Page
UpdatesLRU Page Page
LRU Page Page
Updates
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
Page
Page
Page
Page Page
41
LRU Queues manage writing data to disk in the background
when there is idle time based on LRU_MAX_DIRTY and
LRU_MIN_DIRTY
ONCONFIG
values.
Resident Memory
Segment
Updates
LRU Page Page
UpdatesLRU Page Page
UpdatesLRU Page Page
LRU Page Page
Updates
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
Page
Page
Page
Page Page
42
When all buffers are Dirty, the server must STOP all
processing and perform a Foreground Write.
Resident Memory Segment
All Activity is Blocked
Updates
LRU Page Page
•Control Tables
•Buffers
UpdatesLRU Page Page
UpdatesLRU Page Page
LRU Page Page
Updates
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
Page
Page
Page
Page Page
43
When a buffer is written to disk, it is marked as clean and may
be discarded if needed.
Resident Memory Segment
Updates
LRU Page Page
•Control Tables
•Buffers
UpdatesLRU Page Page
UpdatesLRU Page Page
LRU Page Page
Updates
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
Page
Page
Page
Page Page
44
Checkpoint writes all Dirty Buffers to Disk.
Resident Memory Segment
Updates
LRU Page Page
•Control Tables
•Buffers
UpdatesLRU Page Page
UpdatesLRU Page Page
LRU Page Page
Updates
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
Page
Page
Page
Page Page
45
After a Checkpoint, all Buffers are clean and the cycle
starts over again.
Tables
Resident Memory Segment •Control
•Buffers
LRU Page Page
LRU Page Page
LRU Page Page
LRU Page Page
Virtual Memory Segment
•Dictionary cache
•Working Storage
•Sort Space
Message Memory Segment
Page
Informix Best
Practices
Page
Page
Page
Page Page
46
Memory LRU Settings
• AUTO_LRU_TUNING - Enables (1) or
disables (0)
• BUFFERPOOL LRU Settings
– lrus=<Number of LRU QUEUES>,
– lru_max_dirty=<Percent dirty to START
cleaning>
– lru_min_dirty=<Percent dirty to STOP
cleaning>
Informix Best
Practices
47
Memory LRU Best Practices
• Enable AUTO_LRU_TUNING for
turnkey or embedded systems.
• Disable AUTO_LRU_TUNING for high
performance systems where you do not
want CHECKPOINTS to write a huge
amount of data to disk and slow
everything down.
Informix Best
Practices
48
Memory LRU Settings
• LRU Settings for AUTO_LRU_TUNING
Disabled
– lrus=<Number of LRU QUEUES>,
– lru_max_dirty=<Percent dirty to START
cleaning>
– lru_min_dirty=<Percent dirty to STOP
cleaning>
Informix Best
Practices
49
SHMVIRTSIZE Best
Practices
• Controls the size of the Informix Virtual
Memory Workspace, which can grow if
needed.
• Best practice is to set it large enough so
it does not need to grow.
– Monitor with onstat –g seg
Informix Best
Practices
50
Informix Shared Memory
onstat –g seg
informix@train6:~ train6 > onstat -g seg
IBM Informix Dynamic Server Version 12.10.FC6 -- On-Line -- Up 00:30:00 -- 766404 Kbytes
Segment Summary:
id
key
32769
525c4801
65538
525c4802
98307
525c4803
131076
525c4804
163845
525c4805
196614
525c4806
294919
525c4807
Total:
-
addr
44000000
444af000
46493000
67d41000
71be8000
71c71000
72471000
-
size
4911104
33439744
562749440
166359040
561152
8388608
8388608
784797696
ovhd
495784
393384
1
1
7848
99720
99720
-
class
R
V
B
B
M
V
V
-
blkused
1199
8030
137390
40615
136
1529
25
188924
blkfree
0
134
0
0
1
519
2023
2677
(* segment locked in memory)
No reserve memory is allocated
Informix Best
Practices
51
Additional Memory Setting
• RESIDENT - Controls whether shared
memory is resident. Acceptable values are:
– 0 off (default)
– 1 lock the resident segment only
– n lock the resident segment and the next n-1
virtual segments, where n < 100
– -1 lock all resident and virtual segments
• SHMADD - The size, in KB, of additional
virtual shared memory segments
Informix Best
Practices
52
LOCKS Memory Settings
• LOCKS – The number of LOCKS when
Informix Starts. This determines the
amount of Memory initially set for
LOCKS. Can be dynamically added
when needed.
• Dynamically adding LOCKS can cause
a performance degradation.
Informix Best
Practices
53
LOCKS Memory Settings
• To monitor, look at the last line of:
– onstat –k
– This shows 2 lock table overflows.
– This system requires 80,000 locks.
Informix Best
Practices
54
LOCK Best Practices
• LOCK Table Overflows will slow
performance and should be avoided.
• LOCK Table Overflows are a major
contributor to SHMVIRT Memory
additions.
• Set your LOCK setting to a value that is
the largest number required.
Informix Best
Practices
55
Informix ONCONFIG File
Recommendations and Best
Practices
Basic Informix ONCONFIG
Setup and Configuration
ROOTPATH
ROOTSIZE
MSGPATH
CONSOLE
TAPEDEV
LTAPEDEV
SERVERNUM
DBSERVERNAME
DBSERVERALIASES
NETTYPE
NETTYPE
Informix Best
Practices
/PATH/rootdbs
400000
/PATH/trainX_online.log
/PATH/trainX_console.log
/dev/null
/dev/null
<Your Server number goes here>
<Informix Server Name>
<Informix Server Alias Name>
ipcshm,1,50,CPU
soctcp,1,50,NET
57
Basic Informix ONCONFIG
Setup and Configuration
• ROOTPATH – full path location to your
rootdbs
– ROOTPATH /informixchunks/train1/rootdbs
• ROOTSIZE – Size of your rootdbs in KB
– ROOTSIZE 2000000
• File must be owned by Informix and belong to
the Informix group
• File Permissions must be read/write by user
and group Informix only
Informix Best
Practices
58
Basic Informix ONCONFIG
Setup and Configuration
• MSGPATH – Full path to the location of
the Informx Message log file
– MSGPATH $INFORMIXDIR/train1_online.log
• CONSOLE – Full path to the location of
the Informx Console log file
– CONSOLE $INFORMIXDIR/train1_console.log
Informix Best
Practices
59
Basic Informix ONCONFIG
Setup and Configuration
• Set Ontape Backups to a directory
– TAPEDEV /home/informix/backups/servername/archive
– LTAPEDEV /home/informix/backups/servername/logs
• Directory must be owned by Informix
and belong to the Informix group
• Permissions must be read/write by user
and group Informix only
Informix Best
Practices
60
Basic Informix ONCONFIG
Setup and Configuration
• SERVERNUM – Must be a unique
number for each instance on a machine
• DBSERVERNAME – the Server Name
– The connections INFORMIXSERVER
• DBSERVERALIAS – the Server Alias
Name for other (Network Connections)
– The connections INFORMIXSERVER
Informix Best
Practices
61
Basic Informix ONCONFIG
Setup and Configuration
• NETTYPE – The Network settings for
your Server – See Slide 26-27
Informix Best
Practices
62
Disk Space Configuration
•
•
•
•
•
•
Root DBspace
Physical Log DBspace
Logical Logs Dbspace
Temp Dbspace
Data Dbspace
Index DBspace
Informix Best
Practices
63
ONCONFIG Setting
• The following are some Critical
ONCONFIG File Settings to Review
Informix Best
Practices
64
ONCONFIG - Root DBspace
###################################################################
# Root Dbspace Configuration Parameters
###################################################################
# ROOTNAME - The root dbspace name to contain reserved pages and internal tracking tables.
# ROOTPATH - The path for the device containing the root dbspace
# ROOTOFFSET - The offset, in KB, of the root dbspace into the device. The offset is
# required for some raw devices.
# ROOTSIZE - The size of the root dbspace, in KB. The value of
# 200000 allows for a default user space of about
# 100 MB and the default system space requirements.
# MIRROR - Enable (1) or disable (0) mirroring
# MIRRORPATH - The path for the device containing the mirrored root dbspace
# MIRROROFFSET - The offset, in KB, into the mirrored device
# Warning: Always verify ROOTPATH before performing disk initialization (oninit -i or -iy)
# to avoid disk corruption of another instance
###################################################################
ROOTNAME
ROOTPATH
ROOTOFFSET
ROOTSIZE
MIRROR
MIRRORPATH
MIRROROFFSET
Informix Best
Practices
rootdbs
/informixchunks/rootdbs
0
200000
1
/informixchunks/rootdbsM
0
65
ONCONFIG - Physical Log
###################################################################
# Physical Log Configuration Parameters
###################################################################
# PHYSFILE - The size, in KB, of the physical log on disk.
# If RTO_SERVER_RESTART is enabled, the
# suggested formula for the size of PHSYFILE
# (up to about 1 GB) is:
# PHYSFILE = Size of BUFFERS * 1.1
# PLOG_OVERFLOW_PATH - The directory for extra physical log files
# if the physical log overflows during recovery
# or long transaction rollback
# PHYSBUFF - The size of the physical log buffer, in KB
###################################################################
PHYSFILE
50000
PLOG_OVERFLOW_PATH $INFORMIXDIR/tmp
PHYSBUFF
Informix Best
Practices
128
66
ONCONFIG - Logical Log
###################################################################
# Logical Log Configuration Parameters
###################################################################
# LOGFILES - The number of logical log files
# LOGSIZE - The size of each logical log, in KB
# DYNAMIC_LOGS - The type of dynamic log allocation.
# Acceptable values are:
# 2 Automatic. IDS adds a new logical log to the
# root dbspace when necessary.
# 1 Manual. IDS notifies the DBA to add new logical
# logs when necessary.
# 0 Disabled
# LOGBUFF - The size of the logical log buffer, in KB
###################################################################
LOGFILES
6
LOGSIZE
10000
DYNAMIC_LOGS
2
LOGBUFF
64
Informix Best
Practices
67
ONCONFIG - Long
Transactions
###################################################################
# Long Transaction Configuration Parameters
###################################################################
# If IDS cannot roll back a long transaction, the server hangs
# until more disk space is available.
# LTXHWM - The percentage of the logical logs that can be filled before a
# transaction is determined to be a long transaction and is rolled back
# LTXEHWM - The percentage of the logical logs that have been filled before the
# server suspends all other transactions so that the long transaction being rolled back
# has exclusive use of the logs
# When dynamic logging is on, you can set higher values for LTXHWM and LTXEHWM because the
# server can add new logical logs during long transaction rollback. Set lower values to
# limit the number of new logical logs added.
#
# If dynamic logging is off, set LTXHWM and LTXEHWM to lower values, such as 50 and 60 or
# lower, to prevent long transaction rollback from hanging the server due to lack of
# logical log space.
#
# When using Enterprise Replication, set LTXEHWM to at least 30%
# higher than LTXHWM to minimize log overruns.
###################################################################
# NOTE: The new default is LTXHWM 70, LTXEHWM 80 – I recommend using the following values
LTXHWM 50
LTXEHWM 60
Informix Best
Practices
68
ONCONFIG - Server Name
and Aliases
###################################################################
# System Configuration Parameters
###################################################################
# SERVERNUM - The unique ID for the IDS instance. Acceptable
# values are 0 through 255, inclusive.
# DBSERVERNAME - The name of the default database server
# DBSERVERALIASES - The list of up to 32 alternative dbservernames,
# separated by commas
###################################################################
SERVERNUM 1
DBSERVERNAME train
DBSERVERALIASES train2_tcp/3, train_drda
Following a soctcp connection name with a slash and a number causes the engine to start that number of
listener threads for this port. The default is a single listener thread.
Informix Best
Practices
69
ONCONFIG - CPU
Configuration
###################################################################
# CPU-Related Configuration Parameters
###################################################################
# MULTIPROCESSOR - Specifies whether the computer has multiple CPUs. Acceptable
# values are: 0 (single processor), 1 (multiple processors or multi-core chips)
# VPCLASS cpu - Configures the CPU VPs. The format is:
# VPCLASS cpu,num=<#>[,max=<#>][,aff=<#>] [,noage]
# VP_MEMORY_CACHE_KB - Specifies the amount of private memory blocks of your CPU VP, in
# KB, that the database server can access. Acceptable values are:
# 0 (disable)
# 800 through 40% of the value of SHMTOTAL
# SINGLE_CPU_VP - Optimizes performance if IDS runs with only one CPU VP. Acceptable
# values are:
# 0 multiple CPU VPs
# Any nonzero value (optimize for one CPU VP)
###################################################################
MULTIPROCESSOR 0
VPCLASS cpu,num=1,noage
VP_MEMORY_CACHE_KB 0
SINGLE_CPU_VP 1
Informix Best
Practices
70
ONCONFIG - Network
Connections
#######################################################################
# NETTYPE - The configuration of poll threads
# for a specific protocol. The format is:
# NETTYPE <protocol>,<# poll threads>
# ,<number of connections/thread>,(NET|CPU)
# You can include multiple NETTYPE
# entries for multiple protocols.
# LISTEN_TIMEOUT - The number of seconds that IDS
# waits for a connection
# MAX_INCOMPLETE_CONNECTIONS - The maximum number of incomplete
# connections before IDS logs a Denial
# of Service (DoS) error
# FASTPOLL - Enables (1) or disables (0) fast
# polling of your network, if your
# operating system supports it.
# NS_CACHE - The number of seconds for IDS name service cache
# (host, service, user, group) expiration time.
# 0 to disable cache.
#######################################################################
NETTYPE
ipcshm,1,50,CPU
NETTYPE
soctcp,1,50,NET
LISTEN_TIMEOUT 60
MAX_INCOMPLETE_CONNECTIONS 1024
FASTPOLL
1
NS_CACHE
host=900,service=900,user=900,group=900
Informix Best
Practices
71
ONCONFIG - Checkpoints
and Recover
###################################################################
# Checkpoint and System Block Configuration Parameters
###################################################################
# CKPINTVL - Specifies how often, in seconds, IDS checks
# if a checkpoint is needed. 0 indicates that
# IDS does not check for checkpoints. Ignored
# if RTO_SERVER_RESTART is set.
# AUTO_CKPTS - Enables (1) or disables (0) monitoring of
# critical resource to trigger checkpoints
# more frequently if there is a chance that
# transaction blocking might occur.
# RTO_SERVER_RESTART - Specifies, in seconds, the Recovery Time
# Objective for IDS restart after a server
# failure. Acceptable values are 0 (off) and
# any number from 60-1800, inclusive.
# BLOCKTIMEOUT - Specifies the amount of time, in seconds,
# for a system block.
###################################################################
CKPTINTVL 300
AUTO_CKPTS 1
RTO_SERVER_RESTART 0
BLOCKTIMEOUT 3600
Informix Best
Practices
72
ONCONFIG – Auto Tune
####################################################################
# AUTO_TUNE - The value of this parameter serves as the default value for
#
the following AUTO_* parameters:
#
AUTO_AIOVPS
#
AUTO_CKPTS
#
AUTO_REPREPARE
#
AUTO_STAT_MODE
#
AUTO_READAHEAD
#
AUTO_LRU_TUNING
#
# Any of the above parameters that are not present in your config file
# will default to the value of AUTO_TUNE, which can be set to either 0 or 1.
# If an AUTO_* parameter is set in your config file, the given value overrides
# that of AUTO_TUNE. Information on individual AUTO_* parameters is below.
#
Informix Best
Practices
73
ONCONFIG – Auto Tune
# AUTO_LRU_TUNING - Enables (1) or disables (0) automatic LRU tuning, which
#
adjusts flushing thresholds for individual buffer pools
#
if the server discovers they are sub-optimal
# AUTO_AIOVPS - Enables (1) or disables (0) automatic management
#
of AIO VPs# AUTO_CKPTS
- Enables (1) or disables (0) monitoring of
#
critical resource to trigger checkpoints
#
more frequently if there is a chance that
#
transaction blocking might occur.
# AUTO_REPREPARE - Enables (1) or disables (0) automatically
#
re-optimizing stored procedures and re-preparing
#
prepared statements when tables that are referenced
#
by them change. Minimizes the occurrence of the
#
-710 error.# AUTO_STAT_MODE - Enables (1) or disables (0) update statistics
#
automatic mode. In automatic mode, statistics of
#
table, fragment or index are rebuilt only if existing
#
statistics are considered stale. A table, fragment
#
or index can change by STATCHANGE percentage before
#
its statistics are regarded as stale.
Informix Best
Practices
74
ONCONFIG – Auto Tune
# RA_PAGES & RA_THRESHOLD have been replaced with AUTO_READAHEAD.
# AUTO_READAHEAD mode[,readahead_cnt]
# mode
0 = Disable (Not recommended)
#
1 = Passive (Default)
#
2 = Aggressive (Not recommended)
# readahead_cnt Optional
Range 4-4096
#
readahead_cnt allows for tuning the of
#
pages that automatic readahead will request
#
to be read ahead. When not set, the default
#
is 128 pages.
# Notes:
# The threshold for starting the next readahead request, which
# used to be known as RA_THRESHOLD, is always set to 1/2 of the
# readahead_cnt. RA_THRESHOLD is deprecated and no longer used.
# If RA_PAGES & AUTO_READAHEAD are not present in the ONCONFIG file,
# AUTO_READAHEAD will default to the value of AUTO_TUNE.
# If RA_PAGES is present in the ONCONFIG file and AUTO_READAHEAD is
# not, the server will set AUTO_READAHEAD to AUTO_TUNE,RA_PAGES
Informix Best
Practices
75
ONCONFIG - Transactions
###################################################################
# Transaction-Related Configuration Parameters
###################################################################
# TXTIMEOUT - The distributed transaction timeout, in seconds
# DEADLOCK_TIMEOUT - The maximum time, in seconds, to wait for a
# lock in a distributed transaction.
# HETERO_COMMIT - Enables (1) or disables (0) heterogeneous
# commits for a distributed transaction
# involving an EGM gateway.
###################################################################
TXTIMEOUT 300
DEADLOCK_TIMEOUT 60
HETERO_COMMIT 0
Informix Best
Practices
76
ONCONFIG - Disk I/O
###################################################################
# AIO and Cleaner-Related Configuration Parameters
###################################################################
# VPCLASS aio - Configures the AIO VPs. The format is:
# VPCLASS aio,num=<#>[,max=<#>][,aff=<#>][,noage]
# CLEANERS - The number of page cleaner threads
# AUTO_AIOVPS - Enables (1) or disables (0) automatic management of AIO VPs
# DIRECT_IO - Specifies whether direct I/O is used for cooked files used for dbspace chunks.
# Acceptable values are:
# 0 Disable
# 1 Enable direct I/O
# 2 Enable concurrent I/O – AIX Only
###################################################################
#VPCLASS aio,num=1
CLEANERS 8
AUTO_AIOVPS 1
DIRECT_IO 1
Informix Best
Practices
77
ONCONFIG - Table Space
###################################################################
# Tblspace Configuration Parameters
###################################################################
# TBLTBLFIRST - The first extent size, in KB, for the tblspace
# tblspace. Must be in multiples of the page size.
# TBLTBLNEXT - The next extent size, in KB, for the tblspace
# tblspace. Must be in multiples of the page size.
# The default setting for both is 0, which allows IDS to manage
# extent sizes automatically.
#
# TBLSPACE_STATS - Enables (1) or disables (0) IDS to maintain
# tblspace statistics
###################################################################
TBLTBLFIRST 0
TBLTBLNEXT 0
TBLSPACE_STATS 1
Informix Best
Practices
78
ONCONFIG - Temp Space
###################################################################
# Temporary dbspace and sbspace Configuration Parameters
###################################################################
# DBSPACETEMP - The list of dbspaces used to store temporary
# tables and other objects. Specify a colon
# separated list of dbspaces that exist when the
# server is started. If no dbspaces are specified,
# or if all specified dbspaces are not valid,
# temporary files are created in the /tmp directory
# instead.
# SBSPACETEMP - The list of sbspaces used to store temporary
# tables for smart large objects. If no sbspace
# is specified, temporary files are created in
# a standard sbspace.
###################################################################
DBSPACETEMP tmp1dbs:tmp2dbs:tmp3dbs:non_temp_space1:non_temp_space2
SBSPACETEMP tmp1sbdbs:tmp2sbdbs:tmp3sbdbs
TEMPTAB_NOLOG 1
Informix Best
Practices
79
ONCONFIG - Sbspace and
DbSpace
###################################################################
# Dbspace and sbspace Configuration Parameters
###################################################################
# SBSPACENAME - The default sbspace name where smart large objects
# are stored if no sbspace is specified during
# smart large object creation. Some DataBlade
# modules store smart large objects in this
# location.
# SYSSBSPACENAME - The default sbspace for system statistics
# collection. Otherwise, IDS stores statistics
# in the sysdistrib system catalog table.
# ONDBSPACEDOWN - Specifies how IDS behaves when it encounters a
# dbspace that is offline. Acceptable values
# are:
# 0 Continue
# 1 Stop
# 2 Wait for DBA action
###################################################################
SBSPACENAME sbspacedbs
SYSSBSPACENAME dbspacedbs
ONDBSPACEDOWN 2
Informix Best
Practices
80
ONCONFIG - PDQ Setup
###################################################################
# Parallel Database Query (PDQ) Configuration Parameters
###################################################################
# MAX_PDQPRIORITY - The maximum amount of resources, as a percentage, that PDQ can
# allocate to any one decision support query
# DS_MAX_QUERIES - The maximum number of concurrent decision support queries
# DS_TOTAL_MEMORY - The maximum amount, in KB, of decision support query memory
# DS_MAX_SCANS - The maximum number of concurrent decision support scans
# DS_NONPDQ_QUERY_MEM - The amount of non-PDQ query memory, in KB. Acceptable values are
# 128 to 25% of DS_TOTAL_MEMORY.
# DATASKIP - Specifies whether to skip dbspaces when
# processing a query. Acceptable values are:
# - ALL Skip all unavailable fragments
# - ON <dbspace1> <dbspace2>... Skip listed
# dbspaces
# - OFF Do not skip dbspaces (default)
###################################################################
MAX_PDQPRIORITY 100
DS_MAX_QUERIES
DS_TOTAL_MEMORY
DS_MAX_SCANS 1048576
DS_NONPDQ_QUERY_MEM 128
DATASKIP
Informix Best
Practices
81
ONCONFIG - Optimizer
Setup
###################################################################
# Optimizer Configuration Parameters
###################################################################
# OPTCOMPIND - Controls how the optimizer determines the best
# query path. Acceptable values are:
# 0 Nested loop joins are preferred
# 1 If isolation level is repeatable read,
# works the same as 0, otherwise works same as 2
# 2 Optimizer decisions are based on cost only
# DIRECTIVES - Specifies whether optimizer directives are
# enabled (1) or disabled (0). Default is 1.
# EXT_DIRECTIVES - Controls the use of external SQL directives.
# Acceptable values are:
# 0 Disabled
# 1 Enabled if the IFX_EXTDIRECTIVES environment
# variable is enabled
# 2 Enabled even if the IFX_EXTDIRECTIVES
# environment is not set
Informix Best
Practices
82
Optimizer Setup - continued
# OPT_GOAL - Controls how the optimizer should optimize for
# fastest retrieval. Acceptable values are:
# -1 All rows in a query
# 0 The first rows in a query# IFX_FOLDVIEW - Enables (1) or disables (0) folding views that
# have multiple tables or a UNION ALL clause.
# Disabled by default.
# AUTO_REPREPARE - Enables (1) or disables (0) automatically
# re-optimizing stored procedures and re-preparing
# prepared statements when tables that are referenced
# by them change. Minimizes the occurrence of the
# -710 error.
####################################################################
OPTCOMPIND 2
DIRECTIVES 1
EXT_DIRECTIVES 0
OPT_GOAL -1
IFX_FOLDVIEW 0
AUTO_REPREPARE 1
Informix Best
Practices
83
ONCONFIG - Dump Setup
###################################################################
# Diagnostic Dump Configuration Parameters
###################################################################
# DUMPDIR - The location Assertion Failure (AF) diagnostic
# files
# DUMPSHMEM - Controls shared memory dumps. Acceptable values
# are:
# 0 Disabled
# 1 Dump all shared memory
# 2 Exclude the buffer pool from the dump
# DUMPGCORE - Enables (1) or disables (0) whether IDS dumps a
# core using gcore
# DUMPCORE - Enables (1) or disables (0) whether IDS dumps a
# core after an AF
# DUMPCNT - The maximum number of shared memory dumps or
# core files for a single session
###################################################################
DUMPDIR $INFORMIXDIR/tmp
DUMPSHMEM 1
DUMPGCORE 0
DUMPCORE 0
DUMPCNT 1
Informix Best
Practices
84
ONCONFIG - Alarm Program
Setup
###################################################################
# Alarm Program Configuration Parameters
###################################################################
# ALARMPROGRAM - Specifies the alarm program to display event
# alarms. To enable automatic logical log backup,
# edit alarmprogram.sh and set BACKUPLOGS=Y.
# ALRM_ALL_EVENTS - Controls whether the alarm program runs for
# every event. Acceptable values are:
# 0 Logs only noteworthy events
# 1 Logs all events
# STORAGE_FULL_ALARM - <time interval in seconds>,<alarm severity>
# specifies in what interval:
# - a message will be printed to the online.log file
# - an alarm will be raised
# when
# - a dbspace becomes full
# (ISAM error -131)
# - a partition runs out of pages or extents
# (ISAM error -136)
# time interval = 0 : OFF
# severity = 0 : no alarm, only message
# SYSALARMPROGRAM - Specifies the system alarm program triggered
# when an AF occurs
###################################################################
Informix Best
Practices
85
Alarm Program Setup
ALARMPROGRAM $INFORMIXDIR/etc/log_full.sh
ALRM_ALL_EVENTS 1
STORAGE_FULL_ALARM 600,3
SYSALARMPROGRAM $INFORMIXDIR/etc/evidence.sh
Informix Best
Practices
86
Best Practices Summary
Informix Best
Practices
87
Next Webcast
Informix Best Practices
• Disks and Database Space Layout
– Thursday, March 30, 2017 at 2:00pm EST
• Backup, Recovery, and High Availability Disaster
Recovery
– Thursday, April 20, 2017 at 2:00pm EST
Please register for each webcast here at:
http://advancedatatools.com/Informix/NextWebcast.html
Informix Best
Practices
88
Informix Resources - IIUG
• The International Informix User Group
– http://www.iiug.org
– Membership is FREE
• IIUG 2017 – The Premier Informix Event
April 23 – 27, 2017
– http://www.iiug2017.org
Informix Best
Practices
89
Informix Resources from
IBM
• Informix Documentation
http://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.welcome.doc/welcome.htm
• Compare the Informix Version 12
editions by Carlton Doe, IBM
http://www.ibm.com/developerworks/data/library/techarticle/dm-0801doe/
• The Informix and IoT Roadshows by
Carlton Doe, IBM
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/North%20America%20Informix%20Events
Informix Best
Practices
90
Informix Training in 2017
• April 10-13, 2017
– Informix for Database Administrators
• July 10-13, 2017
– Advanced Informix Performance Tuning
• September 18-21, 2017
– Informix for Database Administrators
• All courses can be taken online on the web from your
desk or at our training center in Virginia.
• We guarantee to NEVER cancel a course and will
teach a course as long as one student is registered!
Informix Best
Practices
91
Questions?
Send follow-up questions to
lester@advancedatatools.com
Informix Support and Training from the Informix Champions!
Advanced DataTools is an Advanced Level IBM Informix Data Management Partner, and has been an authorized
Informix partner since 1993. We have a long-term relationship with IBM, we have priority access to high-level support
staff, technical information, and Beta programs. Our team has been working with Informix since its inception, and
includes 8 Senior Informix Database Consultants, 4 IBM Champions, 2 IIUG Director’s Award winners, and an IBM
Gold Consultant. We have Informix specialists Lester Knutsen and Art Kagel available to support your Informix
performance tuning and monitoring requirements!
•Informix Remote DBA Support Monitoring
•Informix Performance Tuning
•Informix Training
•Informix Consulting
•Informix Development
Free Informix Performance Tuning Webcast replays at:
http://advancedatatools.com/Informix/Webcasts.html
Call: (800) 807-6732 x101 or Email: info@advancedatatools.com
Web: http://www.advancedatatools.com
Informix Best
Practices
93
Thank You
Lester Knutsen
Advanced DataTools Corporation
lester@advancedatatools.com
For more information:
http://www.advancedatatools.com
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising