[Fwd: Re: onconfig recommendations]



Kennedy, Randy wrote:
Would like to receive some feedback on our onconfig setup for current
platform. This is the 3rd physical server that the database has moved
to and just want to ensure we are using the best settings for given
platform.

Current Server: HP rp5405 4-Way (650 MHz) with 8GB RAM. 1 73GB hard
drive (4 drives installed, but sysadmin took 2 for O/S, system and other
2 are mirrored pair so effectively 1 spindle to work with). I didn't
get to specify the configuration.

Old Server: HP something 4 way with 4GB RAM. 5 spindles to work with.

When moved to current server, I did up the buffers and locks.
We use ontape for Level 0 and logical log backups. They are done via
files and links to remote server instead of actual tape.

System is primarily OLTP with some batch jobs run overnight (off
business hours).

Any insight will be appreciated. Please let me know if you would like
any other information.
Randy:

You don't state the server version you are using. You should always do so. Also since HPUX runs on two different processor families, you should specify that as well. See below:

TIA,
Randy

# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace name
ROOTPATH /db/links/rootdbs # Path for device containing root
dbspace
ROOTOFFSET 0 # Offset of root dbspace into device
(Kbytes)
ROOTSIZE 384000 # 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 rootdbs # Location (dbspace) of physical log
PHYSFILE 60000 # Physical log file size (Kbytes)

# Logical Log Configuration
LOGFILES 85 # Number of logical log files
LOGSIZE 12000 # Logical log size (Kbytes)
LOG_BACKUP_MODE CONT

# Diagnostics MSGPATH /i9.4/informix/online.log # System message log file path
CONSOLE /dev/console # System console message path
ALARMPROGRAM /db/scripts/no_log.sh # Alarm program path

# System Archive Tape Device
#TAPEDEV /dev/rmt/2m # Tape device path
TAPEDEV /remote/recovery/informix/level0 # Tape device path
TAPEBLK 16 # Tape block size (Kbytes)
TAPESIZE 30000000 # Maximum amount of data to put on tape
(Kbytes)

# Log Archive Tape Device
#LTAPEDEV /dev/rmt/2m # Log tape device path
LTAPEDEV /ltape1/informix/log1 # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 4500000 # Max amount of data to put on log tape
(Kbytes)

# Optical
STAGEBLOB # INFORMIX-OnLine/Optical staging area

# System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLine
instance
DBSERVERNAME courtshm # Name of default database server
DBSERVERALIASES # List of alternate dbservernames
You have no DBSERVERALIASES entry for a TCP connection name, but you have a soctcp NETTYPE entry. Even if all of your apps are local to the server machine, you'll still want a TCP connection with minimal poll entries configured for maintenance..

DEADLOCK_TIMEOUT 60 # Max time to wait of lock in
distributed env.
RESIDENT 0 # Forced residency flag (Yes = 1, No =
Don't know HP model numbers, but it this is a PA-RISC machine, you almost have to set RESIDENT to -1 to prevent poor performance due to the architectures restrictions of only four active shared memory segments per process. On HP PA-RISC platforms, besides marking all shared memory lockable, it combines the 'resident' segment with the initial 'virtual' segment to reduce the count. VERY important on PA-RISC if you are using shared memory connections. On Itanium machines, no problem, though I'd still recommend using RESIDENT 1 or -1 to prevent the shared segments from swapping.

0)
NETTYPE soctcp,4,150,NET
The above line is no-op with no TCP connection names in DBSERVERNAME or DBSERVERALIASES.

NETTYPE ipcshm,1,25,NET
It's very bad for performance and responsiveness to have shared memory poll threads in NET VPs. It wastes CPU cycles for no reason. Configure this in CPU VPs and as many as there are NUMCPUVPs (see below on that).

MULTIPROCESSOR 1 # 0 for single-processor, 1 for
multi-processor
NUMCPUVPS 16 # Number of user (cpu) vps
That's too many CPU VPs for a 4 core 650MHZ processor system. You should be able to effectively set this to 6 (to reserve one CPU for HPUX) or 8 (to utilize all 4 CPUs) and may even be able to get away with 9 or 12, but I wouldn't go to 4 x CPU cores until I had processors at least 1+GHZ.

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 80000 # Maximum number of locks
LOCKS looks low. Note someone said a lock is 4 bytes, no. On 32bit IDS servers each lock is 44bytes and on 64bit IDS servers each lock is 96 bytes (even OL5 used 32bytes per lock). But still, even if you are running a 64bit server, a million locks only takes up 96MB out of 4GB (2.4% of memory).

BUFFERS 150000 # Maximum number of shared buffers
Evaluate the size of a normal working set of data (remember to allow for indexes) and resize BUFFERS to just exceed that. You have enough memory to use more than 300MBof buffers.

NUMAIOVPS 26 # Number of IO vps
Unless you have not enabled KAIO (it's off by default on HPUX - set KAIOON in the server's environment to enable KAIO) you should not need more than 6 AIO VPs and many servers can get away with as few as the default of 2. Watch onstat -g iov to determine if you need more or less of these (I've posted the criteria many times on CDI).

PHYSBUFF 64 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)
CLEANERS 28 # Number of buffer cleaner processes
CLEANERS should be >= LRUs to minimize LRU write times and == number of chunks to minimize checkpoint write times.

SHMBASE 0x0 # Shared memory base address
SHMVIRTSIZE 160000 # initial virtual shared memory segment size
That looks low. Check onstat -g seg to see if you have more than one virtual segment (performance death on a PA-RISC system!). If you do, fold their sizes into SHMVIRTSIZE so you get only one segment most of the time, and increase SHMADD to minimize the number of additional segments when they are necessary.

SHMADD 80000 # Size of new shared memory segments
(Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes).
0=>unlimited
CKPTINTVL 300 # Check point interval (in sec)
LRUS 20 # Number of LRU queues
LRUS settings will depend on the number of users you have concurrently on the system and how active they are. Check my Bufwaits Ratio (BR) metric calculation to determine if this should be increased (and remember you may have to adjust CLEANERS at the same time).

LRU_MAX_DIRTY 5.000000 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 2.000000 # 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 64 # Stack size (Kbytes)
PC_POOLSIZE 110 # Stored Procedures Cache

# 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 15 # Default number of offline worker
threads
ON_RECVRY_THREADS 15 # Default number of online worker
threads

# Data Replication Variables
# DRAUTO: 0 manual, 1 retain type, 2 reverse type
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

# Read Ahead Variables
RA_PAGES 64 # Number of pages to attempt to read ahead
RA_THRESHOLD 8 # Number of pages left before next group
These look OK to me unless you tend to do lots of sequential scans, in which case you may want to increase RA_THRESHOLD to 16 or 32. For std OLTP servers, the current setting is ideal.
<SNIP>

Art S. Kagel
Oninit



.



Relevant Pages

  • Re: shared memory not initialized
    ... Checking group membership to determine server run mode...succeeded ... Allocating 10016 kbytes for buffer pool of 2K page size...succeeded ... 21:48:39 Dynamically allocated new virtual shared memory segment ... # Disk Mirroring Configuration Parameters ...
    (comp.databases.informix)
  • Re: SBS SP 1 installation error
    ... Component Name: Microsoft Exchange Forest Preparation ... Component Name: Server Configuration ... Component Name: Windows Server 2003 Configuration ... Component Name: Networking Configuration ...
    (microsoft.public.windows.server.sbs)
  • shared memory not initialized
    ... I have just installed Informix 10 on a CentOS 4.5 system. ... Checking group membership to determine server run mode...succeeded ... 21:48:39 Dynamically allocated new virtual shared memory segment ... # Disk Mirroring Configuration Parameters ...
    (comp.databases.informix)
  • Re: SBS 2003 Misconfigured?
    ... The netgear has a setting for the Internet IP which is set to the ... DNS server address is set to SBS server's ip 192.168.5.109 ... but something else is clearly awry if you can't get DHCP ... Which, based on the configuration you gave, is part of the problem. ...
    (microsoft.public.windows.server.sbs)
  • Re: SBS 2003 Misconfigured?
    ... The netgear has a setting for the Internet IP which is set to the ... DNS server address is set to SBS server's ip 192.168.5.109 ... DHCP working - and as Cliff says, that should be a simple thing. ... Which, based on the configuration you gave, is part of the problem. ...
    (microsoft.public.windows.server.sbs)

Loading