Baan on Informix 7.23 UC6
Posted in 1999
Topics: High Availability & Replication, Storage & Space Management, Server Administration, Transactions, Locking & Isolation, Logging & Checkpoints, Networking & sqlhosts Configuration, Migration, Import/Export & Data Conversion, Platform-Specific Issues
Please ignore my last posting as I sent it as an attachment. I then noticed
that noone
else does this so here it comes without the attachment.
Hope someone can help here. We migrated from running BAAN IVc0 on tbase to
running it on
Informix version 7.23 UC6 over the weekend. Our porting set is 6.1c.04.01
and we are
running on an AIX model F40 2 processor 166Mhz under AIX version 4.3. Since
the migration
our througput has gone out by a factor of 3-4 i.e jobs that took 10mins now
run for 30-40
mins.Can you check the stats below and if you need any other stats let me
know and I can
supply them. These were taken using the level 1 driver supplied by Baan but
I believe that
there is a level 2 driver for Informix on Baan which could improve matters.
Has anyone
had any experience with it. For the meantime I would appreciate it if you
could give me
some pointers regarding the config to see if we can fix the existing setup.
Thankyou in anticipation
THE STATS WHERE ZEROISED AT 10am and these readings were taken at 8:30 pm
so they relect a days work.
#**************************************************************************
#
# INFORMIX SOFTWARE, INC.
#
# Title: onconfig.std
# Description: INFORMIX-OnLine Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace name
ROOTPATH /dev/Iinfrootdbs # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device
(Kbytes)
ROOTSIZE 240000 # Size of root dbspace (Kbytes)
# Disk Mirroring Configuration Parameters
MIRROR 0 # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH # Path for device containing mirrored root
MIRROROFFSET 0 # Offset into mirrored device (Kbytes)
# Physical Log Configuration
PHYSDBS phydbs # Location (dbspace) of physical log
PHYSFILE 270000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 19 # Number of logical log files
LOGSIZE 10000 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /usr/informix/online.log # System message log file path
CONSOLE /dev/console # System console message path
ALARMPROGRAM /usr/informix/etc/log_full.sh # Alarm program path
# System Archive Tape Device
TAPEDEV /dev/rmt0 # Tape device path
TAPEBLK 1024 # Tape block size (Kbytes)
TAPESIZE 7900000 # Maximum amount of data to put on tape
(Kbytes)
# Log Archive Tape Device
LTAPEDEV /dev/rmt0 # Log tape device path
LTAPEBLK 1024 # Log tape block size (Kbytes)
LTAPESIZE 7900000 # Max amount of data to put on log tape
(Kbytes)
# Optical
STAGEBLOB ,1 # INFORMIX-OnLine/Optical staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLineinstance
DBSERVERNAME baan_str # Name of default database server
DBSERVERALIASES baan_shm # List of alternate dbservernames
NETTYPE ipcstr,1,100,CPU # Configure poll thread(s) for nettype
NETTYPE ipcshm,1,100,CPU # Configure poll thread(s) for nettype
NETTYPE sqlmux,1,100,CPU # Configure poll thread(s) for nettype
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed
env.
RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 1 # 0 for single-processor, 1 formulti-processor
NUMCPUVPS 2 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps toone
NOAGE 1 # Process aging
AFF_SPROC 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors
# Shared Memory Parameters
LOCKS 580000 # Maximum number of locks
BUFFERS 40000 # Maximum number of shared buffers
NUMAIOVPS 2 # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)LOGSMAX 100 # Maximum number of logical log files
CLEANERS 7 # Number of buffer cleaner processes
SHMBASE 0x30000000 # Shared memory base address
SHMVIRTSIZE 160000 # initial virtual shared memory segment size
SHMADD 50000 # Size of new shared memory segments
(Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 300 # Check point interval (in sec)
LRUS 7 # Number of LRU queues
LRU_MAX_DIRTY 12 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 8 # LRU percent dirty end cleaning limit
LTXHWM 50 # Long transaction high water markpercentage
LTXEHWM 60 # Long transaction high water mark
(exclusive)
TXTIMEOUT 0x12c # Transaction timeout (in sec)
STACKSIZE 32 # Stack size (Kbytes)
# System Page Size
# BUFFSIZE - OnLine no longer supports this configuration parameter.
# To determine the page size used by OnLine on your platform
# see the last line of output from the command, 'onstat -b'.
# Recovery Variables
# OFF_RECVRY_THREADS:
# Number of parallel worker threads during fast recovery or an offline
restore.
# ON_RECVRY_THREADS:
# Number of parallel worker threads during an online restore.
OFF_RECVRY_THREADS 10 # Default number of offline workerthreads
ON_RECVRY_THREADS 1 # Default number of online worker threads
# Data Replication Variables
# DRAUTO: 0 manual, 1 retain type, 2 reverse type
DRAUTO 0 # DR automatic switchover
DRINTERVAL 30 # DR max time between DR buffer flushes (in
sec)
DRTIMEOUT 30 # DR network timeout (in sec)DRLOSTFOUND /usr/informix/etc/dr.lostfound # DR lost+found file path
# CDR Variables
CDR_LOGBUFFERS 2048 # size of log reading buffer pool (Kbytes)
CDR_EVALTHREADS 1,2 # evaluator threads (per-cpu-vp,additional)
CDR_DSLOCKWAIT 5 # DS lockwait timeout (seconds)
CDR_QUEUEMEM 4096 # Maximum amount of memory for any CDR queue
(Kbytes)
# Backup/Restore variables
BAR_ACT_LOG /tmp/bar_act.log
BAR_MAX_BACKUP 0
BAR_RETRY 1
BAR_NB_XPORT_COUNT 10
BAR_XFER_BUF_SIZE 31
# Read Ahead Variables
RA_PAGES 10 # Number of pages to attempt to read ahead
RA_THRESHOLD 5 # Number of pages left before next group
# DBSPACETEMP:
# OnLine equivalent of DBTEMP for SE. This is the list of dbspaces
# that the OnLine SQL Engine will use to create temp tables etc.
# If specified it must be
See my comments below:
Tony Cullen wrote:
>
> Please ignore my last posting as I sent it as an attachment. I then noticed
> that noone
> else does this so here it comes without the attachment.
>
> Hope someone can help here. We migrated from running BAAN IVc0 on tbase to
> running it on
> Informix version 7.23 UC6 over the weekend. Our porting set is 6.1c.04.01
> and we are
> running on an AIX model F40 2 processor 166Mhz under AIX version 4.3. Since
> the migration
> our througput has gone out by a factor of 3-4 i.e jobs that took 10mins now
> run for 30-40
> mins.Can you check the stats below and if you need any other stats let me
> know and I can
> supply them. These were taken using the level 1 driver supplied by Baan but
> I believe that
> there is a level 2 driver for Informix on Baan which could improve matters.
> Has anyone
> had any experience with it. For the meantime I would appreciate it if you
> could give me
> some pointers regarding the config to see if we can fix the existing setup.
>
> Thankyou in anticipation
>
> THE STATS WHERE ZEROISED AT 10am and these readings were taken at 8:30 pm
> so they relect a days work.
>
> #**************************************************************************
> #
> # INFORMIX SOFTWARE, INC.
> #
> # Title: onconfig.std
> # Description: INFORMIX-OnLine Configuration Parameters
> #
> #**************************************************************************
>
> # Root Dbspace Configuration
>
> ROOTNAME rootdbs # Root dbspace name
> ROOTPATH /dev/Iinfrootdbs # Path for device containing root dbspace
> ROOTOFFSET 0 # Offset of root dbspace into device
> (Kbytes)
> ROOTSIZE 240000 # Size of root dbspace (Kbytes)>
> # Disk Mirroring Configuration Parameters
>
> MIRROR 0 # Mirroring flag (Yes = 1, No = 0)
> MIRRORPATH # Path for device containing mirrored root
> MIRROROFFSET 0 # Offset into mirrored device (Kbytes)>
> # Physical Log Configuration
>
> PHYSDBS phydbs # Location (dbspace) of physical log
> PHYSFILE 270000 # Physical log file size (Kbytes)>
> # Logical Log Configuration
>
> LOGFILES 19 # Number of logical log files
> LOGSIZE 10000 # Logical log size (Kbytes)>
> # Diagnostics
>
> MSGPATH /usr/informix/online.log # System message log file path
> CONSOLE /dev/console # System console message path
> ALARMPROGRAM /usr/informix/etc/log_full.sh # Alarm program path>
> # System Archive Tape Device
>
> TAPEDEV /dev/rmt0 # Tape device path
> TAPEBLK 1024 # Tape block size (Kbytes)
> TAPESIZE 7900000 # Maximum amount of data to put on tape
> (Kbytes)>
> # Log Archive Tape Device
>
> LTAPEDEV /dev/rmt0 # Log tape device path
> LTAPEBLK 1024 # Log tape block size (Kbytes)
> LTAPESIZE 7900000 # Max amount of data to put on log tape
> (Kbytes)>
> # Optical
>
> STAGEBLOB ,1 # INFORMIX-OnLine/Optical staging area
>
> # System Configuration
>
> SERVERNUM 0 # Unique id corresponding to a OnLine> instance
> DBSERVERNAME baan_str # Name of default database server
> DBSERVERALIASES baan_shm # List of alternate dbservernames
> NETTYPE ipcstr,1,100,CPU # Configure poll thread(s) for nettype
> NETTYPE ipcshm,1,100,CPU # Configure poll thread(s) for nettype
> NETTYPE sqlmux,1,100,CPU # Configure poll thread(s) for nettype
> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed
> env.
> RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
For best performance should be 1 (make 'resident' segment resident or -1
(make 'resident' and 'virtual' segments resident) if you have enough RAM
and swap.
>
> MULTIPROCESSOR 1 # 0 for single-processor, 1 for> multi-processor
> NUMCPUVPS 2 # Number of user (cpu) vps
On a two processor machine with 166MHZ processors you are unlikely to gain
from having NUMCPUVPS set to anything but 1. If you change this to 1 then
set SINGLE_CPU_VP to 1 also to enable some code optimizations.
> SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to> one
>
> NOAGE 1 # Process aging
> AFF_SPROC 0 # Affinity start processor
> AFF_NPROCS 0 # Affinity number of processors>
> # Shared Memory Parameters
>
> LOCKS 580000 # Maximum number of locks
> BUFFERS 40000 # Maximum number of shared buffers
I think you need more buffers. You have 2.6Million buffers read from disk
and 2.6Million buffers written to. That means that you are turning over
the entire buffer cache between 65 and 130 times in 8.5 hrs (or 7-15 times
an hour depending on how many of the writes are new pages and how many are
rewrites. This is heavy thrashing. With 100,000 buffers you will get
that down to turning over the buffer cache about once every 10-20 minutes
with 250,000 it will be 1-2 times an hour.
> NUMAIOVPS 2 # Number of IO vps
Are your disk chunks RAW (ie character devices) or COOKED (ie block
devices or filesystem files)? If COOKED you need one and a half AIO VPs
per chunk plus two to four extras for overhead I/O. If you are using
strictly RAW chunks then you just need the two to four AIO VPS for
overhead as you have here. From the stats below it looks like all RAW
space so this should be OK.
> PHYSBUFF 32 # Physical log buffer size (Kbytes)
> LOGBUFF 32 # Logical log buffer size (Kbytes)> LOGSMAX 100 # Maximum number of logical log files
> CLEANERS 7 # Number of buffer cleaner processes
> SHMBASE 0x30000000 # Shared memory base address
> SHMVIRTSIZE 160000 # initial virtual shared memory segment size
> SHMADD 50000 # Size of new shared memory segments
> (Kbytes)
> SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
> CKPTINTVL 300 # Check point interval (in sec)
> LRUS 7 # Number of LRU queues
I'd expect some LRU contention with only seven LRUS but the stats look OK
for bufwaits.
> LRU_MAX_DIRTY 12 # LRU percent dirty begin cleaning limit
> LRU_MIN_DIRTY 8 # LRU percent dirty end cleaning limit
> LTXHWM 50 # Long transaction high water mark> percentage
> LTXEHWM 60 # Long transaction high water mark
> (exclusive)
> TXTIMEOUT 0x12c # Transaction timeout (in sec)
> STACKSIZE 32 # Stack size (Kbytes)>
> # System Page Size
> # BUFFSIZE - OnLine no longer supports this configuration parameter.
> # To determine the page size used by OnLine on your platform
> #
Hi Tony , Some info from the Baan side for the BaanIV C3 instance. One of the thing we have found , the hard way as documentation was hard to find , is the fact the defualt extent for all tables are set to 16K. There is a file in $BSE/lib/informix/inf_storage which allows you to specify the first and next extent size as well as allowing you specifiy which DBSpaces you want to put Company & table information into. This at least gives you some control. As for the level 2 driver does not exist for Baan IV c3. That what we have been told. It is supposed to be avaibale for C4 but I would hold my breath. The Clown is right for Level 1 drivers. The hashing columns are the way Baan Applications access Information. The hash columns have Informix indexes on them and can only be modified from Baan( Baan do not recommend this for Baan standard tables ). If you would like any more Info let me know. I will try and dig up documentation I have managed to get from Baan and send it regarding Informix set-up. Oh there is one more file $BSE/lib/defaults/db_resource. There is more Information on this file with the Documentation I will send Cheers Pankaj
Related threads
- onbar -c -F in Windows Informix instance
- Anyone... SQLCODE=-668, ISAM error=-1
- Not using the 100% logical log page size alloacted to informix