Re: Need for Speed...
Posted in 2000
Topics: High Availability & Replication, Backup & Restore, Storage & Space Management, Server Administration, Transactions, Locking & Isolation, Logging & Checkpoints, Networking & sqlhosts Configuration
Hi Gurus,
First of all thanks for the response.
Here are the stats....
-------------------------------------------------------------
ROWS SIZE
TABLE1 - 629649
TABLE2 - 487323
TABLE3 - 631455
-------------------------------------------------------------
onstat -c
Informix Dynamic Server Version 7.30.UC8 -- On-Line -- Up 03:35:05 -- 1018936
Kbytes
Configuration File: /u5/informix/etc/onconfig
#**************************************************************************
#
# INFORMIX SOFTWARE, INC.
#
# Title: onconfig
# Description: Informix Dynamic Server Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME root1db # Root dbspace name
ROOTPATH /dev/infbroot # Path for device containing root dbspace
ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
ROOTSIZE 2000000 # 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 root1db # Location (dbspace) of physical log
PHYSFILE 50000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 40 # Number of logical log files
LOGSIZE 8192 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /u5/informix/log/palawan1.log # System message log file path
CONSOLE /dev/console # System console message path
ALARMPROGRAM /u5/informix/etc/log_full.sh # Alarm program pathSYSALARMPROGRAM /u5/informix/etc/evidence.sh # System Alarm program path
TBLSPACE_STATS 1
# System Archive Tape Device
#TAPEDEV /dev/null # Tape device path
TAPEDEV /dev/rmt/1m # Tape device path
TAPEBLK 16 # Tape block size (Kbytes)
TAPESIZE 24000000 # Maximum amount of data to put on tape (Kbytes)
# Log Archive Tape Device
LTAPEDEV /dev/rmt/2m # Log tape device path
LTAPEBLK 16 # Log tape block size (Kbytes)
LTAPESIZE 24000000 # Max amount of data to put on log tape (Kbytes)
# Optical
STAGEBLOB # Informix Dynamic Server/Optical staging area
# System Configuration
SERVERNUM 1 # Unique id corresponding to a Dynamic Server instance
DBSERVERNAME jose1tcp # Name of default database server
DBSERVERALIASES jose1ipc # List of alternate dbservernames
NETTYPE ipcshm,2,70,NET # Configure poll thread(s) for nettype
NETTYPE soctcp,9,70,NET # Configure poll thread(s) for nettype
DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
RESIDENT 1 # Forced residency flag (Yes = 1, No = 0)
MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 3 # 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 200000 # Maximum number of locks
BUFFERS 50000 # Maximum number of shared buffers
NUMAIOVPS 12 # Number of IO vps
PHYSBUFF 128 # Physical log buffer size (Kbytes)
LOGBUFF 128 # Logical log buffer size (Kbytes)LOGSMAX 100 # Maximum number of logical log files
CLEANERS 33 # Number of buffer cleaner processes
SHMBASE 0x0 # Shared memory base address
SHMVIRTSIZE 900000 # initial virtual shared memory segment size
SHMADD 32000 # Size of new shared memory segments (Kbytes)
SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
CKPTINTVL 3000 # Check point interval (in sec)
LRUS 65 # Number of LRU queues
LRU_MAX_DIRTY 80 # LRU percent dirty begin cleaning limit
LRU_MIN_DIRTY 70 # 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 - Dynamic Server no longer supports this configuration parameter.
# To determine the page size used by Dynamic Server 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 worker threads
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 /u5/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 (Kb
ytes)
# 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
# Informix Storage Manager variables
ISM_DATA_POOL ISMData # If the data pool name is changed, be sure to
# update $INFORMIXDIR/bin/onbar. Change to
# ism_catalog -create_bootstrap -pool <new name>
ISM_LOG_POOL ISMLogs
# Read Ahead Variables
RA_PAGES 128 # Number of pages to attempt to read ahead
RA_THRESHOLD 120 # Number of pages left before next group
# DBSPACETEMP:
# Dynamic Server equivalent of DBTEMP for SE. This is the list of dbspaces
# that the Dynamic Server SQL Engine will use to create temp tables etc.
# If specified it must be a colon separated list of dbspaces that exist
# when the Dynamic Server system is brought online. If not specified, or if
# all dbspaces specified are invalid, various ad hoc queries will create
# temporary files in /tmp instead.
DBSPACETEMP
Without seeing your sqexplain.out file (obtained by running your query with
SET EXPLAIN ON), I would recommend the following changes to your onconfigfile:
> NETTYPE ipcshm,2,70,NET # Configure poll thread(s) for nettype
> NETTYPE soctcp,9,70,NET # Configure poll thread(s) for nettype
Both of these are set to NET; therefore, you are not using any CPU poll
threads. I would set your ipcshm to use CPU instead of NET, to take
advantage of the faster CPU threads.
> NUMAIOVPS 12 # Number of IO vps
Is KAIO available for your release? If so, using it instead of AIO would
yield significant performance benefits. Please check your machine-specific
release notes to determine if you can turn on KAIO.
> LOGBUFF 128 # Logical log buffer size (Kbytes)
I have rarely seen any value over 32 for this parameter really help. You
may want to review the documentation for this parameter to see if it should
be set this high. There is a formula to use to determine the correct
setting for this parameter.
> CLEANERS 33 # Number of buffer cleaner processes
> LRUS 65 # Number of LRU queues
Normally, these parameters would both contain the same value. The "LRU
Pairs" terminology is confusing to some; what it really meant is just treat
the pair as one value. Again, review the documentation for these
parameters. You have only 11 dbspaces and should not need more than 11 (at
most!) cleaners. I would suggest setting these parameters to their default
values for your system.
> LRU_MAX_DIRTY 80 # LRU percent dirty begin cleaning limit
> LRU_MIN_DIRTY 70 # LRU percent dirty end cleaning limit
I would set these values to at least 10 and 5, possibly lower to 2 and 1.
This depends on if your system is a OLTP or is being used as a data
warehouse.
> OPTCOMPIND 1 # To hint the optimizer
This would normally set to 2 except for those systems that had their code
developed specifically to use 0 (ie, SAP).
> LBU_PRESERVE 0 # Preserve last log for log backup
Save yourself a possible future headache: set this value to 1. If all of
your logs are filled and your system cannot checkpoint, you may have to
restore from archive.
Have a good one.
Clifton Bean
<jmorales@nettaxi.com> wrote in message
news:8ev6ki$q6q$1@news.xmission.com...
>
> Hi Gurus,
>
> First of all thanks for the response.
>
> Here are the stats....
>
>
> -------------------------------------------------------------
> ROWS SIZE
> TABLE1 - 629649
> TABLE2 - 487323
> TABLE3 - 631455
>
> -------------------------------------------------------------
> onstat -c>
> Informix Dynamic Server Version 7.30.UC8 -- On-Line -- Up 03:35:05 --
1018936
> Kbytes
>
> Configuration File: /u5/informix/etc/onconfig
>
#**************************************************************************
> #
> # INFORMIX SOFTWARE, INC.
> #
> # Title: onconfig
> # Description: Informix Dynamic Server Configuration Parameters
> #
>
#**************************************************************************
>
> # Root Dbspace Configuration
>
> ROOTNAME root1db # Root dbspace name
> ROOTPATH /dev/infbroot # Path for device containing root dbspace
> ROOTOFFSET 0 # Offset of root dbspace into device
(Kbytes)
> ROOTSIZE 2000000 # 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 root1db # Location (dbspace) of physical log
> PHYSFILE 50000 # Physical log file size (Kbytes)>
> # Logical Log Configuration
>
> LOGFILES 40 # Number of logical log files
> LOGSIZE 8192 # Logical log size (Kbytes)>
> # Diagnostics
>
> MSGPATH /u5/informix/log/palawan1.log # System message log file
path
> CONSOLE /dev/console # System console message path
> ALARMPROGRAM /u5/informix/etc/log_full.sh # Alarm program path> SYSALARMPROGRAM /u5/informix/etc/evidence.sh # System Alarm program path
> TBLSPACE_STATS 1>
> # System Archive Tape Device
>
> #TAPEDEV /dev/null # Tape device path
> TAPEDEV /dev/rmt/1m # Tape device path
> TAPEBLK 16 # Tape block size (Kbytes)
> TAPESIZE 24000000 # Maximum amount of data to put on tape
(Kbytes)>
> # Log Archive Tape Device
>
> LTAPEDEV /dev/rmt/2m # Log tape device path
> LTAPEBLK 16 # Log tape block size (Kbytes)
> LTAPESIZE 24000000 # Max amount of data to put on log tape
(Kbytes)>
> # Optical
>
> STAGEBLOB # Informix Dynamic Server/Optical staging
area
>
> # System Configuration
>
> SERVERNUM 1 # Unique id corresponding to a DynamicServer in
> stance
> DBSERVERNAME jose1tcp # Name of default database server
> DBSERVERALIASES jose1ipc # List of alternate dbservernames
> NETTYPE ipcshm,2,70,NET # Configure poll thread(s) for nettype
> NETTYPE soctcp,9,70,NET # Configure poll thread(s) for nettype
> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed
env.
> RESIDENT 1 # Forced residency flag (Yes = 1, No = 0)
>
> MULTIPROCESSOR 1 # 0 for single-processor, 1 formulti-processor
> NUMCPUVPS 3 # 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 200000 # Maximum number of locks
> BUFFERS 50000 # Maximum number of shared buffers
> NUMAIOVPS 12 # Number of IO vps
> PHYSBUFF 128 # Physical log buffer size (Kbytes)
> LOGBUFF 128 # Logical log buffer size (Kbytes)> LOGSMAX 100 # Maximum number of logical log files
> CLEANERS 33 # Number of buffer cleaner processes
> SHMBASE 0x0 # Shared memory base address
> SHMVIRTSIZE 900000 # initial virtual shared memory segmentsize
> SHMADD 32000 # Size of new shared memory segments
(Kbytes)
> SHMTOTAL 0 # Total shared memory (Kbytes).
0=>unlimited
> CKPTINTVL 3000 # Check point interval (in sec)
> LRUS 65 # Number of LRU queues
> LRU_MAX_DIRTY 80 # LRU percent dirty be
Something I forgot. Since you have at least 4 CPUs (NUMCPUVPS set to 3 ),
you probably should have the environment variable PSORT_NPROCS set to at
least 2, possibly 4, before bringing Informix online. That will decrease
the amount of time the system spends on Update Statistics (all but LOW),
index creation and on those order by and group by functions within your
queries.
Take care.
Clifton Bean
<jmorales@nettaxi.com> wrote in message
news:8ev6ki$q6q$1@news.xmission.com...
>
> Hi Gurus,
>
> First of all thanks for the response.
>
> Here are the stats....
>
>
> -------------------------------------------------------------
> ROWS SIZE
> TABLE1 - 629649
> TABLE2 - 487323
> TABLE3 - 631455
>
> -------------------------------------------------------------
> onstat -c>
> Informix Dynamic Server Version 7.30.UC8 -- On-Line -- Up 03:35:05 --
1018936
> Kbytes
>
> Configuration File: /u5/informix/etc/onconfig
>
#**************************************************************************
> #
> # INFORMIX SOFTWARE, INC.
> #
> # Title: onconfig
> # Description: Informix Dynamic Server Configuration Parameters
> #
>
#**************************************************************************
>
> # Root Dbspace Configuration
>
> ROOTNAME root1db # Root dbspace name
> ROOTPATH /dev/infbroot # Path for device containing root dbspace
> ROOTOFFSET 0 # Offset of root dbspace into device
(Kbytes)
> ROOTSIZE 2000000 # 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 root1db # Location (dbspace) of physical log
> PHYSFILE 50000 # Physical log file size (Kbytes)>
> # Logical Log Configuration
>
> LOGFILES 40 # Number of logical log files
> LOGSIZE 8192 # Logical log size (Kbytes)>
> # Diagnostics
>
> MSGPATH /u5/informix/log/palawan1.log # System message log file
path
> CONSOLE /dev/console # System console message path
> ALARMPROGRAM /u5/informix/etc/log_full.sh # Alarm program path> SYSALARMPROGRAM /u5/informix/etc/evidence.sh # System Alarm program path
> TBLSPACE_STATS 1>
> # System Archive Tape Device
>
> #TAPEDEV /dev/null # Tape device path
> TAPEDEV /dev/rmt/1m # Tape device path
> TAPEBLK 16 # Tape block size (Kbytes)
> TAPESIZE 24000000 # Maximum amount of data to put on tape
(Kbytes)>
> # Log Archive Tape Device
>
> LTAPEDEV /dev/rmt/2m # Log tape device path
> LTAPEBLK 16 # Log tape block size (Kbytes)
> LTAPESIZE 24000000 # Max amount of data to put on log tape
(Kbytes)>
> # Optical
>
> STAGEBLOB # Informix Dynamic Server/Optical staging
area
>
> # System Configuration
>
> SERVERNUM 1 # Unique id corresponding to a DynamicServer in
> stance
> DBSERVERNAME jose1tcp # Name of default database server
> DBSERVERALIASES jose1ipc # List of alternate dbservernames
> NETTYPE ipcshm,2,70,NET # Configure poll thread(s) for nettype
> NETTYPE soctcp,9,70,NET # Configure poll thread(s) for nettype
> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed
env.
> RESIDENT 1 # Forced residency flag (Yes = 1, No = 0)
>
> MULTIPROCESSOR 1 # 0 for single-processor, 1 formulti-processor
> NUMCPUVPS 3 # 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 200000 # Maximum number of locks
> BUFFERS 50000 # Maximum number of shared buffers
> NUMAIOVPS 12 # Number of IO vps
> PHYSBUFF 128 # Physical log buffer size (Kbytes)
> LOGBUFF 128 # Logical log buffer size (Kbytes)> LOGSMAX 100 # Maximum number of logical log files
> CLEANERS 33 # Number of buffer cleaner processes
> SHMBASE 0x0 # Shared memory base address
> SHMVIRTSIZE 900000 # initial virtual shared memory segmentsize
> SHMADD 32000 # Size of new shared memory segments
(Kbytes)
> SHMTOTAL 0 # Total shared memory (Kbytes).
0=>unlimited
> CKPTINTVL 3000 # Check point interval (in sec)
> LRUS 65 # Number of LRU queues
> LRU_MAX_DIRTY 80 # LRU percent dirty begin cleaning limit
> LRU_MIN_DIRTY 70 # 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 - Dynamic Server no longer supports this configuration
parameter.
> # To determine the page size used by Dynamic Server 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 workerthreads
>
> # 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 /u5/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 (Kb
> ytes)>
> # 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>
> # Informix Storage Manager variables
Here are my recommendations. However, you need to post the table schemas
and SET EXPLAIN output for any queries that seem slow in case we can help
there also. Meanwhile there are some tuning parameters you can adjust:
"jmorales@nettaxi.com" wrote:
>
> Hi Gurus,
>
> First of all thanks for the response.
>
> Here are the stats....
>
> -------------------------------------------------------------
> ROWS SIZE
> TABLE1 - 629649
> TABLE2 - 487323
> TABLE3 - 631455
>
> -------------------------------------------------------------
> onstat -c>
> Informix Dynamic Server Version 7.30.UC8 -- On-Line -- Up 03:35:05 -- 1018936
> Kbytes
>
> Configuration File: /u5/informix/etc/onconfig
> #**************************************************************************
> #
> # INFORMIX SOFTWARE, INC.
> #
> # Title: onconfig
> # Description: Informix Dynamic Server Configuration Parameters
> #
> #**************************************************************************
>
> # Root Dbspace Configuration
>
> ROOTNAME root1db # Root dbspace name
> ROOTPATH /dev/infbroot # Path for device containing root dbspace
> ROOTOFFSET 0 # Offset of root dbspace into device (Kbytes)
> ROOTSIZE 2000000 # 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 root1db # Location (dbspace) of physical log
> PHYSFILE 50000 # Physical log file size (Kbytes)
Normally having the physical log in ROOTDBS is deadly on performance but
for a DSS system like this one it should not have a huge effect.
>
> # Logical Log Configuration
>
> LOGFILES 40 # Number of logical log files
> LOGSIZE 8192 # Logical log size (Kbytes)>
> # Diagnostics
>
> MSGPATH /u5/informix/log/palawan1.log # System message log file path
> CONSOLE /dev/console # System console message path
> ALARMPROGRAM /u5/informix/etc/log_full.sh # Alarm program path> SYSALARMPROGRAM /u5/informix/etc/evidence.sh # System Alarm program path
> TBLSPACE_STATS 1
Turn TBLSPACE_STATS off (0) as this add much overhead.
> # System Archive Tape Device
>
> #TAPEDEV /dev/null # Tape device path
> TAPEDEV /dev/rmt/1m # Tape device path
> TAPEBLK 16 # Tape block size (Kbytes)
> TAPESIZE 24000000 # Maximum amount of data to put on tape (Kbytes)>
> # Log Archive Tape Device
>
> LTAPEDEV /dev/rmt/2m # Log tape device path
> LTAPEBLK 16 # Log tape block size (Kbytes)
> LTAPESIZE 24000000 # Max amount of data to put on log tape (Kbytes)>
> # Optical
>
> STAGEBLOB # Informix Dynamic Server/Optical staging area
>
> # System Configuration
>
> SERVERNUM 1 # Unique id corresponding to a Dynamic Server in> stance
> DBSERVERNAME jose1tcp # Name of default database server
> DBSERVERALIASES jose1ipc # List of alternate dbservernames
> NETTYPE ipcshm,2,70,NET # Configure poll thread(s) for nettype
Shared memory listeners should ALWAYS be allocated in CPU VPs and you should
use all of them for polling. Net VPs cannot block on shared memory when
idle as they do for TCP/IP connections so using them for shared memory
causes them to spin the CPUs and waste cycles the CPU VPs and AIO VPs need.
Make this:
NETTYPE ipcshm,3,70,CPU
> NETTYPE soctcp,9,70,NET # Configure poll thread(s) for nettype
> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed env.
> RESIDENT 1 # Forced residency flag (Yes = 1, No = 0)
>
> MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor
> NUMCPUVPS 3 # 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 200000 # Maximum number of locks
> BUFFERS 50000 # Maximum number of shared buffers
Not nearly enough buffers for a DSS system. I'd recommend AT LEAST 200,000!
> NUMAIOVPS 12 # Number of IO vps
Not enough AIO VPS. See my comments on the onstat -g iov report below.
> PHYSBUFF 128 # Physical log buffer size (Kbytes)
> LOGBUFF 128 # Logical log buffer size (Kbytes)
Buffers are too large for safety but on a DSS system it hardly matters.
> LOGSMAX 100 # Maximum number of logical log files
> CLEANERS 33 # Number of buffer cleaner processes
CLEANER >= LRUS! Change this to 65.
> SHMBASE 0x0 # Shared memory base address
> SHMVIRTSIZE 900000 # initial virtual shared memory segment size
> SHMADD 32000 # Size of new shared memory segments (Kbytes)
> SHMTOTAL 0 # Total shared memory (Kbytes). 0=>unlimited
> CKPTINTVL 3000 # Check point interval (in sec)
> LRUS 65 # Number of LRU queues
> LRU_MAX_DIRTY 80 # LRU percent dirty begin cleaning limit
> LRU_MIN_DIRTY 70 # LRU percent dirty end cleaning limit
On an OLTP system these would be too high but for DSS with few writes
they will do. Watch your checkpoint durations. If they get long decrease
the LRU_ parameters.
> 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 - Dynamic Server no longer supports this configuration parameter.
> # To determine the page size used by Dynamic Server 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 worker threads
> 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