proceso(1M) proceso(1M)
NAME
proceso - list processes and kernel memory usage
SYNOPSIS
proceso [-s] [-p[v[v]] [-k] [-M]
proceso -c[v[v]]
proceso -r
proceso -u[u]]
ps | proceso [-s] [-p[v[v]]] [-k] [-M]
DESCRIPTION
proceso reads the processes and kernel segments page tables. These
page tables hold the page table entries for each page in the address
space of processes and the kernel. By checking the individual flags of
the page table entries, proceso can determine which pages are resident
in the main memory and whether the pages are private to that process
or shared with other processes. System processes cannot be analyzed.
The user's access permissions determine how the individual processes
can be accessed.
OPTIONS
-s Summary information about memory usage.
-p Summary information about all selected processes.
-pv Detailed information about specified processes.
-pvv Detailed information about specified processes including their
segments.
-k Lists detailed information about each kernel segment.
-M Physical memory usage per process.
-c Displays running and ready-to-run processes.
-cv Extended display of running and ready-to-run processes.
-cvv Detailed display of running and ready-to-run processes.
-u Scans the reference file for memory mapped files proceso.ref and
update the device and inode entries. Use this option if file sys-
tems were mounted differently or if you use a proceso.ref file
from another machine.
Page 1 Reliant UNIX 5.44 Printed 11/98
proceso(1M) proceso(1M)
-uu Scans all mounted file systems for all entries that have not yet
been assigned in proceso.ref.
Note: this may take a long time.
-r Scans all directories listed in the proceso.dirs file and adds
entries to proceso.ref file.
PROCESS MEMORY TYPES
When the -p option is used, proceso lists the memory usage for each
process selected. The address space may consist of three sections:
process private
This type of memory is used solely by that process. This is typi-
cally initialized data, memory allocated using malloc(3C), and
the stack segment.
shared files
Reliant UNIX supports the concept of memory mapped files. This is
a mechanism by which the data of a file is mapped into the
address space of a process. This means a process can access this
data by using an address operation. See also mmap(2). Examples of
such memory mapped files are the code segments of an executable
or a library.
shared memory
Shared memory is a mechanism of the interprocess communication
facilities (IPC) of Reliant UNIX. Using shared memory processes
you can communicate and exchange data very quickly.
SUMMARY
If no option is specified, proceso will give a summary of the system's
memory usage. Please note that in all following summaries core stands
for the size of main memory used and total designates the virtual
size. 1 KB is equal to 1024 bytes. When specifying the -p option,
proceso will also analyze the processes memory usage.
******* SUMMARY OF SYSTEM MEMORY USAGE *******
type |number | core(KB) |total(KB)
----------------+-------+----------+-------------
process private | 438 | 74044 | 132964
mapped files | 112 | 18912 | 24132
kernel memory | | 66044 | 186636
memory disk | 1 | 65536 |
shared memory | 0 | 0 | 0
kernel size | | 5548 |
free memory | | 56256 |
----------------+-------+----------+-------------
proceso TOTAL | | 286340 |
----------------+-------+----------+-------------
physical memory | | 327680 |
Page 2 Reliant UNIX 5.44 Printed 11/98
proceso(1M) proceso(1M)
Note:
The final total may differ by up to 10 percent from the physical
memory size available in the system.
PROCESS MEMORY ANALYSIS
Using the -pv option gives a more detailed summary for each process
and each memory mapped file in the system.
******* ANALYSIS OF SYSTEM MEMORY USAGE BY PROCESSES *******
|process private| shared files | shared memory |
pid | core total | core total | core total | cmd
------+---------------+--------------+---------------+-----------------------
661 | 44 128 | 268 720 | 0 0 | /usr/lib/saf/sac -t 300
9260 | 132 484 | 396 408 | 0 0 | vi xioinfo.h xiospb.h
267 | 4 24 | 28 68 | 0 0 | cat /dev/osm
324 | 28 72 | 204 428 | 0 0 | /opt/log3/bin/log3svr -etsdm1440
325 | 28 72 | 152 412 | 0 0 | /opt/log3/bin/log3tlog2
326 | 36 64 | 168 420 | 0 0 | /opt/log3/bin/log3syslogd
490 | 0 324 | 0 716 | 0 0 | /usr/lib/netsvc/rwall/rpc.rwalld
158 | 436 636 | 292 772 | 0 0 | /sbin/errord
454 | 240 480 | 416 812 | 0 0 | /usr/sbin/rpcbind
298 | 8 52 | 164 412 | 0 0 | /usr/sbin/silsd
349 | 124 340 | 320 824 | 0 0 | /usr/sbin/syslogd
:
:
6852 | 108 192 | 744 820 | 0 0 | in.rlogind
9950 | 356 492 | 3524 4144 | 0 0 | mwm
14415 | 36 48 | 168 180 | 0 0 | /usr/lib/X11/xdm/Xsession
------+---------------+--------------+---------------+-----------------------
total 85832 34356 KB
******** LIST OF MEMORY MAPPED FILES ********
| core total |
dev(dec) ino(dec) | (KB) (KB) | name
------------------+----------------+------------------------
1048576 6185 | 28 68 | /sbin/cat
1048576 6185 | 28 68 | /usr/bin/cat
1048576 6217 | 24 28 | /sbin/errord
1048576 6240 | 168 180 | /sbin/jsh
1048578 4183 | 576 632 | /usr/lib/libX11.so.5.0
:
1048578 4184 | 224 284 | /usr/lib/libXaw.so
1048578 4184 | 224 284 | /usr/lib/libXaw.so.5.0
1048578 4186 | 32 40 | /usr/lib/libXext.so
1048578 28787 | 280 280 | -
------------------+----------------+------------------------
total 20632 23984 KB
Page 3 Reliant UNIX 5.44 Printed 11/98
proceso(1M) proceso(1M)
Note:
Files are only listed in the table with their full name if this is
contained in the reference table proceso.ref. The reference table can
be completed with the names using the option -uu.
DETAILED PROCESS ANALYSIS
Using the -pvv option, proceso gives a detailed list of all memory
segments of the specified processes. type specifies the individual
segment type which can either be a filename (memory mapped) or one of
PRIVATE, DATA SEGMENT (.data section), STACK or SHARED MEMORY. When
summing up the values of the individual segments, the segment types
PRIVATE, DATA SEGMENT and STACK are added to the private private sec-
tion. Segments of "Memory Mapped" files can be recognized by their
filenames: "-", when the proceso.ref entry is missing, and are added
to the value mapped. The flags field specifies the attribute flags:
R readable
W writeable
X segment is executable
C shared segment (shared memory)
B data segment (.data section)
S stack segment
PID: 1578 CMD: //usr/lib/saf/listen tcp
N | start(X) | core(KB) |total(KB) | flags | type
---+----------+----------+----------+--------------+--------------
0 | 0 | 0 | 16 | R . X . . . | PRIVATE
1 | 400000 | 80 | 80 | R . X . . . | /usr/lib/saf/listen
2 | 450000 | 32 | 32 | R W X . . . | PRIVATE
3 | 458000 | 176 | 176 | R W X . B . | DATA SEGMENT
4 | 8000000 | 320 | 480 | R . X . . . | /usr/lib/libc.so.1
5 | 807C000 | 16 | 16 | R W . . . . | PRIVATE
6 | 80B4000 | 48 | 48 | R W X . . . | PRIVATE
7 | 80C0000 | 0 | 16 | R W X . . . | PRIVATE
8 | 8100000 | 176 | 272 | R . X . . . | /usr/lib/libnsl.so
9 | 8180000 | 32 | 32 | R W X . . . | PRIVATE
10 | 81C0000 | 96 | 96 | R . X . . . | /usr/lib/libsocket.so
11 | 8214000 | 16 | 16 | R W X . . . | PRIVATE
12 | 7FFF4000 | 32 | 32 | R W X . . S | STACK
---+----------+----------+----------+--------------+--------------
private | 352 | 384 |
mapped | 672 | 928 |
shared mem | 0 | 0 |
--------------+----------+----------+
Page 4 Reliant UNIX 5.44 Printed 11/98
proceso(1M) proceso(1M)
PID: 4339 CMD: /sbin/quickdd if=/dev/zero of=/dev/null bs=512 count=1000000
N | start(X) | core(KB) |total(KB) | flags | type
---+----------+----------+----------+--------------+--------------
0 | 0 | 0 | 16 | R . X . . . | PRIVATE
1 | 400000 | 64 | 80 | R . X . . . | /sbin/quickdd
2 | 450000 | 16 | 16 | R W X . . . | PRIVATE
3 | 454000 | 0 | 16 | R W X . B . | DATA SEGMENT
4 | 8004000 | 0 | 1056 | R W X C . . | SHARED MEMORY
5 | 8110000 | 16 | 16 | R W X C . . | SHARED MEMORY
6 | 7FFF4000 | 16 | 32 | R W X . . S | STACK
---+----------+----------+----------+--------------+--------------
private | 32 | 80 |
mapped | 64 | 80 |
shared mem | 16 | 1072 |
--------------+----------+----------+
KERNEL MEMORY USAGE
The -k option gives a detailed list of the allocated kernel segments
and available (free) memory.
****** ANALYSIS OF SYSTEM KERNEL MEMORY USAGE *******
start end segment core(KB) total(KB)
--------+--------+--------+---------+-----------
805C2000 805CB000 SEGK 28968 36864
805CB000 805E290C SEGMAP 21524 96524
805E3000 805F0000 SEGU 5300 53248
struct page array 6753
--------------------------+---------+-----------
KERNEL 62544 186636
PHYSICAL MEMORY USAGE
proceso displays the physical memory usage in relation to specific
processes. The appropriate memory areas (e.g. CPU boards) are output
for the individual physical addresses based on the information con-
tained in the proceso.sect file.
Furthermore, the information is output for each process in accordance
with DETAILED PROCESS ANALYSIS.
Page 5 Reliant UNIX 5.44 Printed 11/98
proceso(1M) proceso(1M)
PID: 27709 CMD: -ksh
******** LIST OF PHYSICAL ADDRESSES ********
S vaddr(X) | paddr(X):sect paddr(X):sect paddr(X):sect paddr(X):sect
-------------+----------------------------------------------------------------
* 0 | 2BA80000:b21
* 400000 | 3B0C0000:b24 3D3D0000: A100000: 2A870000:b21
410000 | 3DB00000: C810000: 32340000:b22 225F0000:b21
420000 | 16100000:b16 30BB0000:b22 3CB80000: 31C90000:b22
430000 | 139A0000:b15 1E9D0000:b17 3DA60000: 8510000:
440000 | 1BE60000:b17
* 480000 | 3C9C0000: 18510000:b17 D9A0000:
* 48C000 | 6590000:b14 39300000:b24 35690000:b23 1A640000:b17
* 7FFE8000 | - 31270000:b22
N | start(X) | core(KB) | total(KB) | flags | type
---+----------+----------+-----------+--------------+-----------------------
0 | 0 | 16 | 16 | R . X . . . | PRIVATE
...
PROCESS INFORMATION
proceso displays process information which is comparable with the out-
put of the ps command.
If no other parameters are specified, only those processes belonging
to the current session are displayed.
The additional v parameter displays all processes for the user
currently logged on.
If the additional vv parameter is specified, more detailed information
is output for these processes.
All output types contain information on the processor affinity of the
processes. A low AFFSEC value means that the process has only recently
started running on this CPU. The CACHE value specifies how the cache
is configured (number of "cache lines") by the process - this entry is
only relevant for 64-bit systems.
******* RUNNING/RUNNABLE PROCESSES *******
PID PPID UID CPU S PRI CLS AFFSEC CACHE USR SYS SLEEP CMD
15387 9754 215 1 O 34 TS 0.00 4563340 0:00 0:00 0:00 ./proceso -cvv
15388 9754 215 0 R 34 TS 0.04 4563340 0:00 0:00 0:00 pg
9754 7464 215 1 S 34 TS 0.01 4563340 0:00 0:00 0:00 ksh
Page 6 Reliant UNIX 5.44 Printed 11/98
proceso(1M) proceso(1M)
WORKING SET OF A PROCESS
proceso is very useful in determining the working set of a process and
for calculating the main memory used for a specified number of users.
You should use the following syntax to determine, for example, the
working set of one user:
ps -u myuser | proceso -pv
Note:
proceso handles the first column of the ps output as the process ID.
For this reason, only ps options that output the process ID in the
first column should be used.
The private total process gives the memory usage for one user. You may
multiply this by the number of users that use the same process envi-
ronment.
NOTES
proceso may yield incorrect results or even core dump if the system is
not booted from /unix. So please verify that /unix is linked to the
kernel image that has been booted.
FILES
/opt/bin/proceso/proceso.ref
As proceso cannot find out the file name of a memory mapped file
during runtime, it uses a cross-reference list containing the
file name and the device and inode number. The proceso.ref file
holds all filenames of memory mapped files and their associated
device and inode numbers.
When proceso -pv is executed, an entry with the device and inode
number is added to the file proceso.ref for files still without
cross references. The relevant filename is completed in
proceso.ref with proceso -u.
/opt/bin/proceso/proceso.dirs
If the proceso.ref file was removed or cleared for some reason,
you can create a new reference file based on the directories
listed in proceso.dirs. This file should contain the directory
names of all binaries and libraries that may be used by the run-
ning processes. You may also add directory entries for specific
add-on products (databases, etc.). See also the -r option.
/opt/bin/proceso/proceso.sect
The file is only relevant for the M function. For selected physi-
cal memory areas, (e.g. CPU board memory), it contains
1) the Id for this area (max. 4 characters) (1st column);
2) its hexadecimal start address (2nd column);
Page 7 Reliant UNIX 5.44 Printed 11/98
proceso(1M) proceso(1M)
3) its hexadecimal length (3rd column).
If "0" is entered as the start address for subsequent entries,
the start address is the "end address+1" of the previous entry.
If the proceso.sect file is in the current directory it will be
used.
Information on how the memory is assigned to the different boards
can be displayed with showconf -M.
SEE ALSO
ps(1), crash(1M), showconf(8).
Page 8 Reliant UNIX 5.44 Printed 11/98