Re: DSA TUNNING: SHARED MEMORY
Posted in 1998
Javier Puente wrote:
> =
> This is a multi-part message in MIME format.
> =
> --------------36FE63984788
> Content-Type: text/plain; charset=3Dus-ascii
> Content-Transfer-Encoding: 7bit
> =
> I folks, i would like to tunning DSA Shared Memory to get a better
> performance.
> I am using DSA 7.22 with Solaris 2.5.1 in Sun Sparc server 5 with just
> one processor.
> The machine uses 128 Mb of RAM.
> I have tried moving tha whole parameters of SHM :
> STACKSIZE
> SHMVIRTSIZE
> PHYSBUFF
> LOGBUFF
> BUFFERS
> SHMADD
> SHMTOTAL
> =
> I also modified some values in /etc/system:
> set shmsys:shminfo_shmmax=3D104857600
> set semsys:seminfo_semmap=3D64
> set semsys:seminfo_semmni=3D4096
> set semsys:seminfo_semmns=3D4096
> set semsys:seminfo_semmnu=3D4096
> set semsys:seminfo_semume=3D64
> set semsys:seminfo_semmsl=3D100
> set shmsys:shminfo_shmmin=3D100
> set shmsys:shminfo_shmmni=3D50
> set shmsys:shminfo_shmseg=3D100
> =
> altougt i am not sure in this last part. Anybody knows which are
> the best kernel parameters for this???
> =
> The special first probe is an INSERT of 10.000 records over a
> transactional database. I get around 145 seconds, that's my best time.
> =
> Any comment or help will really apreciated.
> =
> I am sending my onstat -a for aditional help.
> =
> THANKS IN ADVANCE
> =
> Javier Puente
> =
> --------------36FE63984788
> Content-Type: text/plain; charset=3Dus-ascii; name=3D"onstat"
> Content-Transfer-Encoding: 7bit
> Content-Disposition: inline; filename=3D"onstat"
> =
> INFORMIX-OnLine Version 7.22.UC1 -- On-Line -- Up 00:01:05 -- 44960 K=
bytes
> =
> Message Log File: /develop/informix7.22/online.msg
> =
> Mon Apr 6 22:31:30 1998
> =
> 22:31:30 Event alarms enabled. ALARMPROG =3D '/develop/informix7.22/e=
tc/log_full.sh'
> 22:31:31 DR: DRAUTO is 0 (Off)
> 22:31:34 INFORMIX-OnLine Initialized -- Shared Memory Initialized.
> 22:31:34 Physical Recovery Started.
> 22:31:34 Physical Recovery Complete: 0 Pages Restored.
> 22:31:34 Logical Recovery Started.
> 22:31:37 Logical Recovery Complete.> 0 Committed, 0 Rolled Back, 0 Open, 0 Bad Locks
> =
> 22:31:37 Onconfig parameter SHMADD modified from 8192 to 16000.
> 22:31:38 Dataskip is now OFF for all dbspaces
> 22:31:38 On-Line Mode
> 22:31:38 Checkpoint Completed: duration was 0 seconds.
> 22:32:01 (13) connection rejected - no calls allowed for cdraccept
> 22:32:01 listener-thread: err =3D -27002: No connections are allowed i=n OnLine quiescent mode.
> =
> Configuration File: /develop/informix7.22/etc/onconfig
> ROOTNAME rootdbs # Root dbspace name
> ROOTPATH /develop/informix7.22/DEV/chunk1> # Path for device containing root dbspa=
ce
> ROOTOFFSET 128 # Offset of root dbspace into device (K=
bytes)
> ROOTSIZE 80000 # Size of root dbspace (Kbytes)> MIRROR 0 # Mirroring flag (Yes =3D 1, No =3D 0)
> MIRRORPATH # Path for device containing mirrored r=oot
> MIRROROFFSET 0 # Offset into mirrored device (Kbytes)> PHYSDBS rootdbs # Location (dbspace) of physical log
> PHYSFILE 10000 # Physical log file size (Kbytes)
> LOGFILES 20 # Number of logical log files
> LOGSIZE 5000 # Logical log size (Kbytes)> MSGPATH /develop/informix7.22/online.msg # System message log f=
ile path
> CONSOLE /dev/console # System console message path
> ALARMPROGRAM /develop/informix7.22/etc/log_full.sh # Alarm program p=ath
> TAPEDEV /tmp/log # Tape device path
> TAPEBLK 20 # Tape block size (Kbytes)
> TAPESIZE 50000 # Maximum amount of data to put on tape=
(Kbytes)
> LTAPEDEV /tmp/log # Log tape device path
> LTAPEBLK 16 # Log tape block size (Kbytes)
> LTAPESIZE 50000 # Max amount of data to put on log tape=
(Kbytes)> STAGEBLOB # INFORMIX-OnLine/Optical staging area
> SERVERNUM 0 # Unique id corresponding to a OnLine i=nstance
> DBSERVERNAME alamos1 # Name of default database server
> DBSERVERALIASES alamos1_shm # List of alternate dbservernames
> NETTYPE ipcshm,5,10,CPU # Configure poll thread(s) for nettype
> NETTYPE tlitcp,5,10,NET # Configure poll thread(s) for nettype
You just have one procesor , so you must have :
NETTYPE upchsm,1,50,CPU =3D> just one CPU vp
NETTYPE tlitcp,1,50,NET =3D> here i=B4m not sure but i think the same
> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distribu=
ted env.
> RESIDENT 0 # Forced residency flag (Yes =3D 1, No =
=3D 0)
> MULTIPROCESSOR 0 # 0 for single-processor, 1 for multi-p=rocessor
> NUMCPUVPS 1 # Number of user (cpu) vps
> SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps =to one
> NOAGE 0 # Process aging
> AFF_SPROC 0 # Affinity start processor
> AFF_NPROCS 0 # Affinity number of processors
> LOCKS 15000 # Maximum number of locks
Too many locks , locks means resources , so ...
> BUFFERS 16000 # Maximum number of shared buffers
I=B4ll try 20000 at least
> NUMAIOVPS # Number of IO vps
> PHYSBUFF 64 # Physical log buffer size (Kbytes)
> LOGBUFF 64 # Logical log buffer size (Kbytes)> LOGSMAX 100 # Maximum number of logical log files
> CLEANERS 1 # Number of buffer cleaner processes
one per disk where you have your d.b
> SHMBASE 0xa000000 # Shared memory base address
> SHMVIRTSIZE 8192 # initial virtual shared memory segment=
size
> SHMADD 16000 # Size of new shared memory segments (K=
bytes)
SHMVIRTSIZE , is the initial so make it bigger and the next (SHMADD)
make smaller
> SHMTOTAL 96000 # Total shared memory (Kbytes). 0=3D>un=limited
> CKPTINTVL 300 # Check point interval (in sec)
> LRUS 8 # Number of LRU queues
> LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limi=t
> LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit
LRU_MAX-DIRTY 15
LRU_MIN_DIRTY 5 =3D> if you checkpoint is too much bigger someone
will look for your head!!! . Put you LRU PARAMETER smaller
> LTXHWM 50 # Long transaction high water mark perc=entage
> LTXEHWM 60 # Long transaction high water mark (exc=
lusive)
> TXTIMEOUT 0x12c # Transaction timeout (in sec)
> STACKSIZE 32 # Stack size (Kbytes)
> OFF_RECVRY_THREADS 10 # D