vreposmonitor - monitor the state of the Vesta repository
vreposmonitor [ -update time ] [ -ts time ] [ -n num ] [ -rows num ] [ -check ] [ -R host[:port] ]
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 name of the host on which the repository is running,
- the port number on which the repository is listening for connections,
- the version identifier of the repository,
- the date and time at which the repository was started.
- the amount of time the repository has been running
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.
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.)
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.
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
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.
This page was generated automatically by mtex software.Ken Schalk (ken@xorian.net)
Based on VCacheMonitor, which was written by Allan Heydon (caheydon@yahoo.com)