Re: Question: Online 7.14 not shutting dwn completly
Posted in 1998
In article <r9fV1.100$yU.305044@newse1.midsouth.rr.com>, Carlos Bolden
<cbolden1@midsouth.rr.com> writes
>Hi All,
>
> I have a problem. We have a system at work ( NCR 3555 running Informix
>ODS 7.14, TOPEND 02.02.02.00 with a serious application built for it. 186gig
>of dataspace mirrored, and in need of some serious DB maintenance, 2 gig of
>ram and 16 pentium 133 processors, running NCR MP-RAS 3.00.02, Symbios disk
>arrays running Raid 5, )
>that has a nasty problem of:
>
>A) During shutdown, informix removes all shared memory segments, seemingly
>frees all memory ( We nail memory on this system for better performance )
>but there are lagging oninit session hanging around on the system ( We
>press this system really realy hard and it does a lot of IPC ) with it's
>children in a zombie state.
>
What do the timestamps in online.log say? Perhaps it is still
checkpointing. Children in zombie mean the parent has not done a wait
for them yet. Perhaps the CPU is hit so hard that the parent does not
get scheduled for some time?
>B) In turn, Memory seems to slowly but surely creep away as the virtual
>portion of informix memory slowly gets larger. They ( informix
>consultants ) have said that there is a problem with the 'like' and 'as'
>keywords and we have 5500 or so occurences of theses keywords built into
>some of the primatives that we have defined.
>
What does onmode -F do? Does it help?
>C) What's even weirder is that when he marks the instance as being stopped,
>Memory is not totally freed on the system. A large portion of swap ( shared
>memory ) and real memory ( backing store ) is slowly being freed it
>eventuallt frees itself after about 45 minutes but it is very annoying
>especially trying to schedule work to be done on this system during system
>downtime.
>
Sounds like the memory is freed but only gets reused over time.
Probably an NCR virtual memory optimization.
>D) Understaning that NCR memory is not on a 4 meg boundary, the phisyscal
>ram chips are proprietary ( 246 meg on a chip or somthing like that ),
>memory can potentially become very fragmented especially doing A LOT OF
>INTERPROCESS COMUNICATION. AT ANY ONE TIME, WE MAY HAVE UPWARDS OF 500
>PROCESSES OR SO WITH A DATABASE CONNECTION AT LEAST 20 CURSORS OPEN AT ANY
>ONE TIME DOING WORK. ( SOME OF THESE PROCESSES GET PUT INTO THE REALTIME
>CLASS AND DO WORK IN MEMORY!!! )
>
Periodic onmode -F may help.
>
>My questions are:
>
>1) How can I prevent the system from hanging after about 3 days of pounding
>the snot out of the system
> ( upgrade 7.3UC5 I know this and it is not an easy process )
>
How do you mean hanging? What does onstat -a say (truncate the full
listing of buffers as that is usually a large chunk of it and is pretty
meaningless unless you are tracing buffer problems).
>2) Is it true of a memory leak with 'like' and 'as', and how without
>recoding database primatives can we get around this?
>
>Here is our onconfig settings
>
>INFORMIX-OnLine Version 7.14.U -- On-Line -- Up 1 days 17:13:56 --
>697984 Kbytes
>
># Root Dbspace Configuration
>
>ROOTNAME rootdbs # Root dbspace name>ROOTPATH /dev/prodi/prod-100 # Path for device containing root
>dbspace
>ROOTOFFSET 0 # Offset of root dbspace into device
>(Kbytes)
>ROOTSIZE 50000 # Size of root dbspace (Kbytes)>
># Disk Mirroring Configuration Parameters
>
>MIRROR 1 # Mirroring flag (Yes = 1, No = 0)
>MIRRORPATH /dev/prodi/prod-100m # Path for device containing mirrored
>root
>MIRROROFFSET 0 # Offset into mirrored device (Kbytes)>
># Physical Log Configuration
>
>PHYSDBS physlog # Location (dbspace) of physical log
>PHYSFILE 200000 # Physical log file size (Kbytes)>
># Logical Log Configuration
>
>LOGFILES 40 # Number of logical log files
>LOGSIZE 1000 # Logical log size (Kbytes)>
># Diagnostics
>MSGPATH /opt/informix/logs/patron.log
># System message log file path
>CONSOLE /opt/informix/logs/patron.con
># System console message path
>ALARMPROGRAM # Alarm program path>
># System Archive Tape Device
>
>TAPEDEV /dev/prodi/archive_tape # Tape Device path
>TAPEBLK 32 # Tape block size (Kbytes)
>TAPESIZE 35000000 # Maximum amount of data to put on tape
>(Kbytes)>
>
># Log Archive Tape Device
>
>LTAPEDEV /dev/prodi/log_tape # Log tape device path
>LTAPEBLK 32 # Log tape block size (Kbytes)
>LTAPESIZE 8000000 # Max amount of data to put on log tape
>(Kbytes)>
># Optical
>
>STAGEBLOB # INFORMIX-OnLine/Optical staging area
>
># System Configuration
>
>SERVERNUM 1 # Unique id corresponding to a OnLine>instance
>DBSERVERNAME patron # Name of default database server>DBSERVERALIASES patron_net,privpdb_net # List of alternate dbservernames
>DEADLOCK_TIMEOUT 300 # 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 9 # 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
try setting these to pin the CPU VPs. How many cpus do you have?
># Shared Memory Parameters
>
>LOCKS 300000 # Maximum number of locks
>BUFFERS 40000 # Maximum number of shared buffers
>NUMAIOVPS 1 # Number of IO vps
KAIO is in use, right?
>PHYSBUFF 512 # Physical log buffer size (Kbytes)
>LOGBUFF 32 # Logical log buffer size (Kbytes)>LOGSMAX 50 # Maximum number of logical log files
>CLEANERS 32 # Number of buffer cleaner processes
>SHMBASE 0x40000000 # Shared memory base address
>SHMVIRTSIZE 589824 # initial virtual shared memory segment size
>SHMADD 65536 # Size of new shared memory segments
>(Kbytes)
>SHMTOTAL 839680 # Total shared memory (Kbytes). 0=>unlimited
>CKPTINTVL 300 # Check point interval (in sec)
>LRUS 32 # Number of LRU queues
>LRU_MAX_DIRTY 5 # LRU percent dirty begin cleaning limit
>LRU_MIN_DIRTY 3 # LRU percent dirty end cleaning limit
>LTXHWM 40 # Long transaction high water mark>percentage
>LTXEHWM 50 # Long transaction high water mark
>(exclusive)
>TXTIMEOUT 0x12c # Transaction timeout (in sec)
>STACKSIZE 32 # Stack size (Kbytes)>
># Syste