Re: DSA TUNNING: SHARED MEMORY
Posted in 1998
In article <353152E7.5C5E6B46@arrakis.es>, MARTIN <ramp@arrakis.es>
writes
>Javier Puente wrote:
>>
>> This is a multi-part message in MIME format.
>>
>> --------------36FE63984788
>> Content-Type: text/plain; charset=us-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=104857600
>> set semsys:seminfo_semmap=64
>> set semsys:seminfo_semmni=4096
>> set semsys:seminfo_semmns=4096
>> set semsys:seminfo_semmnu=4096
>> set semsys:seminfo_semume=64
>> set semsys:seminfo_semmsl=100
>> set shmsys:shminfo_shmmin=100
>> set shmsys:shminfo_shmmni=50
>> set shmsys:shminfo_shmseg=100
>>
>> 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=us-ascii; name="onstat"
>> Content-Transfer-Encoding: 7bit
>> Content-Disposition: inline; filename="onstat"
>>
>> INFORMIX-OnLine Version 7.22.UC1 -- On-Line -- Up 00:01:05 -- 44960 Kbytes
>>
>> Message Log File: /develop/informix7.22/online.msg
>>
>> Mon Apr 6 22:31:30 1998
>>
>> 22:31:30 Event alarms enabled. ALARMPROG = '/develop/informix7.22/etc/log_fu
>ll.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 = -27002: No connections are allowed in 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 dbspace
>> ROOTOFFSET 128 # Offset of root dbspace into device (Kbytes)
>> ROOTSIZE 80000 # Size of root dbspace (Kbytes)>> MIRROR 0 # Mirroring flag (Yes = 1, No = 0)
>> MIRRORPATH # Path for device containing mirrored root
>> 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 file
>path
>> CONSOLE /dev/console # System console message path
>> ALARMPROGRAM /develop/informix7.22/etc/log_full.sh # Alarm program path
>> 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 instance
>> 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 => just one CPU vp
> NETTYPE tlitcp,1,50,NET => here i'm not sure but i think the
>same
>
>
>
>> DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed
>env.
>> RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
>> MULTIPROCESSOR 0 # 0 for single-processor, 1 for multi->processor
>> NUMCPUVPS 1 # Number of user (cpu) vps
>> SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to one Set this to 1 if you only have one CPU VP
>> NOAGE 0 # Process aging Try setting this to 1 as well.
>> AFF_SPROC 0 # Affinity start processor
>> AFF_NPROCS 0 # Affinity number of processors
Try 1 and 1 for these.
>> LOCKS 15000 # Maximum number of locks>
> Too many locks , locks means resources , so ...
>
1 Lock = 43 bytes, hardly any resources. Besides you need enough locks
and 15000 is nothing, I run with 200,000.
>> BUFFERS 16000 # Maximum number of shared buffers>
> I'll try 20000 at least
>
This would help. Run
sar -p 1 1
and check you are not paging though!
Also run
sar -u 1 1
and check %sys is low or else you may be swapping.
>> 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
>
Agreed, increase this.
>> SHMBASE 0xa000000 # Shared memory base address
>> SHMVIRTSIZE 8192 # initial virtual shared memory segment size
>> SHMADD 16000 # Size of new shared memory segments (Kbytes)>
> SHMVIRTSIZE , is the initial so make it bigger and the next (SHMADD)
>make smaller
>
Yes, you should have only one segment of class V i.e. one virtual
segment.
>
>> SHMTOTAL 96000 # Total shared memory (Kbytes). 0=>unlimited
>> CKPTINTVL 300 # Check point interval (in sec)
>> LRUS 8 # Number of LRU queues
>> LRU_MAX_DIRTY 60 # LRU