11/10/89 file_system_meters, fsm Syntax as a command: fsm {-control_args} Function: used to meter certain storage system variables and functions. Control arguments: -ast prints certain meters about active segment table (AST) usage. -brief, -bf generates a shortened report. Those meters not printed if -brief is specified are indicated by a plus (+) in "Notes" below. -page -pg prints certain meters about paging. -report_reset, -rr generates a report and then performs the reset operation. The report can be shortened by using the -brief control argument. -reset, -rs resets the metering interval for the invoking process so that the interval begins at the last call with -reset specified. If -reset has never been given in a process, it is equivalent to having been specified at system initialization time. Access required: This command requires access to phcs_ or metering_gate_. Notes: If the file_system_meters command is given with no control arguments, it prints a full report. The following meters, which reflect the activity of the AST lists, are printed if the -ast control argument is specified. The two columns printed by this command contain the number of occurrences of the specified item and the average time between occurrences. Activations is the number of segment activations segfault is the number of activations caused by segment faults; also expressed as a percentage of all activations. makeknown is the number of activations not caused directly by segment faults, but resulting from explicit calls from the makeknown_ routine; also expressed as a percentage of all activations. backup is the number of activations resulting from calls to activate$backup_activate; also expressed as a percentage of all activations. directories is the number of directories activated; also expressed as a percentage of all activations Deactivations is the number of segment deactivations Demand deactivate attempts is the number of deactivations explicitly requested by users. successes is the number of demand deactivations which succeeded; also expressed as a percentage of attempts and as a percentage of all deactivations. Seg Faults faults is the number of segment faults call is the number of calls to the segment fault handler to activate a segment without taking a segment fault; also expressed as a percentage of segment faults. activations is the number of segment faults that resulted in an activation; also expressed as a percentage of segment faults. Bound Faults is the number of bound faults. + Setfaults is the number of setfaults performed during segment deactivation and during the handling of bound faults. Setfaults are segment faults forced when dynamic segment attributes are changed (e.g., access to a segment is revoked by another process). access is the number of setfaults performed because the access was changed on a segment; also expressed as a percentage of all setfaults. + ASTE Trickle is the number of times the vtoce was updated from the ASTE because the information in the VTOCE was noticed to have changed during ASTE allocation. ASTE Trickle is a hedge against system crashes, as it updates ASTEs into the VTOCEs periodically, rather than on demand. + Steps is the number of steps taken through the AST lists searching for a free, usable AST entry. + Skips is the number of times an entry was skipped; also expressed as a percentage of Steps. + ehs is the number of times an entry was skipped in the search for a free, usable entry because the entry-hold-switch was on. The entry-hold-switch is set for certain segments that cannot be deactivated. Also expressed as a percentage of Skips. + mem is the number of times an entry was skipped because it had pages in memory; also expressed as a percentage of Skips. + init is the number of times an entry was skipped to give it a grace lap after all of its pages were removed from core; also expressed as a percentage of Skips. + Searches is the number of full AST searches required because no entry was readily available. + Avg. Cost is the average "cost" in I/Os of deactivations arising from full searches. Cleanups is the number of calls to cleanup. The percentage of real time spent in cleanup is also given. Force writes is the number of calls to force_write. The three following meters relating to force_writes are printed only if any force_writes occurred. without pwrites is the number of times force_write wrote no pages. pages written is the number of pages written by force_write. force updatev is the number of calls to update_vtoce resulting from force_writes. Lock AST is the number of lockings of the AST. The following meters provide information about AST lock contention. AST locked is the average real time during which the AST lock is held locked and the percentage of the metering interval during which the AST was locked. This percentage cannot exceed 100%, and the closer the 100% figure is approached, the more AST lock contention becomes the limiting function in system throughput. AST lock waiting is the average real time delay between an attempt to lock the AST and successful locking of the AST. The total real time spent by all processes waiting for the AST lock, expressed as a percentage of the metering interval, is also given. This number may exceed 100% if, on the average, more than one process was waiting for the AST lock. The following items represent a table indexed by page table size and they show the activity and use of the four AST lists. AST Sizes indicates the page table sizes being used by the system (constant). Number is the number of entries of the specified size. Need is the number of entries of the specified size that were needed. Steps is the number of steps taken while scanning the specified list. Ave Steps is the average number of steps taken in the specified list to find a usable entry in the list. Lap Time (sec) is the average time for the replacement algorithm to make one pass over the list. The following meters are printed if the -page control argument is specified. The two columns printed by this command contain the number of occurrences of the specified item and the average time between occurrences. Needc is the number of times a frame of main memory was needed (for page faults, process loadings, etc.). Ceiling is the number of times too many write requests were queued at once. Not printed if zero. Claim runs is the number of times the page removal algorithm could not queue an additional write until a previous write was completed. If the average time between claim runs is less than .010 minutes, then an I/O bottleneck probably exists in the system. If the value of claim runs is zero, then the value is not printed. Ring O faults is the percentage of page faults that occurred while executing in ring O. PDIR faults is the percentage of page faults that occur on pages of segments in process directories. Level 2 faults is the percentage of page faults on pages of segments in directories directly off the root. This is a measure of the activity of the system libraries. DIR faults is the percentage of page faults on directory pages. New Pages is the percentage of page faults that resulted in the creation of pages. This happens because the page faulted has never been referenced or logically contains all zeros. Volmap_seg is the number of page faults taken on free storage maps; also expressed as the average time between faults. Zero pages is the number of page writes that were avoided because the page to be written contained all zeros. In general, pages of zeros are not written to disk but are converted to null addresses (an indication in the file map for the segment that the page is logically zero). Also expressed as the average time between zero pages. Segment State Change is a measure of suspected covert channel activity. audited is the number of times all processes performed suspected covert channel segment state changes at a rate exceeding the system-defined limit. delayed is the number of times all processes had to be delayed in order to keep the rate of suspected covert channel segment state changes within the system-defined limit. avg. is the average time processes were delayed. Laps is the number of times the used pointer has gone around the main memory used list in the search for a usable block of main memory. + Steps is the number of steps taken around the main memory used list. A step consists in moving the used pointer to the next entry on the list. + Skip is the number of times a page was skipped; also expressed as a percentage of Steps. + wired is the number of times a page was skipped while searching the main memory used list because it was wired down; also expressed as a percentage of Skip. + used is the number of times a page was skipped because it was used in the last lap; also expressed as a percentage of Skip. + mod is the number of times a page was skipped because it had been modified; also expressed as a percentage of Skip. + fc pin is the number of times a page was skipped by find_core because it was pinned; also expressed as a percentage of Skip. + cl pin is the number of times a page was skipped by claim_mode_core because it was pinned; also expressed as a percentage of Skip. pages is the number of pages available in the system. This is the total main memory minus the permanently wired down supervisor. wired is the number of pages temporarily wired down. This includes descriptor segments and process data segments (PDS) for loaded processes. Average steps is the average number of steps taken around the main memory used list to find a usable frame of main memory. ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved