Re: Performance tuning - Configuration files
Posted in 1999
mark@orbell.demon.co.uk wrote:
>
> Aplogies for the lack of information : Here are the configuration
> files :
You say you have a Pentium system running Solaris 7. I thought Solaris
7 is the 64bit version? Anyway...
In addition to what you have provided it might help if you posted any
onstat reports that you suspect indicate your performance problems and
text describing any performance problems you suspect but cannot track
down.
Meanwhile:
> # Root Dbspace Configuration
> ROOTNAME rootdbs # Root dbspace name
> ROOTPATH /dev/L38rdb1a
NEVER use actual device files for chunk paths! Always create a soft
link in another directory somewhere (like the IDS installation
directory or the Informix home directory) and use the links. That way
if you lose a disk you can quickly relink the link and restore to a
new drive.
> ROOTOFFSET 64 # Offset of root dbspace into device
> (Kbytes)
> ROOTSIZE 452000 # Size of root dbspace (Kbytes)>
> # Disk Mirroring Configuration Parameters
> MIRROR 1 # Mirroring flag (Yes = 1, No = 0)
> MIRRORPATH /dev/L38ldb1a # Path for device containing mirrored> root
Same here!
> MIRROROFFSET 64 # Offset into mirrored device (Kbytes)>
> # Physical Log Configuration
> PHYSDBS rootdbs # Location (dbspace) of physical log
> PHYSFILE 6000 # Physical log file size (Kbytes)
Get the logical and physical logs out of the rootdbs and into their own
dbspaces (preferably separate ones for logical and physical logs) on a
different set of spindles and controllers from rootdbs and the data
drives.
> ALARMPROGRAM /usr/informix/etc/log_full.sh # Alarm program path
Do you actually use onbar to backup the logical logs using log_full.sh
or did you just not change the default? If you are using it note that
the storage manager has to be set up to append the logfiles as they
arrive one at a time.
> NOAGE 0 # Process aging
> AFF_SPROC 0 # Affinity start processor
> AFF_NPROCS 0 # Affinity number of processors
These three parameters, NOAGE and AFF* are VERY important to
performance on Solaris as it aggressively ages long running processes
so that the engine gets progressively less and less CPU time. Also
processor affinity can improve performance by up to 25%. Turn these on
set to:
NOAGE 1
AFF_SPROC 1
AFF_NPROCS 2
> # Shared Memory Parameters
> LOCKS 500000 # Maximum number of locks
> BUFFERS 40000 # Maximum number of shared buffers
> NUMAIOVPS 4 # Number of IO vps
This is fine if you are using exclusively RAW devices for chunks and
have not disabled KAIO. Otherwise you need more.
> PHYSBUFF 128 # Physical log buffer size (Kbytes)
> LOGBUFF 128 # Logical log buffer size (Kbytes)
These are rather large and place more data at risk than the default
of 32K. Compromise on 64K if you must.
> LOGSMAX 100 # Maximum number of logical log files
Make this larger so that you can add more logs on the fly if needed.
> CLEANERS 3 # Number of buffer cleaner processes
CLEANERS s/b >= LRUS
> DD_HASHSIZE 501
> DD_HASHMAX 4
DD_HASHSIZE MUST be prime. Use 521 instead for a similar table size.
>
> LRUS 16 # Number of LRU queues
> LRU_MAX_DIRTY 40 # LRU percent dirty begin cleaning> limit
> LRU_MIN_DIRTY 20 # LRU percent dirty end cleaning limit
You will get better performance overall, if you have any transactions
online, if most if not all writes to disk are LRU writes rather than
chunk writes. To achieve this reduce the LRU_MAX/MIN_DIRTY parameters
to something like 10 and 2 respectively.
> # Read Ahead Variables
> RA_PAGES 22 # Number of pages to attempt to read> ahead
> RA_THRESHOLD 12 # Number of pages left before next> group
If you are using any RAID striping level (0, 3, 4, 5, 6, 10) you should
make the RA_PAGES close to a stripe block or if you do not use read
ahead extensively (see onstat -p) then to an even fraction of a stripe
block to reduce unneccessary I/O.
[SNIP]
Art S. Kagel