buffers

buffers


buf-map Index Level buffers.g
Syntax buffers {(options}
Category TCL
Type Verb
Description displays a single "snapshot" of the status of memory-resident buffers. The "l" (loop) option repeats the display until voluntarily stopped.  

The following elements are monitored by the buffers command:


Name    Description

Activ    Number of Process activations. Each disk read, keystroke, process wake up after a sleep increments this counter. When the number of frame faults is subtracted from this counter, this gives an idea of the volume of data entry.

Idle     Idle time. Not supported on Unix Implementations

Fflt     Frame faults. This counts the number of disk reads. If this number approaches the disk I/O bandwidth (as determined by the manufacturer), the system becomes disk-bound. Solutions range from increasing the memory allocated to Pick, to changing disk drives, to reorganizing the Pick database on separate disk drives to increase parallelism ("disk striping").

Writes   Disk Writes. All writes are normally done by the background flush process to update disk from dirty frames in memory. This number should remain at 30% - 50% of the number of frame faults. A higher number indicates a lot of updates, or else there may be insufficient memory allocated for the Pick virtual machine.

Bfail    Buffer Search Failures. This counter counts the number of failures to allocate a buffer in memory for a new frame. When non zero, this indicates that the memory is insufficient. This counter should never be non zero. If it is, it indicates that the memory allocated to Pick is too small.

RqFull   Disk Read Queue Full. Not supported on Unix Implementations

WqFull   Disk Write Queue Full. This counter counts the number of instances where the flusher cannot keep up with the dirtying of frames. This is an indication that either the Flusher's write queue is too small for the given configuration (See the 'dwqnum' parameter in the "pick0" file), or that the memory allocated to Pick is too small.

DskErr   Disk Errors.

Elapsd   Elapsed time. This is the time in seconds between two sampling. For internal use only.

DblSrc   Double Search. This counts the number of collisions between two or more processes frame faulting on the same frame at the same instant. A non zero counter should be exceptional.

Breuse   Buffer Re-Use. This counts the number of instances where a memory buffer has been allocated by one process to read one FID and another process allocated the same buffer to contain another FID.  A non zero counter should be exceptional.

Bcolls   Batch Contentions/Collisions. This counts the number of collisions between a 'batch' process (i.e., a process which is disk intensive) and an 'interactive' process (i.e., a process which is keyboard input intensive). By default, Pick insures that interactive processes are given priority over batch processes in accessing certain resources.  See the command 'set-batchdly' for more details.

Sem      Semaphores Collisions. This counts the number of collisions between two processes trying to access a system wide internal table.

Vlocks   Virtual Locks Failures. This counts the number of cases when a Pick process tried to assert a virtual lock and failed to acquire it because another process had it.

Blocks   FlashBASIC Locks Failures. This counts the number of cases when a Pick process tried to assert a FlashBASIC lock and failed to acquire it because another process had it.

B0reg    Buffers with no Virtual Registers attached. These are the buffers not currently attached for immediate reference. At any given time, very few buffers are actually attached. It is therefore normal that this number be almost equal to the total buffers in memory.

B1reg    Buffers used by more than one process, but not used by its owner any more. These should be in very small number.

B2reg    Buffers used exclusively by their owner. On RISC implementations, this situation allows better performance, because there is no conflict on these buffers. Normally, these buffers contain private workspace, data which is not shared, etc...

B>3reg   Buffers used both by their owner and other processes. This number represent the number of pages actually shared among processes (data files) at any given time.

ww       Write Required. This counts the number of buffers currently modified and not yet written to disk. This number should never go above 50% of the whole buffer pool. If it does, then the flusher ('set-flush') is probably not being activated enough.

IObusy   Buffers being read from disk. This counts the number of pending disk reads. This counters is usually null, since the reads are too fast to be picked up.

Mlock    Number of buffers memory locked. If the ABS section is locked, this number is at least equal to the ABS size. Also included, are the tape buffers when the tape is attached.

Ref      Referenced Buffers. This counts the number of buffers which have been recently used.

WQ       Write Queued. Number of buffers currently enqueued for write.

Tophsh   Top of Hash. This number measures the quality of the hashing algorithm used to find a frame in memory. This number must be high (above 60% of the total buffers).

avail    Available buffers. Number of buffers that are candidates for replacement. These are the buffers that nobody has been using recently. When this number drops below 10% of the total buffers, performance decreases significantly.

batch    Batch Buffers.  This is the Number of buffers used by batch processes.  A high level (something approaching 50% of disk buffers) indicates that disk intensive activity is taking place by batch processes.
Options number  (integer number). Sets delay between "snapshots". Default is 1/5 seconds.

c  Clears history log before starting process. If not present, the history file is created as a "dx" file, meaning that it will not be saved by a file-save or account-save. This process appends to the "buffers.log" history file, unless the "c" option is specified.

h  Creates a history file called "buffers.log", where statistical data about system performance may be stored.

s  Displays system counters.

l  Loops continuously. Operator is prompted to enter an "x" to stop or an "r" to redraw the screen. The default delay between activations is five seconds.
See Also Performance Monitoring flusher flush config core monitor-status set-flush set-batchdly buffers.g buf-map u352e syschk blocked IO blkio
Example
Warnings On AP/DOS and AP/Native platforms, "buffers" mis-reports the number of buffers in use. It can only report the number of buffers in the 640k of main memory. Any buffers in extended memory are not reported.

On Unix implementations, the number of process activations does not reflect the actual process scheduling, which is controlled by Unix. This number roughly measures the occurrences when a process voluntarily relinquishes CPU control (sleeps).
Compatibility D3 7.0 AP
buf-map Index Level buffers.g