Re: onconfig recommendations
Posted in 2008
On Jan 2, 11:09 pm, "Kennedy, Randy" <RKenn...@scottsdaleaz.gov>
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.
>
> TIA,
> Randy
>
Your system seems very unbalanced with regard to disk I/O capacity in
comparison to CPU power and RAM size. I would expect that you should
have at least a dozen, and even better 2-3 dozens of disks to have a
balance.
At least, I hope that you have a caching disk controller with lots of
battery backed memory in it. It could alleviate the problems with
write performance (you have logs and database on the same spindle).
One of primary goals here should be to minimize physical access to
disk. Hints that I think might be useful are embedded in your ONCONFIG
file listing.
Darko Krstic
> # 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
> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in> distributed env.
> RESIDENT 0 # Forced residency flag (Yes = 1, No =
> 0)
> NETTYPE soctcp,4,150,NET
> NETTYPE ipcshm,1,25,NET
"CPU" could be better choice for ipcshm NETTYPE.
> MULTIPROCESSOR 1 # 0 for single-processor, 1 for> multi-processor
> NUMCPUVPS 16 # Number of user (cpu) vps
> 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
> BUFFERS 150000 # Maximum number of shared buffers
> NUMAIOVPS 26 # Number of IO vps
> PHYSBUFF 64 # Physical log buffer size (Kbytes)
> LOGBUFF 32 # Logical log buffer size (Kbytes)
> CLEANERS 28 # Number of buffer cleaner processes
> SHMBASE 0x0 # Shared memory base address
> SHMVIRTSIZE 160000 # initial virtual shared memory segment> size
> 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
> 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>
I would multiply BUFFERS and SHMVIRTSIZE by factors between 2 and 4,
at least. You can increase LRUS and CLEANERS accordingly. Then you
might need to decrease LRU_MAX_DIRTY and LRU_MIN_DIRTY. Since they are
listed as decimals, I assume you have IDS engine 9.40 or newer.
> # 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 atte