DF(SVAS)

Shore Programmer's Manual - 2 August 96

NAME

df \- Shore disk usage and free space report

SYNOPSIS

df [-a | -s | -p | -b | -e]

DESCRIPTION

Df is a command given to the Shore server's Tcl shell, and it prints voluminous information about disk space utilization.

ARGUMENTS

-a causes all statistics to be printed.

-s causes only summary information to be printed.

-p reports statistics in units of pages.

-b reports statistics in units of bytes.

-e reports statistics about extents and files.

All statistics are computed and reported for one volume at a time.

EXTENT and FILE STATISTICS

An extent is a unit of allocation; 8 pages make an extent, and one extent is allocated to a Shore Storage Manager (SSM) file, B-tree, R-tree or RD-tree at a time. In some cases, the server creates small B-trees, which are handled specially, and they are assigned one page rather than a full extent. These B-trees are converted, if necessary, to "normal" B-trees when they grow.

R-trees and RD-trees cannot be created by the Shore applications, but the statistics are reported by the SSM and printed by the Shore server.

When a Shore file system is created on a volume, the Shore server creates one file for storing registered objects. It also creates one file for each pool created by an application.

The statistics reported for files and extents are:

Files
The number of files created on the volume.
1-page B-trees
The number of small B-trees on the volume.
B-trees
The number of full-sized B-trees on the volume.
R-trees
The number of full-sized R-trees on the volume.
RD-trees
The number of full-sized RD-trees on the volume.
Pages per extent
The size of an extent in pages (a compile-time constant).
Extents in volume
The number of extents in the formatted volume (determined when the volume is formatted).
vol hdr, bitmap ext
The number of extents assigned for use as bit-map pages and the volume header.
free extents
The number of unallocated extents.
allocated extents
The number extents allocated for user data.

PAGE STATISTICS

A page is normally 8 kilobytes, although a system can be rebuilt to use pages of a different size.

The statistics reported for pages are:

Total pages in volume
The total number of pages in all the volume's extents. Following this is a long list of the various kinds of pages that have been allocated on the volume. The kinds are as follows:
small obj
pages containing small objects -- objects that are small enough that they can fit in their entirety on one page, along with the various page headers and alignment taken into account.
large data
pages containing the data of large objects
large data
pages used for the data structure that links together large data pages.
xxxx lf pgs
leaf pages of a tree of type xxxx.
xxxx intern pgs
internal pages of a tree of type xxxx.
1pbtree
one-page B-tree
btree
a B-tree created by an application program
rtree, rdtree
always zero
store-dir
a B-tree used by the SSM for maintenance of volume data structures.
root-idx
a B-tree used by the SSM for maintenance of volume data structures, and used by the Shore server for locating the root directory, and for storing information about persistent mounts.
lid-map
a B-tree used by the SSM to map logical OIDs to physical IDs.
lidR-map
a B-tree used by the SSM for a reverse mapping for remote IDs.
used alloc pgs
The total number of pages that have been allocated. This number is the sum of preceding list of allocated pages broken down by kind.
unused alloc pgs
The number of unused pages in allocated extents.
Pages in alloc extents
The total number of pages in extents that have been allocated.
Pages in unalloc exts
The total number of pages in free extents.
Pages in hdr, bmap ext
The number of pages in the extent allocated for the volume header and for the free-space bit-map.

BYTE STATISTICS

The statistics reported in units of bytes might be daunting at first, but they can be interpreted rather easily, with the following information:

The intent is to give as much detail as possible about where the bytes fall on every kind of page that a volume has:

used
any statistic so marked refers to bytes that are in use, whether for an application's data, or for overhead of some sort, such as headers or alignment.
unused, allocated
bytes that are on allocated pages (pages in allocated extents) but that are unused, either because the entire page is unused, or because the bytes are unused (depending on the statistic). Pages are assigned a purpose when their containing extent is allocated, even though the entire page is not in use; thus, unused pages can be designated "unused small obj pages", etc.
unallocated
bytes in pages that are in unallocated extents.

Many statistics are reported as summary statistics, followed by a report of more specific statistics, with percentages. The intent is to indicate the distribution of the items being reported in detail, in terms of percentages of the summary statistic. For example,

In pages used                      :                          2400256
is the summary, and
In object pages                    :    2023424  (  84.300% of    2400256)
In SM indexes                      :     319488  (  13.311% of    2400256)
In user indexes                    :      32768  (   1.365% of    2400256)
give more detail about the pages in use. Furthermore, the "object pages" is reported in more and more detail:
     user data in records          :    1627726  (  80.444% of    2023424)
         small object data         :    1194450  (  73.382% of    1627726)
         large object data         :     433276  (  26.618% of    1627726)

     record headers                :     122552  (   6.057% of    2023424)

     unused in allocated pages     :     159236  (   7.870% of    2023424)
         in small object pages     :     154032  (  96.732% of     159236)
         in large object leaf pgs  :       5204  (   3.268% of     159236)
         in large obj interior pgs :          0  (   0.000% of     159236)

     bytes lost in alignment       :       1694  (   0.084% of    2023424)
         for sysprops (headers)    :         16  (   0.945% of       1694)
         for user data             :       1678  (  99.055% of       1694)

     SM page headers               :      18556  (   0.917% of    2023424)
         for small obj pgs         :      14668  (  79.047% of      18556)
         for lg obj data pgs       :       3888  (  20.953% of      18556)

     other SM overhead             :      93660  (   4.629% of    2023424)
         for rec tags              :      73408  (  78.377% of      93660)
         for slots                 :      20212  (  21.580% of      93660)
             slots used            :      18352  (  90.798% of      20212)
             slots unused          :       1860  (   9.202% of      20212)
         for large object overhead :         40  (   0.043% of      93660)
             chunks                :         40  ( 100.000% of         40)
             indirect              :          0  (   0.000% of         40)
             index pg              :          0  (   0.000% of         40)

DEFINITIONS for BYTE STATISTICS

record
A record is the SSM portion of a small-object page that contains a Shore object. A record is further split into a record tag, record header and a record body. The record header contains the system properties, or sysprops.
sysprops
The Shore system properties associated with a Shore object, including the owner, permission bits, last-modified timestamp, etc.
rec tag
A tiny header attached to each record for SSM purposes.
lost in alignment
Each portion of a record is 8-byte aligned, so some bytes are lost in alignment. A Shore object containing 1 byte of application data, for example, loses 7 bytes in alignment of the record body.
object pages
pages used for small objects and large objects.
page headers
Each page has a small header containing information about the page and its status for recovery purposes.
slot
Each small-object page contains a slot array that is used to locate the records on the page.
small obj
pages containing small objects -- objects that are small enough that they can fit in their entirety on one page, along with the various page headers and alignment taken into account.
lg obj data
pages containing the data of large objects
interior
pages used for the data structures (trees) links together other pages, whether for B-trees or for large objects

SUMMARY STATISTICS

The summary statistics report selected information that is reported in each of other categories.

BUGS

Df leaves you sitting in the directory that is the root of the last volume for which it computed the statistics.

VERSION

This manual page applies to Version 1.0 of theShore software.

SPONSORSHIP

The Shore project is sponsored by the Advanced Research Project Agency, ARPA order number 018 (formerly 8230), monitored by the U.S. Army Research Laboratory under contract DAAB07-92-C-Q508.

COPYRIGHT

Copyright (c) 1994, 1995, 1996 Computer Sciences Department, University of Wisconsin -- Madison. All Rights Reserved.

SEE ALSO

shell(svas)