DiskMap Help updated: 2022-03-30 DiskMap is a utility to analyze and disk and file usage and fragmentation. You must have SM capability to use some of DiskMap's commands. Note: if using a terminal emulator, put it into 132 column mode for the best results when using the LISTLT command. The most popular commands are probably: LISTLT ALL EXTENTS 400 BIGDIRS MBS 4096 ... list all files that have more than 400 extents ... list all directories that are "big" (and may be close to causing XM system aborts) ... list all files that are more than 4 GB in size MAP ALL ... produce a one-line-per-disk-drive "map" of disk space usage. VSODS NODES 100 ... list in-use objects (usually files) that are using more than 100 nodes in the Extent B-Tree. Note: the above commands will produce nicer output if your terminal is 132 characters wide (or more), and the CI variable COLUMNS has the correct terminal width in it. The various commands are: ALTFILEq ANALyze CHECKFILE CONTACT COUNTFiles DISCfree DISKSIZE DISPLAYEXTENTS DSTat ECHO ERRor Exit FINDDISKs FINDFILELABEL FINDFILEUFID FINDPAGE FINDSID FLUSH IS_SYS LISTFILEIF LISTLT MAP MEMMAP PAGE RESETq SCOREdisk SECTOR SETq SHOWVsets SSM TIMESTAMP UFID USEq VERIFYvol VERsion VSETLDEV VSETNAME VSFILEs VSODs WATCHDFS WHOUSE ZOOM HELP CLEARREDO DO LISTREDO REDO Help on individual commands can be obtained by typing: HELP Example: HELP MAP ---------------------------------------------------------------- Commands: (may be abbreviated to the uppercase portion) ALTFILEq [] []* what ::= filename | ^indirect | fileset loudness := noQuiet | Normal | noVerbose options ::= [FILECODE #] [PRIV_level #] [noPROTECTed | noUNPROTECTed] [noPPROTECT] [noBACKUP] [YES] (Requires SM capability) The ALTFILE command may be used to inspect or change some characteristics of a file. The file code can be changed, the privilege level can be set to a desired value, and several flags can be changed. may be a single filename, an indirect filename (ala STORE), or a wildcarded fileset (e.g., FOO@). If no options are seen after the filename, the current state of the file is reported, and no changes are made. The FILECODE option allows a file code in the range -32768..32767. The PRIV_LEVEL option allows a privilege level in the range 0..3. Note: the file code, priv level, and various flags have meanings to MPE and various subsystems. Do not change them without a good understanding of the ramifications. ANAlyze [ldev#] [fileset] [ options... ] options ::= [NO]SIZE | [NO]SORT | MIN # | LDEV ldev# | [NO]SUMMARY | PAGES < # | PAGES > # | NEEDTRIM | MBs < # | MBs > # | EXTENTS < # | EXTENTS > # | DUMPworthy Default: @.@.@ SIZE, NOSORT, MIN 1, SUMMARY Reports the fragmentation percentage (0% = not fragmented, 100% = completely fragmented) for the specified files, potentially filtering the files with some of the options. The fileset defaults to @.@.@ (or / as of MPE/iX 4.5). The ldev# option, if present, restricts the analysis to only those files in the fileset that have all (or part) of their disk space on the specified LDEV. SIZE reports the size of each selected file, including number of pages, megabytes (MBs), and extents. NOSIZE disables this report. SORT causes the selected files to be displayed in descending order of fragmentation percentage. For files with the same percentage, alphabetic order is used. NOSORT causes the files to be displayed in file-system order. MIN # is the minimum fragmentation percentage that will be reported. This value defaults to 1. This means that any file less fragmented than the "min%" value will not be displayed. SUMMARY causes a two or three line summary to be displayed. NOSUMMARY disables the summary. DUMPworthy excludes all files that are not marked as "dumpworthy". EXTENTS > # excludes files with more than the specified number of extents. A value of 0 means: ignore this option. Default: EXTENTS > 0 EXTENTS < # excludes files that have less than the specified number of extents. A value of 0 means: ignore this option. Default: EXTENTS < 0 MBS > # excludes files that are smaller than the specified number of megabytes. A value of 0 means: ignore this option. Default: MBS > 0 MBS < # excludes files that are larger than the specified number of megabytes. A value of 0 means: ignore this option. Default: MBS < 0 PAGES > # excludes files that are smaller than the specified number of pages. A value of 0 means: ignore this option. Default: PAGES > 0 PAGES < # excludes files that are larger than the specified number of pages. A value of 0 means: ignore this option. Default: PAGES < 0 If both PAGES < # and PAGES > # are specified, then a file will be reported only if it falls within the range. The NEEDTRIM option shows only those files that could benefit from a TRIM command. Note: if MIN is not specified, then NEEDTRIM implies MIN 0. CHECKFILE [FIXGID | YES | NO] The CHECKFILE command examines the specified files to see if any have a GroupID (GID) that is non-0. A non-0 GID can be a problem on pre 4.5 versions of MPE/iX. If no options are specified, you will be prompted for permission to fix any files found whose GIDs are not 0. The NO option tells DiskMap to report such files, but not to fix them. The YES or FIXGID options tells tells DiskMap to fix such files as they are found. CONTACT The CONTACT command tells you how to contact Lund Performance Solutions. COUNTFiles The COUNTFILES command counts how many disk files are on the specified disk (or volume set). ALL, the default, counts all disk files on all disks on the system and gives a one line total. EACH is like ALL, but gives a per-disk-drive count as well as a overall total. Note: a file is counted as being on a disk drive if its label is on that drive ... DiskMap doesn't consider whether or not any disk extents are on the drive. DISCfree [ALL] [type] [ONVS vsetname] [BYVS] DISCFREE ldev# [type] [ONVS] type ::= Prints information about one or ALL (default) disks. If ALL and BYVS are specified, the disks will be grouped by volume sets. If ONVS is specified, then only those disks that are in the same volume set as the specified vsetname (or LDEV) will be listed. Three types of reports are available: Detail Prints about 4 lines per selected disk drive. Graphics Prints one line (a "bar graph") per disk drive. Summary Prints one line per disk drive. The default type of report is "Summary BYVS". Note: the "Available" figures reported by DISCFREE take into account the "maximum permanent space percentage" that exists and is tailorable for each disk drive (via VOLUTIL). Thus, if a 100 MB disk drive has been configured in VOLUTIL as "Maximum permanent space: 93%", and is completely empty, then the available permanent storage on the drive is 93 MB, not the entire 100 MB. Graphics output can be scaled or noscaled. Each line shows how full the disk drive is, with an asterisk ("*") showing used pages, and a dot (".") showing free pages. Thus, the following example shows a disk drive that is 1/3 full (2/3 empty), where small portion of the in use pages are for transient use (marked with a plus ("+")): [********++....................] The default for "Graphics" is "SCALED", which means that smaller disk drives use less space to show their bar graph, which means that every asterisk and dot represent about the same amount of disk space, even if the disk drives are of different size. Example of SCALED vs. NOSCALED: Assume you have two disk drives: LDEV 11, volume FOO1, 2 GB, 1/3 full LDEV 12, volume FOO2, 1 GB, 1/3 full The "DISCFREE GRAPHICS" (or "DISCFREE GRAPHICS SCALED") for those two would be: 11 [**********....................] (2,048 MBs) FOO1 12 [*****..........] (1,024 MBs) FOO2 Thus, in the above, each "*" and each "." represent about 68 MB of disk space. The "DISCFREE GRAPHICS NOSCALE" for those two would be: 11 [**********....................] (2,048 MBs) FOO1 12 [**********....................] (1,024 MBs) FOO2 For LDEV 11, each "*" and each "." represent about 68 MB of disk space. For LDEV 12, however, each "*" and each "." represent about 34 MB of disk space! In a few cases, a "-" will be shown instead of a ".". This indicates that some of the free space on the drive is not available for permanent storage, because the drive's VOLUTIL "Max Permanent" value is less than 100%. Note that the bar graph is *not* showing how fragmented the drives are ... a MAP command reports that information. DISKSIZE [RAW] [[no]MPE] DISKSIZE reports the size of the specified LDEV, or of all disk drives. By default, the MPE routine get_hpe_disc_size is used (MPE). NOMPE uses a "probe" technique that can cause several disk I/O errors to be logged to the system logfile. Normally, only mounted disk drives can be checked. The RAW option bypasses this check. DISPLAYEXTENTS (or: DE) what [filter] [options] ::= [LDEV] ldev# [entry# | ALLdisks | DEFECT] | [FILE] filename | [FLAB] sid.offset ::= [ALLEntries] (ALLE only for LDEV 'what') [DUMPWORTHY] [FRAGonly] ::= [matching_ldev] [
] [
] [] [] [EBes] [SLOWfilenames] [SSM] Note: "DE" is synonym for "DISPLAYEXTENTS" Note: filename of FLAB $sid.$offset is allowed, where sid.offset is the address of either a t_file_label_entry (ends in $00) or a flab_t (ends in $20). Note: "ALL" in options is synonym for: ADDR EBES SSM Displays list of extents for specified file. If a matchldev is specified, only those extents that are on the specified LDEV are listed. By default, the information is presented in terms of PAGES. The SECTORS option changes the information to be in terms of 256-byte sectors. The FRAGONLY option suppresses the display of each extent, and instead shows only the fragmentation score for the file. The ADDRESS option displays the extent descriptor address of each extent. (This is an address within a Label Table.) The ALL option (for DE FILE or DE FLAB) is a shorthand for ADDR SSM. The ALL option for DE LDEV is a shorthand for ALLENTRIES. The SORT option tells DiskMap you want to see the extents of a file in sorted order (sorted by file-offset). UNSORTED tells DiskMap you want to see the extents in the order you'd find them by walking the Label Table entries for the file. (Default: SORT) The SSM option displays some Secondary Storage Manager information about each extent. This information is much more low-level than what almost anyone wants to see. Example of SSM output: DiskMap> de foo.source ssm File: /SIELER/SOURCE/FOO (2 extents) LDEV Disk Page# # Pages File Page # [SSM info] ---- ---------- ------- ----------- ---------- 13 168,807 20 0 [$851d8bb3 = p $88] 13 266,748 2 20 [$851e4afe = p $88] In the above output, the [bracketed] information shows the virtual address of the first byte of the Secondary Storage map that corresponds with the first page of the extent. The "= p" says "the first page is marked as a Permanent page". (The $88 is the first byte of the Secondary Storage Map.) NOTE: DiskMap always checks to see if all of the pages of each extent are properly marked as "permanent" pages in the Secondary Storage Map for the appropriate disk drive. If even one page isn't marked "permanent", it will be noted on the output. CLEARREDO DO [prefix] REDO [prefix] LISTREDO By default, DiskMap uses CI-style REDO editing. If you want to use QZMODIFY, say: SET MODIFY = QZmodify To revert to CI-style REDO editing, say: SET MODIFY = CIredo DSTAT [ ALLdisks ] [ONVS vsetname] [options]... DSTAT ldev# [ONVS] [options]... options ::= Displays an expanded form of MPE's :DSTAT output. If an ONVS option is specified, only the disks in that volume set will be shown. DSTAT 1 ONVS will list only the disks in the same volume set as LDEV 1. DSTAT ONVS USERS will list only the disks in the USERS volume set. (DSTAT ALL ONVS USERS is the same) If the ALL option is specified (not the ALLDISKS keyword), then an extra level of detailed internal information is displayed. (DETAILS is a synonym for ALL) The BADSECTORS option reports information about bad sectors for each disk drive. The DATES option reports the date each volume was created. The FREE option counts the number of pages in the free, permanent (in use) and transient state for the specified disk drives. Note: this is a bit slow. Note: the "copy" (or "slave") drive of a mirrored pair will be shown as a lowercase name. Default: ALLdisks NODETAILS ECHO text Echoes the rest of the line to $STDLIST. ERRor # Translates an error# into a message, using the system error message catalog. Example: error $ffcc0008 Exit or: // FINDDISKS This is an internal tool for DiskMap testing. FINDFILE ... see FINDPAGE (FINDSECTOR) and/or FINDSID There are foud basic methods of finding a file of interest, depending upon why you are looking for a file: FINDPAGE (or FINDSECTOR or FINDBLOCK) This tries to find a file that contains a specified disk page (or sector or block). FINDSID This tries to find a file that is associated with a specified virtual address (generally, a Space ID). FINDFILELABEL This tries to map a file label virtual address to a file name. FINDFILEUFID This tries to map a UFID to a file name. FINDFILELABEL filelabeladdress [] FINDFILELABEL attempts to map a filelabel address into a filename. By default, the "fast" approach is used. However, this will fail for HFS files ... for such files, the SLOW option must be specified. NOTE: the SLOW option uses an MPE/iX kernel routine which is *quite* slow. Default: FAST Example: findfilelabel $000000C4.$00AD8B20 SLOW --> /SIELER/SOURCE/T (took 104 seconds on a 3000/968 with 35,000 files) FINDFILEUFID ufid#1 ufid#2 ufid#3 [ufid#4 ufid#5] [] FINDFILEUFID attempts to map a UFID into a filename. By default, the "fast" approach is used. However, this will fail for HFS files. The "SLOW" option uses an MPE routine that searches all directories, looking for a match. It can take several minutes. FINDBLOCK block# [/block#] [options] FINDPAGE page# [/page#] [options] FINDSECTOR sector# [/sector#] [options] options:: ALLinfo | ALLVSETS | CHECKLDEV ldev# FINDPAGE (and FINDSECTOR and FINDBLOCK) scan one or more disk drives, looking for a file with an extent that includes the specified page (or sector or block). Any file with that page (or sector or block) will be reported. (A "sector" is 256 bytes, a "block" is usually 512 bytes, and a page is 4096 bytes.) If a range of pages/sectors/blocks is specified, then any file with an extent that even partially overlaps that area of disk will be reported. If a search LDEV is given, only the disks in the same volume set will be searched. Because file labels (and extent blocks) do not contain actual LDEVs (instead, they contain volume set indices), there is no way that a file could have an extent in a different volume set. The ANYLDEV option tells FINDPAGE/FINDSECTOR/FINDBLOCK to check only for the specified page (or sector or block) number(s)...this would be useful if a utility had reported a problem with a page/sector/block of disk without also reporting the LDEV. The CHECKLDEV option restricts the search to just the Label Table of the specified disk drive, instead of every disk drive in the same volume set as the search LDEV. If the ALLINFO option is specified, the address of the extent block entry for each "hit" is given. FINDSID [options] (synonyms: FINDVA, FINDSPACE) options ::= GUFD | noFLAB | HIGHEST FINDSID tries to determine what objects (file, stack, heaps, etc.) are associated with the specified virtual address(es). The virtual address can be specified by a entering a SpaceID (sid), or a 64-bit virtual address (e.g.: $11.$1000), or a range of sid/sid, or a range of virtual address / virtual address (e.g., $11.0/$22.0), or all in-use addresses (ALL). One use of this is when you are see a SpaceID ("SID") for an NM code address in Debug/iX, and Debug can't tell you what file the code address is part of. For example, for SpaceId $11, you could do: FINDSID $11 FINDSID ALL will list all objects with virtual addresses assigned (including recently closed files). Options: ALLINFO Tells FINDSID to report extra information about each matching object. Initially sets MEMORY option, which can be overridden by a subsequent NOMEMORY. ATLEAST #pages Tells FINDSID to only report object that have at least the specified number of pages in memory. (A page is 4096 bytes. (Always implicitly sets MEMORY option.) FILES Tells FINDSID to only list files. Normally, FINDSID will list all objects whose virtual address matches your range specification (sid, sid/sid, va, va/va, or ALL). GUFD Tells FINDSID to report the GUFD (Global Unique File Descriptor) for each file it finds. LDEV ldev# Tells FINDSID to report only those objects whose first extent is on the specified LDEV. LONGONLY Tells FINDSID to only report objects with "long mapped" virtual addresses. Excludes virtual addresses in the range $b.$80000000..$b.$bfffffff and $a.$c0000000..$a.$ffffffff. MEMORY Tells FINDSID to report the amount of main memory currently being used by each object (in units of pages). NOMEMORY Tells FINDSID not to find & report the amount of main memory currently being used by each object. NOMEMORY is the default, and is generally only used along with the ALL option. PAGE #1 [/#2] Tells FINDSID to report only those objects whose first disk page is at page #1 (or in the range [#1, #2]). This is usually used with LDEV ldev#, but need not be. SHORTONLY Tells FINDSID to report only those objects whose virtual address is a "short mapped" address (i.e., $b.$80000000 .. $b.$bfffffff and $a.$c0000000 .. $a.$ffffffff). FLUSH [noDOTS] The FLUSH command causes all closed (i.e., not in use) files to be flushed from memory and the least-recently-used GUFD list. This command can help free some Extent B-Tree entries. HELP or: ? [ ] HELP displays the entire help file. HELP shows help information about every command starting with the given prefix. Example: HELP M ISSYS filename The ISSYS command checks the specified filename and reports if DiskMap considers it a "system file". DiskMap will refrain from moving certain "system files" at all, and will refrain from moving certain other ones off of LDEV 1. The ISSYS command can be used to check a filename to see what class of "system file" DiskMap considers it to be. LISTFILEIF filename [options] [not ON ldev] options ::= DUMP | noVerbose If the specified filename is [not] on (or partially on) the specified LDEV, the filename will be echoed to stdlist. This command can be used to screen files to see if any are using a particular LDEV. For example: LISTFILEIF foo.fum on 33 The "DUMP" option, used for DiskMap R&D, lists the LDEVs the file is currently using. The "Verbose" option (which must come before the "ON") will cause LISTFILEIF to report why it considered a file to be on or not-on an LDEV. LISTLT [options] options ::= ALL BIGDIRS COUNT NONE TYPE # DETAILS --> ALL FLAB --> TYPE 1 FREE --> TYPE 0 LABEXT --> TYPE 2 EXTBLK --> TYPE 3 FREEEXT --> TYPE 4 FLAGS list file_flags <> 0 SLOW EXTENTS # MBS # LISTLT lists the Label Table for the specified disk drive, or all disk drives. By default, only a summary of the label table information is shown. The ALL option (e.g.: LIST ldev# ALL) causes DiskMap to list every entry in the Label Table. DETAIL is a synonym for ALL. The BIGDIRS option tells DiskMap to ignore any entry except for directories with a lot of entries. Note: the BIGDIRS, EXTENTS, and MBS options are 'or'ed together ... if any of the three are specified, a file must match any one of the three criteria to be listed. The COUNT option causes DiskMap to count the number of files in the system (ALL) or on the specified LDEV. This result is reported and no other output is generated. The NONE option tells DiskMap that you don't want to see any individual entries from the Label Table(s) listed. This is the default, and is turned off by use of ALL or TYPE (or its synonyms). The TYPE option tells DiskMap to list all of the Label Table(s) entries that are of the specified type. For example, to list only extent block entries, the option TYPE 3 (or EXTBLK) can be used. The SLOW option causes DiskMap to use *slow* code to map a file label to a filename. (For files in the MPE name space, the mapping is quick. For HFS files, the mapping can take many seconds per file.) The EXTENTS option lists only files with at least that many extents. The MBS option lists only files with at least that many MBs of disk space. MAP [ < ALL | ldev# | EACH > ] [ ANAlyze] [FREE] MAP ALL produces a single-screen summary of the disk fragmentation for all mounted disk drives, with one line of output for each disk drive. "ALL" is the default. MAP ldev# produces a single-screen summary of the disk fragmentation for the specified disk drive. MAP EACH does a MAP ldev# for each disk drive on the system. The FREE option tells DiskMap to concentrate on what pages are free, reporting only: all free / most free / some free / none none free. Note: on a single disk system, MAP ALL is treated as a MAP 1. The MAP command has access to detailed information about a disk drive only if you used the ANALYZE option or you have recently done: ANALYZE [fileset] MEMMAP [ < ALL | ldev# | EACH | SUMMARY > ] MEMMAP SUMMARY (the default) produces a single-screen summary of how each disk drive has been utilized as the source for data in memory. We look at all mounted disk drives, and produce one histogram line for each disk drive. "P" indicates Permanent disk pages, and "t" indicates transient disk pages. For example: [PPPPPPPPPPPPPPPPPPPPPPPPP ] (i.e., a half-full with "P" and half-full with " ") would indicate that that 1/2 of memory is used by permanent pages from that disk drive. MEMMAP ldev# produces a "map" of the specified disk drive, showing what pages of the disk are currently in memory. MEMMAP EACH does a MEMMAP ldev# for each disk drive on the system. MEMMAP ALL displays a one-line "map" of where from each disk drive the pages in memory have come from. The primary difference between MEMMAP ALL and MEMMAP SUMMARY is that "ALL" displays the data from the viewpoint of the disk drive, and "SUMMARY" displays the data from the viewpoint of memory. Note: on a single disk system, MEMMAP ALL is treated as a MEMMAP 1. PAGE # The PAGE command, usable only after an ANALYZE ldev# command or a MAP command with the ANALYZE option, reports the name of the file that contains the specified disk page (if any). RESET[Q] [option...] SET[Q] [option...] SETs or RESETs the specified option(s). SET and RESET will report the option settings at the end, SETQ and RESETQ will not. options: 132 tells DiskMap that your terminal is 132 columns wide (or wider). DiskMap will send the correct escape sequence to put an HP 700/92 terminal into 132 column mode, but it does not check that it worked. 80 tells DiskMap that your terminal is 80 columns wide. DiskMap will send the correct escape sequence to put an HP 700/92 terminal into 80 column mode, but it does not check that it worked. AUTOMPE tells DiskMap to automatically pass unknown commands to the HPCICOMMAND intrinsic (i.e., implied ":"). BIGDIRBYTES # tells DiskMap how big a directory must be before we consider it a "big directory". CONFIRM COUNTFILES CRON tells DiskMap that if an empty command line is entered (e.g., or ), then the last non-empty command should be re-executed. This is similar to the "SET CRON" in Debug/iX. EXTRAENH FAST FSCHECK GRAPHICS HEX Causes many numbers to be displayed in hex (with a leading dollar sign) instead of decimal. LISTF MAP_characters xxx MODify = MODIFY controls the type of redo editing you desire. SET MODIFY (or SET MODIFY = CIREDO) tells DiskMap that you want to use the Command Interpreter's REDO command. SET MODIFY = QZMODify tells DiskMap that you want to use Qedit's QZMODIFY. OLDDATES OLDSWAP OVERRIDE PAGING causes interactive runs of DiskMap to paginate output, approximately every 22 lines. At the end of each "page", DiskMap prompts to continue. A "/" will terminate the current command, and a "-" will turn off paging. PERMYES SLOWALWAYS STOPEACH SUPPRESS = # TIMES causes DiskMap to report the elapsed time and CPU time used by each command. VERBOSE SCOREDISK The SCOREDISK command looks at the specified disk drive (or ALL disk drives) and computes a "fragmentation score", which is a percentage from 0 to 100 %, and reports it. The higher the percentage, the more fragmented a disk is. A disk where every other page is in use, and other every page is free would be 100% fragmented (a score of 100). SECTOR # The SECTOR command, usable only after an ANALYZE ldev# command or a MAP command with the ANALYZE option, reports the name of the file that contains the specified disk sector (if any). SHOWVSETS [ALL] The SHOWVSETS command reports the names of the mounted volume sets on the system, and how many volumes (disks) are in each set. The ALL option displays additional information, including how many "opens" are recorded for each set. SSM ldev# page# The SSM command displays the Secondary Storage bitMap for the specified disk LDEV & page. The contents of the map for that page will tell MPE whether the page is free, transient, or permanent. TIMESTAMP #1 #2 Constructs a 64-bit integer, using #1 as the upper 32 bits, and #2 as the lower 32 bits. That value is treated as a "timestamp", which is the number of microseconds since 1970-01-01. UFID #1 #2 #3 [SLOW] This internal test command attempts to map a UFID to a filename. The SLOW option invokes an MPE routine that can take several minutes in an attempt to find a filename. Although intended as an internal test command, the UFID command can be useful when some part of MPE reports a problem with a UFID ... and doesn't report a filename with it. USEq filename Tells DiskMap to read input from the specified file. USE will echo its input. USEQ will not echo the input. USE files may be nested to a depth of 9. VERIFYVOL ldev# [[NO]CHECK] [[NO]PROGRESS] The VERIFYVOL command checks that all pages of the specified disk drive are readable. (This is more thorough than the command in VOLUTIL, which only checks a page or two.) The CHECK option, default, requires that the disk be "mounted". (Specifying "NOCHECK" allows you to attempt to read raw disk drives in unknown states.) The PROGRESS option, default, reports the progress of the verification. Note: requires SM capability. VERSION The VERSION command reports the current version of DiskMap. VSETLDEV ldev# Internal test command. VSETNAME xxxx Checks if "xxxx" is the name of a mounted volume set, and if it is, reports the LDEV associated with that volume set. VSFILES [ * ] [SUMmary] interesting ::= [MOREGopens | MOREFopens] | [CLOSED | FCLOSEd | GCLOSEd] | [FOPENed | GOPENed] | [FOPENS #] [GOPENS #] | [SHORTonly | LONGonly | PROCSHORTonly] Note: "SHORT" means system short mapped, not process short VSFILES walks the GUFD hash table, usually listing entries that are "interesting". Except for "SUMMARY", all options control what is (or is not) "interesting". Some attempt is made to notice when contradictory options are requested (e.g., CLOSED FOPENS 9, which would otherwise mean only files that are closed *and* which also have at least 9 fopens). Options: Name Meaning (list file if....) ------------- --------------------------------- CLOSED (synonym for FCLOSED GCLOSE) FCLOSEd number of FOPENs is 0 FOPENS # number of FOPENs is >= # FOPENed number of FOPENS is > 0 GCLOSEd number of GOPENs is 0 GOPENS # number of GOPENs is >= # GOPENed number of GOPENS is > 0 LONGonly file is long-mapped MOREFopens file has more FOPENs than GOPENs (which is quite unlikely to happen) MOREGopens file has more GOPENs than FOPENs PROCSHORTonly file is short mapped, process local SHORTonly file is short mapped (SR6/SR7) SUMmary don't list any interesting files "FOPENs" is the number of FOPENs without corresponding FCLOSEs. E.g., an in-use file that someone opened exclusively is likely to have an FOPEN count of 1. The file CI.PUB.SYS is likely to have an FOPEN count of at least the number of jobs plus the number of sessions. "GOPENs" is the number of sm_opens (which allocate a GUFD, but otherwise don't quite fully FOPEN a file) without corresponding sm_closes. E.g., an in-use file that someone opened exclusively is likely to have an GOPEN count of 1. A file GOPENed by STORE is likely to have a GOPEN count of 1 and an FOPEN count of 0. Normally, for any file the number of GOPENs is at least as many as the number of FOPENs. VSODS [ DISK | DUMP | FILEsonly | noFILENAMEs | NONFILESonly | LDEV ldev# | noLIST | PAGE #/# | NOTSYS | SHOWOBJCL | noSHOWFLAB | OBJCL # [/#] | # [/#] | ]* BT | NODES # | ENTRIES # The VSODS command scans the list of in-use Virtual Space Object Descriptors (VSODs), optionally listing some or all of them. This is intended as an internal DiskMap testing command. The BT option will display the number of "Extent B-Tree entries" used by listed objects. Note: the Extent B-Tree is composed of nodes, and each node has entries ... most people miscall the "nodes" as "entries" and don't know about the lower-level entries. DiskMap displays both values. An interesting use of this command is: VSODS NODES 100 which will list all objects (usually files) that are using more than 100 nodes of the Extent B-Tree Table. VSODS, with no parameters, simply counts the number of VSODs currently in use. WATCHDFS ldev [] The WATCHDFS command will watch the disk free space (DFS) map for the specified disk drive. It will report free to non-free changes (and/or vice versa, but does not differentiate between permanent vs. transient pages). Options: SHOW ... list every free -> non-free, and every non-free -> free change. SHOWAlloc ... list every free -> non-free change. SHOWFreed ... list every non-free -> free change. Default: SHOWAlloc. This command's usage differs from most other DiskMap commands, because it loops, prompting you for a one-character input. That input is treated as a command: / ... exit WATCHDFS; ? ... display this help; A ... report differences since our last map update, and then automatically update our map; R ... report differences since our last map update; U ... update our copy of the map, but don't report. WHOUSE [hfsfileset] [VS volumesetname] [DEPTH #] [MAX #] [SECTORS] The WHOUSE command reports disk usage ("who is using disk"), grouped by account (or top-level HFS directory), for the top 50 disk users. If an HFS fileset is specified, then only files in that fileset are examined. Note: the HFS fileset must begin with "/" or "./". If a volume set is specified (e.g., VS USERS), then only files on that volume set are examined. If DEPTH is specified, then DiskMap will group the disk storage by that number of directory levels. The following examples may better explain this: WHOUSE / DEPTH 1 --> summarizes by /account (and top-level dir) WHOUSE / DEPTH 2 --> summarizes by /account/group WHOUSE / DEPTH 3 --> summarizes by /account/group/file If MAX is specified, that will be the number of things reported by WHOUSE. Normally, only the number of MBs (or GBs) and the number of files is reported for each thing. The SECTORS keyword adds an additional outut column, "#Sectors". The default: DEPTH 1 for a fileset of /, and MAX 50. Example output: WHOUSE , sectors #Sectors #MBs Directory ------------- --------- ------------------- 1,681,312 410.4 /SYS 940,512 229.6 /SIELER 932,528 227.6 /SALES ... ZOOM [ROW=]# [COL=]# [ [CHUNKS] #] < LAST | NEXT > Displays detailed information about the pages in a chunk of a "disk map" (e.g., the result of a MAP ldev# command). ZOOM LAST determines the row and column of the highest map chunk that has at least one permanent page in it (i.e., it skips over chunks consisting only of free pages and/or transient pages). ZOOM NEXT zooms into the next chunk following the last map chunk you zoomed into. A new MAP command resets the NEXT counters back to row 0, column 0. ---------------------------------------------------------------- Disk Address DiskMap will sometimes display the address of an extent of disk space like: 1/123,456:23 This indicates LDEV/page:#pages. Thus, the above example is an extent on LDEV 1, starting at page 123,456, and is 23 pages long. ---------------------------------------------------------------- LDEV LDEV stands for "Logical DEVice", and is a small positive integer. MPE uses LDEVs to identify disk drive. (Some operating systems call them LUNs, and some operating systems make them hard to refer to (e.g., /dev/dsk/c0t0d0). If you do a ":DSTAT" command from the CI, you will see the LDEV for every configured disk drive attached to the system. When this help text refers to "ldev" (lowercase), it usually means that the user (you) is providing an LDEV number. ---------------------------------------------------------------- News... 20110511 First version DiskMap 20210407