Printing a chapter of the performance manual:
Performance Guide ->
Chapter 1: What determines performance ->
Chapter 1 ->
Entire chapter assembled for printing
renice -t allows you to restore the original value.
show what each cpu is doing
mpstat
show which drivers are threaded
mthread
show which cpus can handle which interrupts
displayintr
sar
Enable sar
log in as root and run the command
/usr/lib/sa/sar_enable -y
and then reboot.
The command changes comments in /etc/rc2.d/P21perf and root's crontab.
%rcache (sar -b)
< 90-95% needs more NBUFs
%wcache (sar -b)
< 65% needs more NBUFs
%busy > 80% and avque >> 1 (sar -d)
high means i/o bottleneck
avque (sar -d)
> 1 means too many pending i/o requests
ovsiohw/s (sar -g)
> 0 means serial i/o overruns
upgrade to a smart multiport or a network terminal concentrator
ovsiodma/s (sar -g)
> 0 means serial driver dropping input due to lack of receiver cache
increase NCLIST and TTHOG
ovclist/s (sar -g)
> 0 means serial driver ran out of character buffers
increase NCLIST
slpcpybufs/s (sar -B), ompb/s (sar -h), sdmabuf/s (sar -h)
> 0 means too few physical buffers (NUMPBUF)
increase NUMPBUF by at least NUMPBUF * the sum
(slpcpybufs/s) / (4 * cpybufs/s) +
(4 * ompb/s) / (mpbuf/s) +
(sdmabuf/s) / (dmabuf/s)
hit % (sar -n)
< 65% means too small namei cache (CACHEENTS and HASHQS)
%runocc (mpsar -q)
> 90% means run queue is continually occupied due to high cpu load
swpq-sz and %swpocc (sar -q)
swpq-sz > 0 or %swpocc > 20% means ready-to-run processes swapped out
runq-sz (sar -q)
> 2 means too many processes for the cpu
rclm/s (sar -q)
> 0 means swapping or paging
freemem (sar -r)
near GPGSHI with freeswp constant means page stealing active
want freemem >> GPGSHI
oreqblk/s (sar -S)
times per sec processes put to sleep due to lack of scsi request blocks
> 0 means to increase SDSKOUT by at least
SDKSOUT * (oreqblk/s) / (reqblk/s)
%idle (sar -u)
< 5% is cpu bound, < 20% could be problem
%wio (sar -u)
> 15% is i/o bound
%sys >> %user and %idle near 0 (sar -u)
system is paging
ov (sar -v)
> 0 means overflows of kernel parameters
set the tables to 0 to allow dynamic growth
swpot/s and bswot/s (sar -w)
> 0 means processes were swapped out
swap -l
free < 50% blocks means many processes swapped out
df -v
%used > 90% means possible fragmentation
X Windows
enable backing store on X servers
enable save-unders on X servers
set NSTREAM >= 4 * (number of X clients + servers)
set NSTRPAGES >= 125 * (1 + number of X terminals)
set NUMSP (stream pipes) >= 2 * (number of X clients + servers)
netstat -i
Ierrs, Oerrs or Collis large means the network is overload
Collis > 10% pkts is bad
netstat -m
failures means NSTREAM and NSTRPAGES need increasing
netstat -s -p udp
streams allocation failures > 0 indicates a streams shortage
netstat -m; ps -ef | grep nfsd
streams failures and all nfsd processes busy at once indicates
too few nfsd processes for the NFS load,
and the queued NFS requests are consuming all of the streams memory.
increase the number of processes on the nfsd command line in /etc/nfs
nfsstat -c
badxid > 0 and about equal to retrans means the server is not keeping
up with the client, fix by adding more nfsd processes
nfsstat -c; ps -ef | grep biod
wait of 0 and the cpu time of at least one biod is much less than the others
means enough biod processes are running
high cpu time for all biod processes means more biod processes needed
biod runs on the client for read-ahead and write-behind
nfsstat -s
badlen > 0 or xdrcall > 0 means the network is corrupting packets
rwhod
commented out in /etc/tcp by default to reduce load
vmstat -s
large values for
pages on swap, success in swapping out a process,
success in swapping in a process,
swapping out a region or swapping in a region
means too much swapping
top
top shows the processes getting the most cpu time
check the cpu stats
a high user percentage shows that the system is cpu-bound
a high system or wait percentage shows that the system is io-bound
check the amount of free memory
there should be a few MB of free memory
check for run-away processes taking all of the free cpu time
check for processes that are consuming large amounts of memory
SIZE is the amount of virtual memory allocated to the process,
including code and data space
RES is the amount of physical memory currently used by the process
RSS (on some versions of top) is the amount of physical memory
currently used by the process, including shared libraries
SHARE (on some versions of top) is the amount of shared memory
currently used by the process
type a "?" inside top to see the different options
You can download a top binary for SCO from ftp://ftp.newspapersystems.com/pub/binaries/sco/
monitor
monitor has several screen that show system parameters
the User Process Monitor screen and the Top CPU Process Monitor screens
let you type the letter of a process to view more information about it
You can download the monitor program from ftp://ftp.newspapersystems.com/pub/binaries/
To relink the kernel
from a command line
cd /etc/conf/cf.d; ./configure
and then if you need to relink, continue with
./link_unix
from a SCO OpenServer system shell
/usr/bin/scoadmin
from a SCO Unix 3.2v4 system shell
/usr/bin/sysadmsh
kernel
NBUF = 1 KB buffers, def = 10% of RAM
NHBUFS = num hash buffers = NBUF / 2, def = largest power of 2 >= NBUF / 2
with SCO MP, def = largest power of 2 >= 2 * NBUF to avoid contention
PLOWBUFS = buffer cache in first 16 MB or RAM, set to 100 if possible
1-100, def = 30
In /usr/adm/messages for a driver, if fts= has a "d" the controller
is 32 bit, otherwise it is 24 bit and requires an extra copy to process
data in high buffers.
NUMPBUF = 16 KB buffers used to prepare scatter/gatter requests
On Sdsk devices, fts=xxsx, the "s" means support for scatter/gather.
NAUTOP = seconds to keep a delayed-write buffer in cache, 0-60, def = 10
BDFLUSHR = flushing interval in seconds, 1-300, def = 30
buffers cached for NAUTOP + (BDFLUSHR/2) on average
If processes continuously write large amounts of filesystem data,
set <= 5 to run bdflush more frequently and avoid large bursts.
CACHENTS = number of name components in namei cache, 1-4096, def = 800,
set to 3 X the in-core inode table (reported by sar -v)
The namei cache maps file name paths to inodes. Entries are about 40 bytes.
HASHQS = number of namei hash queues, 1-8191, def = 267, set >= CACHENTS / 3
Entries are about 8 bytes.
NHINODE = inode hash table size, power of 2, def = 128
Set near the maximum value of the dynamically set number of inodes.
SDKSOUT = number of queued requests for each SCSI disk, 1-256, def = 4
MAXSLICE = max number of cpu ticks per process time slice
The default is about 100. On systems with Sentinel, if "netdsk" takes
all of the cpu time, reduce to MAXSLICE to 10.
Sample kernel parameters
Section 12 (Steams)
Increase NSTRPAGES from 884 to 2048 if you have "watchdog timeout errors"
This can help with network problems with Intel Ethernet Express cards.
Increase the maximum process from 16 MB to at least 32 MB [SCO 3.2v4 only]
Large programs sometimes needs more than 16 MB.
Increase PROCS/USER from 110 to 150
This helps if all of the users login using the same account.
Section 16 (Shared data)
Increase SHMMAX (maximum shared memory segment size) from 524288 to 2097664
Some programs need to hold large tables in memory.
Decrease MAXSLICE from 100 to 10
Do this only on systems with Sentinel when the "netdsk" process consumes
an excessive amount of cpu time. Reducing MAXSLICE limits the amount of
cpu time a process can use before SCO switches to the next process.
Increase the number of IO buffers
The suggestions below are for systems with at least 256 MB RAM.
Increase NBUF (number of disk buffers) from 6,652 to 30,000
Set NBUF to about use at least 10% of RAM. Each buffer is 1 KB.
Make 100 buffers for each MB of RAM.
Increase NHBUF (disk buffer hash queues) from 0 (autoconfig) to 65,536
Set NHBUF to a power of 2. On a single cpu, set it >= NBUF / 2.
On MPX, set it >= 2 * NBUF to avoid contention.
Increase NHINODE (inode hash queues) from 1,024 to 2,048
Set to a power of 2 near the maximum value of the number of inodes.
Increase CACHENTS (namei cache buffers) from 800 to 1,024
Set to 3 X the in-core inode table (reported by sar -v)
The namei cache maps file name paths to inodes.
Entries are about 40 bytes.
SCO Performance Guide http://osr5doc.ca.caldera.com:457/PERFORM/CONTENTS.html
Tuning SCO Unix and OpenServer for Fenix http://www.fenix.com/kernel.htm
Tuning SCO Open Unix 8 for Linux applications http://www.caldera.com/products/openunix/lkp/lkp_doc/LKP_tuning_apps.html
Tuning SCO Unix and OpenServer for Cleo SNA http://www.cleo.com/support/faqs/kernel.asp
Tuning Sun Solaris and SCO OpenServer with SarCheck http://www.sarcheck.com/
Tuning Sun Solaris http://docs.sun.com/db/doc/816-0607 (Solaris Tunable Parameters Reference Manual) and http://docs.sun.com/app/docs/doc/806-7009
Tuning Sun Solaris http://developers.sun.com/solaris/articles/tuning_solaris.html
Tuning Sun Solaris http://www.princeton.edu/~unix/Solaris/troubleshoot/kerntune.html and http://www.princeton.edu/~psg/unix/Solaris/troubleshoot/process.html
Tuning Sun Solaris for Security http://www.securityfocus.com/infocus/1385
Tuning Sun Solaris TCP/IP Stacks http://www.sean.de/Solaris/soltune.html
Tuning Sun Solaris http://userpages.umbc.edu/~vijay/solaris/solaris.html
Tuning Linux http://linuxperf.nl.linux.org/general/kerneltuning.html
Tuning Linux Servers http://people.redhat.com/alikins/system_tuning.html
Tuning Linux NFS http://nfs.sourceforge.net/nfs-howto/performance.html
Tuning Linux for Oracle http://ps-ax.com/shared-mem.html
Tuning HP-UX, Solaris, AIX and IRIX for Netscape's Calendar Server http://developer.netscape.com/docs/manuals/calendar/calendar35/appa.htm
Tuning various operating systems for high performance data transfers http://www.psc.edu/networking/perf_tune.html
Tuning UNIX IP Stacks http://www.cymru.com/Documents/ip-stack-tuning.html
Olympus TuneUp for SCO by Pacific CodeWorks http://codework5.pacificcodeworks.com/ monitors SCO Unix 3.2v4 and SCO OpenServer 5 systems, warns about problems by email, and can automatically tune over 75 kernel parameters to maximize system performance. You can download it for a free 30 day evaluation.
SCO Doctor http://stage.caldera.com/products/doctor/ and http://www.shid.net.ua/download/unix/SCO/doctor/ and http://www.datalines.com.sg/shop/itmidx9.htm
Return to Xenix History xenixhistory.html
http://williambader.com -
Revised September 20, 2006 01:07:05 AM.
Copyright © 2006 William Bader.