vreposmonitor(8)

Name

vreposmonitor - monitor the state of the Vesta repository

Synopsis

vreposmonitor [ -update time ] [ -ts time ] [ -n num ] [ -rows num ] [ -check ] [ -R host[:port] ]

Contents

Description

vreposmonitor is a client application for monitoring the state of a running Vesta repository.

The program starts by printing information that identifies the repository, including:

The program then prints status lines describing various aspects of the repository's state. See the Fields section below for descriptions of each of the fields on a status line.

If vreposmonitor is unable to contact the repository it was monitoring, it prints an error message and continues to poll the repository until a connection can be re-established. Once it is able to contact the repository again, it resumes monitoring where it left off. This behavior can be changed with the -check flag.

Switches

Prefixes of switch names are recognized. For example, "-u" can be used instead of "-update".

-update time
By default, a new status line is printed every 10 seconds. If -update is specified, then a new line is printed every time seconds. time must be a non-negative integer. To specify an update time in units other than seconds, time can end with one of the following unit identifiers: m (minutes), h (hours), and d (days).

-ts time
If -ts is specified, a timestamp is printed every time seconds. By default, timestamps are never printed. To specify a timestamp interval in units other than seconds, time can end with one of the following unit identifiers: m (minutes), h (hours), and d (days).

-n num
By default, vreposmonitor prints status lines indefinitely. If -n is specified, then only num status lines are printed.

-rows num
By default, vreposmonitor prints the column headings once at the start of the program. If you specify -rows num, then new heading columns are printed every num status lines.

-check
By default, vreposmonitor prints the number of requested status lines and then exits with status 0. If -check is specified, it will only attempt to print one line. If it was able to successfully contact the repository and print the line it will exit with status 0. If there was an error in reaching the repository or getting its status, it will exit with status 1.

-R host[:port]
By default, vreposmonitor prints statistics for the local repository. You can have it monitor an alternate repository by specifying the host and port of a different server. If not specified, the port defaults to the same port your local repository uses.

-mem
Print information about the repository daemon's total memory usage. (See MEMORY under Fields.)

-nfs
Print informaiton about the number of NFS transactions processed and the average time take to process them. (See NFS under Fields.)

-srpc
Print informaiton about the number of SRPC transactions processed and the average time take to process them. (See NFS under Fields.)

-dupe
Print statistics about the repository's NFS duplicate suppression mechanism. (See DUPE under Fields.)

-fdcache
Print statistics about the repository's file descriptor cache. (See FDCACHE under Fields.)

-vmempool
Print statistics about the repository's packaed CMemPool heap. (See VMEMPOOL under Fields.)

Fields

The output is divided up into sections corresponding to diferent kinds of information. The kinds of information and the order they appear in are controlled by the command-line options. If no options requesting specific information are given, the default is: -mem -nfs -srpc -dupe -fdcache.

MEMORY

Information about the repository's memory usage.

SIZE
The total memory size of the repository.
RES
The memory size of the repository resident in physical memory.

NFS

Information about the rate of NFS transaction processing.

NUM
The number of NFS transactions since the previously printed line.
AVG
The average time to process an NFS transaction since the previously printed line.

SRPC

Information about the rate of SRPC transaction processing.

NUM
The number of SRPC transactions since the previously printed line.
AVG
The average time to process an SRPC transaction since the previously printed line.

DUPE

Information about NFS duplicate suppression.

NEW
The number of new NFS requests which have arrived since the previously printed line.
INPR
The number of duplicate NFS requests corresponding to transactions still being processed which have arrived since the previously printed line.
DONE
The number of duplicate NFS requests corresponding to transations previously completed which have arrived since the previously printed line.

FDCACHE

Information about the repository's file descriptor cache.

HELD
The number of file descriptors in the file descriptor cache.
HITS
The number of requests for a file descriptor which were able to use an already open file descriptor from the file descriptor cache. The value represents the number since the previously printed line.
OMIS
The number of requests for a file descriptor which did not find a match in the file descriptor cache and for which a new file descriptor must be opened. The value represents the number since the previously printed line.
TMIS
The number of requests for a file descriptor which did not find a match in the file descriptor cache that will proceed without a file descriptor. (For example, using stat(2) instead of fstat(2).) The value represents the number since the previously printed line.
EVIC
The number of file descriptors evicted from the file descriptor cache because the cache was full. The value represents the number since the previously printed line.
EXPR
The number of file descriptors expired from the file descriptor cache after going unused for a period of time. The value represents the number since the previously printed line.

VMEMPOOL

Information about the repository's special purpose tightly-packaed heap used to store directory structure and attributes.

SIZE
Total size of VMemPool heap.
NEFL
Total number of non-empty VMemPool free lists. (Separate free lists are maintained for different block sizes to make allocations more efficient.)
FBLK
Total number of blocks on all the VMemPool free lists.
FBYT
Total number of bytes in all blocks on the VMemPool free lists.
B/FB
Avergae number of bytes in blocks on the VMemPool free lists (i.e. FBYT divided by FBLK)
WBYT
Total number of wasted bytes due to alignment. (Blocks start on an 8-byte aligned boundary. When a block is allocated of a size not evenly divisible by 8, some bytes are wasted to round up to the alignment boundary. These bytes can be reclaimed if the block is later freed.)
ALOC
Number of calls to VMemPool::allocate
AAVG
Average time for a VMemPool::allocate call
BRJS
Number of free blocks considered and rejected by VMemPool::allocate for being too small to be used for the requested allocation.
BRJL
Number of free blocks considered and rejected by VMemPool::allocate for being too large to be used for the requested allocation. (This is done to avoid fragmentation from splitting large blocks and only happens when the next block on the free list is a better fit.)
FB/A
Average number of free blocks considered and rejected per call to VMemPool::allocate. (i.e. BRJS+BRJL divided by ALOC).
ASBL
Number of allocations serviced by splitting a large block. (Splitting blocks leads to fragmentation.)
ANBL
Number of allocations serviced with a new block created by expanding the heap. (Some expansions require calling VMemPool::grow.)
FREE
Number of calls to VMemPool::free
FAVG
Average time for a VMemPool::free call
FCOB
Number of times that a freed block was coalesced with a free block before it in memory. (Freed blocks are combined with adjacent free blocks when possible to reduce fragmentation.)
FCOA
Number of times that a freed block was coalesced with a free block after it in memory.
GROW
Number of calls to VMemPool::grow (expanding the heap by mmap-ing more space)

SIZE, NEFL, FBLK, FBYT, B/FB, anf WBYT always represent the current values. ALOC, AAVG, BRJS, BRJL, FB/A, ASBL, ANBL, FREE, FAVG, FCOB, FCOA, and GROW represent the number since the previously printed line and are totals since the repository was started on the first line.

Example

Here's some sample output:

Repository:     vesta.example.com:21776
Server Version: release/13
Started:        Sat Jan 29 00:57:59 EST 2005
Uptime:         24 days 16 hours 47 minutes 39 seconds


  MEMORY  |   NFS    |   SRPC   |     DUPE     |           FDCACHE           |
SIZE  RES |NUM   AVG |NUM   AVG |NEW  INPR DONE|HELD HITS OMIS TMIS EVIC EXPR|
---- ----- ---- ----- ---- ----- ---- ---- ---- ---- ---- ---- ---- ---- ---- 
480M 480M 260M 0.3ms 284M 0.3ms 260M 2.8K 8.1K   10 297M  85M  19M  85M 123K 
480M 480M 2.7K 0.1ms 5.0K 0.1ms 2.7K    0    0   10    0    0  975    0    0 
480M 480M 2.3K 0.1ms 7.2K 0.1ms 2.3K    0    0   10    0    0  894    0    0 
480M 480M 5.0K 0.5ms 4.4K 0.1ms 5.0K    0    0  362  281  462 1.3K  110    0 
480M 480M 3.3K 100us 3.8K 0.1ms 3.3K    0    0  362    0    0  710    0    0 

Configuration Variables

Like most Vesta-2 applications, vreposmonitor reads site-specific configuration information from a Vesta-2 configuration file named vesta.cfg.

The configuration file is divided into a number of sections, denoted in the file by [SectionName]. The variables used by vreposmonitor are in the section denoted by [Repository]. Here are the relevant variables and their meanings; the types of the variables are shown in parentheses:

VestaSourceSRPC_host (string)
The host name of the default (local) repository.
VestaSourceSRPC_port (integer)
The default TCP port number for repositories.

See Also

repository(8), vesta.cfg(5)

Author

Ken Schalk (ken@xorian.net)

Based on VCacheMonitor, which was written by Allan Heydon (caheydon@yahoo.com)

This page was generated automatically by mtex software.