Best way to config OWS on SCO box
Posted in 1999
Topics: Performance & Tuning, Storage & Space Management, Connectivity: ESQL/C, 4GL & Embedded SQL, Server Administration, Transactions, Locking & Isolation, Logging & Checkpoints, Networking & sqlhosts Configuration
Howdy,
We are running SCO 5.0.4 on a 4-way (P200) Intel DG AV/3600
Running RAID5 (yes Art, I know this is bad) w/100+ users using 4GL based
OE/IC/AR/etc.
I have tried to "tune" the config for OLTP per suggestions from this
newgroup over the years and the good news is that is runs OK most of the
time...but I feel that it should be better than OK. Should I expect "good"
performance on this box w/OWS?
I do not want to do anything major at this point (even if I could take the
system down!) because we are buying a bigger/faster server next week, so any
help ya'll can give me that is "quick and dirty" to make the users happy
until I can setup the new server would be great!
Of course any suggestions for my new server (4-way Xeon 550s) setup (I know
my logs are too big, etc.) would be great also!
Thanks,
Steve
Details below:
$ onstat -p
INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 18:28:49 -- 112616
Kbytes
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
3086067 4180218 119925341 97.43 153417 253147 656013 76.61
isamtot open start read write rewrite delete commit
rollbk
20515282 455288 1903144 10703740 230826 69360 91159 51334 51
ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
0 0 0 5251.65 1278.36 18 54
bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
474976 87 28812323 0 0 35 25181 107350
ixda-RA idx-RA da-RA RA-pgsused lchwaits
1786162 34335 741556 2541548 16452
$ onstat -m
INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 18:29:10 -- 112616
Kbytes
Message Log File: /inxsys/informix/etc/online.log
06:27:39 Logical Log 360 Complete.
06:39:33 Checkpoint Completed: duration was 3 seconds.
07:25:04 Checkpoint Completed: duration was 4 seconds.
08:10:33 Checkpoint Completed: duration was 2 seconds.
08:56:03 Checkpoint Completed: duration was 2 seconds.
09:36:17 Logical Log 361 Complete.
09:41:38 Checkpoint Completed: duration was 6 seconds.
10:27:09 Checkpoint Completed: duration was 3 seconds.
11:00:31 Checkpoint Completed: duration was 4 seconds.
11:25:19 Checkpoint Completed: duration was 5 seconds.
12:08:00 Checkpoint Completed: duration was 4 seconds.
12:38:12 Logical Log 362 Complete.
12:53:11 Checkpoint Completed: duration was 5 seconds.
13:38:19 Checkpoint Completed: duration was 4 seconds.
14:06:01 Checkpoint Completed: duration was 5 seconds.
14:35:52 Checkpoint Completed: duration was 7 seconds.
15:07:35 Checkpoint Completed: duration was 4 seconds.
15:23:21 Logical Log 363 Complete.
15:36:22 Checkpoint Completed: duration was 5 seconds.
$ onstat -F
INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 18:30:37 -- 112616
Kbytes
Fg Writes LRU Writes Chunk Writes
9 102908 1633
address flusher state data
11c38448 0 I 0 = 0X0
11c3887c 1 I 0 = 0X0
11c38cb0 2 I 0 = 0X0
11c390e4 3 I 0 = 0X0
11c39518 4 I 0 = 0X0
11c3994c 5 I 0 = 0X0
11c39d80 6 I 0 = 0X0
11c3a1b4 7 I 0 = 0X0
11c3a5e8 8 I 0 = 0X0
11c3aa1c 9 I 0 = 0X0
11c3ae50 10 I 0 = 0X0
11c3b284 11 I 0 = 0X0
11c3b6b8 12 I 0 = 0X0
11c3baec 13 I 0 = 0X0
11c3bf20 14 I 0 = 0X0
11c3c354 15 I 0 = 0X0
states: Exit Idle Chunk Lru
Here is my config:
#**************************************************************************
#
# INFORMIX SOFTWARE, INC.
#
# Title: onconfig.ows
# Description: INFORMIX-OnLine Configuration Parameters
#
#**************************************************************************
# Root Dbspace Configuration
ROOTNAME rootdbs # Root dbspace nameROOTPATH dev/data/ROOTDATA.DS
ROOTOFFSET 0 # Offset of root dbspace into device
(Kbytes)
ROOTSIZE 300000 # Size of root dbspace (Kbytes)
# Disk Mirroring Configuration Parameters
MIRROR 0 # Mirroring flag (Yes = 1, No = 0)
MIRRORPATH /data2/IFMXDATA/pcca/ROOTMIRR.000
MIRROROFFSET 0 # Offset into mirrored device (Kbytes)
# Physical Log Configuration
PHYSDBS rootdbs # Location (dbspace) of physical log
PHYSFILE 5000 # Physical log file size (Kbytes)
# Logical Log Configuration
LOGFILES 9 # Number of logical log files
LOGSIZE 18000 # Logical log size (Kbytes)
# Diagnostics
MSGPATH /inxsys/informix/etc/online.log # System message log file
path
CONSOLE /dev/tty02 # System console message path
ALARMPROGRAM /inxsys/informix/etc/log_full.sh # Alarm program path
# System Archive Tape Device
TAPEDEV /dev/rStp0
TAPEBLK 20 # Tape block size (Kbytes)
TAPESIZE 3999999 # Maximum amount of data to put on tape
(Kbytes)
# Log Archive Tape Device
LTAPEDEV /dev/null
LTAPEBLK 20 # Log tape block size (Kbytes)
LTAPESIZE 3999999 # Max amount of data to put on log tape
(Kbytes)
# Optical
STAGEBLOB # INFORMIX-OnLine/Optical staging area
# System Configuration
SERVERNUM 0 # Unique id corresponding to a OnLineinstance
DBSERVERNAME pcca # Name of default database server
DBSERVERALIASES pcca_shm # List of alternate dbservernames
NETTYPE tlitcp,1,150,NET
NETTYPE ipcshm,1,150,CPU
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 formulti-processor
NUMCPUVPS 1 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps toone
NOAGE 0 # Process aging
AFF_SPROC 0 # Affinity start processor
AFF_NPROCS 0 # Affinity number of processors
# Shared Memory Parameters
LOCKS 20000 # Maximum number of locks
BUFFERS 10240 # Maximum number of shared buffers
NUMAIOVPS # Number of IO vps
PHYSBUFF 32 # Physical log buffer size (Kbytes)
LOGBUFF 32 # Logical log buffer size (Kbytes)LOGSMAX 32 # Maximum number of logical log files
CLEANERS 16 # Number of buffer cleaner processes
SHMBASE 0x10000000L # Shared memory base address
SHMVIRTSIZE 88000 # initial virtual shared memory segm
Thanks for all the help so far...I have changed my config per suggestions
and here are the output of requested stats...see --- below...new stats at
end...
Steve
From Obnoxio The Clown post:
>This probably means you need more LRUS.
--- I increased to 32, but I did not "see" any improvement...
># Shared Memory Parameters
>BUFFERS 10240 # Maximum number of shared buffers
This is *very*, *very* low. Try 100K--- I increased to 100K, but my check point times jumped way too high!
--- I reset to 25000 so my checkpoints are OK now...
>NUMAIOVPS # Number of IO vpsAre you using KAIO? Might want to up this if not. What is the output from
--- changed to NUMAIOVPS 12 (do i need more?)
onstat -g iov
--- here it is...
$ onstat -g iov
INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 3 days 17:32:18 --
144600 Kbytes
AIO I/O vps:
class/vp s io/s totalops dskread dskwrite dskcopy wakeups io/wup
msc 0 i 0.1 24852 0 0 0 24838 1.0
aio 0 i 4.6 1480661 1414882 65754 0 1392242 1.1
aio 1 i 3.5 1138733 1063968 74758 0 1061344 1.1
aio 2 i 2.7 872028 792989 79038 0 805819 1.1
aio 3 i 2.2 716394 643333 73061 0 656672 1.1
aio 4 i 1.8 584057 528454 55603 0 528719 1.1
aio 5 i 1.5 491533 449200 42333 0 439254 1.1
aio 6 i 1.3 419443 383697 35746 0 369992 1.1
aio 7 i 1.1 351917 321838 30079 0 305334 1.2
aio 8 i 0.9 286635 262767 23868 0 241964 1.2
aio 9 i 0.7 227930 207476 20454 0 182817 1.2
aio 10 i 0.6 180941 162091 18850 0 134779 1.3
aio 11 i 0.5 148197 129891 18306 0 100140 1.5
pio 0 i 0.1 30290 0 30290 0 30291 1.0
lio 0 i 0.3 108993 0 108993 0 108993 1.0
>PHYSBUFF 32 # Physical log buffer size (Kbytes)
>LOGBUFF 32 # Logical log buffer size (Kbytes)
Need to see onstat -l.
---
$ onstat -l
INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 3 days 17:33:59 --144600 Kbytes
Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-2 2 16 118038 30298 3.90%
phybegin physize phypos phyused %used
114887 4000 231 1387 34.67
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-3 0 16 1482670 132189 109028 11.2 1.2
address number flags uniqid begin size used %used
101da6bc 1 U-B---- 397 10080f 9000 9000 100.00%
101da6d8 2 U-B---- 398 102b37 9000 9000 100.00%
101da6f4 3 U-B---- 399 104e5f 9000 9000 100.00%
101da710 4 U---C-L 400 107187 9000 6109 67.88%
101da72c 5 U-B---- 392 1094af 9000 9000 100.00%
101da748 6 U-B---- 393 10b7d7 9000 9000 100.00%
101da764 7 U-B---- 394 10daff 9000 9000 100.00%
101da780 8 U-B---- 395 10fe27 9000 9000 100.00%
101da79c 9 U-B---- 396 11214f 9000 9000 100.00%
>LOGSMAX 32 # Maximum number of logical log files
>CLEANERS 16 # Number of buffer cleaner processesI like CLEANERS 1 bigger than LRUS, and I avoid LRUS which are a power of 2.
--- I changed CLEANERS / LRUS to 32...
># OPTCOMPIND
>OPTCOMPIND 2 # To hint the optimizer*Maybe* 0 will give you better performance in an OLTP environment.
--- Done
NEW stuff for reference:
$ onstat -p
INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 3 days 17:40:00 --144600 Kbytes
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
14989703 15966692 404590286 96.30 687164 953387 3055013 77.51
isamtot open start read write rewrite delete commit
rollbk
97672841 1716944 7900681 57344230 1369399 255817 391312 159056 418
ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
0 0 0 20570.52 4668.87 74 246
bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
1664018 128 136267510 0 0 140 88356 419140
ixda-RA idx-RA da-RA RA-pgsused lchwaits
5888366 36490 7299546 13193098 54738
$ onstat -m
INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 3 days 17:40:20 --
144600 Kbytes
Message Log File: /inxsys/informix/etc/online.log
16:26:57 Checkpoint Completed: duration was 4 seconds.
17:12:29 Checkpoint Completed: duration was 4 seconds.
17:17:59 Logical Log 398 Complete.
17:58:02 Checkpoint Completed: duration was 4 seconds.
18:43:33 Checkpoint Completed: duration was 3 seconds.
20:02:08 Checkpoint Completed: duration was 6 seconds.
20:13:52 Checkpoint Completed: duration was 7 seconds.
20:59:13 Checkpoint Completed: duration was 4 seconds.
22:16:39 Logical Log 399 Complete.
22:30:12 Checkpoint Completed: duration was 4 seconds.
23:15:41 Checkpoint Completed: duration was 2 seconds.
Thu Jan 6 00:01:09 2000
00:01:09 Checkpoint Completed: duration was 0 seconds.
06:50:13 Checkpoint Completed: duration was 1 seconds.
07:35:43 Checkpoint Completed: duration was 2 seconds.
08:21:14 Checkpoint Completed: duration was 4 seconds.
09:06:48 Checkpoint Completed: duration was 4 seconds.
09:51:53 Checkpoint Completed: duration was 4 seconds.
Let me know if anything else would be helpful!!!
Thanks
--
Steven L Cooper
Hi Stephen
Some observations - I hope they are useful.
Your Onconfig is set to UNI-Processor mode and is therefore completely
underutilising your 4CPU's. You are also running local 4GL process so give
the server 2-3 CPUVPS as per below:
MULTIPROCESSOR 1 # 0 for single-processor, 1 for multi-processor
NUMCPUVPS 2 # Number of user (cpu) vps
SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to
Your buffer pool is almost exclusivly filled with non-dirty pages because
the watermarks are so low. Raise the watermarks so that cleaning is less
frequent. You have unbuffered logs, so there is no exposure to having a
large no of dirty pages in the buffer pool (LRU Modified Queues).
LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaninglimit
LRU_MIN_DIRTY 50 # LRU percent dirty end cleaninglimit
Ensure that Informix's shared memory is not being paged out so lock it in
physical RAM as below:
RESIDENT 1 #Informix Shared Memory neverswapped/paged out
Your checkpoints are spaced too far appart. Try 5-10 minutes. I know that
your existing LRU parameters ensure that little cleaning actually happens
during your check points, but your are loosing the benefit of having a
reasonable number of modified pages in the buffer pool.
CKPTINTVL 600 #10min check point intervals
This is an essential change to all informix installations. It ensures that
the server never enters the last available log. Transactions will just
freeze until you do a log backup( Blocked LBU). SELECTS will continue to
run. This however is irrelivent if you have LTAPEDEV set to /dev/null,
because the server will overwrite used logs unless there are open
transactions in them.
LBU_PRESERVE 1
Also try setting OPTCOMIND to 0 (the older, simpler, but sometimes faster
optimiser). Also ensure that all your local 4GL process (.4ge's or fglgo's)
are using INFORMSERVER=pcca_shm, which you have specified is served by
threads in the CPU VP (reduces Unix context switches). Also 4GL to SERVER
messages are must faster using ICPSHM than TCP.
Hope these are help full. I have 2 CPU SCO servers supporting 180million
transactions a year.
Regards
Noel Griffin
Ireland
Steven L Cooper <scooper@thecompounders.com> wrote in message
news:5xaa4.23$MI.2745@nnrp2.rcsntx.swbell.net...
> Howdy,
> We are running SCO 5.0.4 on a 4-way (P200) Intel DG AV/3600
> Running RAID5 (yes Art, I know this is bad) w/100+ users using 4GL based
> OE/IC/AR/etc.
>
> I have tried to "tune" the config for OLTP per suggestions from this
> newgroup over the years and the good news is that is runs OK most of the
> time...but I feel that it should be better than OK. Should I expect
"good"
> performance on this box w/OWS?
>
> I do not want to do anything major at this point (even if I could take the
> system down!) because we are buying a bigger/faster server next week, so
any
> help ya'll can give me that is "quick and dirty" to make the users happy
> until I can setup the new server would be great!
>
> Of course any suggestions for my new server (4-way Xeon 550s) setup (I
know
> my logs are too big, etc.) would be great also!
>
> Thanks,
> Steve
>
> Details below:
> $ onstat -p>
> INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 18:28:49 -- 112616
> Kbytes
>
> Profile
> dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
> 3086067 4180218 119925341 97.43 153417 253147 656013 76.61
>
> isamtot open start read write rewrite delete commit
> rollbk
> 20515282 455288 1903144 10703740 230826 69360 91159 51334 51
>
> ovlock ovuserthread ovbuff usercpu syscpu numckpts flushes
> 0 0 0 5251.65 1278.36 18 54
>
> bufwaits lokwaits lockreqs deadlks dltouts ckpwaits compress seqscans
> 474976 87 28812323 0 0 35 25181 107350
>
> ixda-RA idx-RA da-RA RA-pgsused lchwaits
> 1786162 34335 741556 2541548 16452
>
> $ onstat -m>
> INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 18:29:10 -- 112616
> Kbytes
>
> Message Log File: /inxsys/informix/etc/online.log
>
> 06:27:39 Logical Log 360 Complete.
> 06:39:33 Checkpoint Completed: duration was 3 seconds.
> 07:25:04 Checkpoint Completed: duration was 4 seconds.
> 08:10:33 Checkpoint Completed: duration was 2 seconds.
> 08:56:03 Checkpoint Completed: duration was 2 seconds.
> 09:36:17 Logical Log 361 Complete.
> 09:41:38 Checkpoint Completed: duration was 6 seconds.
> 10:27:09 Checkpoint Completed: duration was 3 seconds.
> 11:00:31 Checkpoint Completed: duration was 4 seconds.
> 11:25:19 Checkpoint Completed: duration was 5 seconds.
> 12:08:00 Checkpoint Completed: duration was 4 seconds.
> 12:38:12 Logical Log 362 Complete.
> 12:53:11 Checkpoint Completed: duration was 5 seconds.
> 13:38:19 Checkpoint Completed: duration was 4 seconds.
> 14:06:01 Checkpoint Completed: duration was 5 seconds.
> 14:35:52 Checkpoint Completed: duration was 7 seconds.
> 15:07:35 Checkpoint Completed: duration was 4 seconds.
> 15:23:21 Logical Log 363 Complete.
> 15:36:22 Checkpoint Completed: duration was 5 seconds.>
> $ onstat -F>
> INFORMIX-OnLine Version 7.20.UC2 -- On-Line -- Up 18:30:37 -- 112616
> Kbytes
>
>
> Fg Writes LRU Writes Chunk Writes
> 9 102908 1633
>
> address flusher state data
> 11c38448 0 I 0 = 0X0
> 11c3887c 1 I 0 = 0X0
> 11c38cb0 2 I 0 = 0X0
> 11c390e4 3 I 0 = 0X0
> 11c39518 4 I 0 = 0X0
> 11c3994c 5 I 0 = 0X0
> 11c39d80 6 I 0 = 0X0
> 11c3a1b4 7 I 0 = 0X0
> 11c3a5e8 8 I 0 = 0X0
> 11c3aa1c 9 I 0 = 0X0
> 11c3ae50 10 I 0 = 0X0
> 11c3b284 11 I 0 = 0X0
> 11c3b6b8 12 I 0 = 0X0
> 11c3baec 13 I 0 = 0X0
> 11c3bf20 14 I 0 = 0X0
> 11c3c354 15 I 0 = 0X0
> states: Exit Idle Chunk Lru
>
> Here is my config:
>
#**************************************************************************
> #
> # INFORMIX SOFTWARE, INC.
> #
> # Title: onconfig.ows
> # Description: INFORMIX-OnLine Configuration Parameters
> #
>
#**************************************************************************
>
> # Root Dbspace Configuration
>
> ROOTNAME rootdbs # Root dbspace name> ROOTPATH dev/data/ROOTDATA.DS
> ROOTOFFSET 0 # Offset of root dbspace into device
> (Kbytes)
> ROOTSIZE 300000 # Size of root dbspace (Kbytes)>
> # Disk Mirroring Configuration Parameters
>
> MIRROR 0 # Mi