|
|
1.1 ! root 1: .\" Copyright (c) 1985, 1990 The Regents of the University of California. ! 2: .\" All rights reserved. ! 3: .\" ! 4: .\" Redistribution and use in source and binary forms are permitted provided ! 5: .\" that: (1) source distributions retain this entire copyright notice and ! 6: .\" comment, and (2) distributions including binaries display the following ! 7: .\" acknowledgement: ``This product includes software developed by the ! 8: .\" University of California, Berkeley and its contributors'' in the ! 9: .\" documentation or other materials provided with the distribution and in ! 10: .\" all advertising materials mentioning features or use of this software. ! 11: .\" Neither the name of the University nor the names of its contributors may ! 12: .\" be used to endorse or promote products derived from this software without ! 13: .\" specific prior written permission. ! 14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED ! 15: .\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF ! 16: .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 17: .\" ! 18: .\" @(#)systat.1 6.9 (Berkeley) 7/24/90 ! 19: .\" ! 20: .Dd July 24, 1990 ! 21: .Dt SYSTAT 1 ! 22: .Os BSD 4.3 ! 23: .Sh NAME ! 24: .Nm systat ! 25: .Nd display system statistics on a crt ! 26: .Sh SYNOPSIS ! 27: .Nm systat ! 28: .Op Fl display ! 29: .Op Ar refresh-interval ! 30: .Sh DESCRIPTION ! 31: .Nm Systat ! 32: displays various system statistics in a screen oriented fashion ! 33: using the curses screen display library, ! 34: .Xr curses 3 . ! 35: .Pp ! 36: While ! 37: .Nm systat ! 38: is running the screen is usually divided into two windows (an exception ! 39: is the vmstat display which uses the entire screen). The ! 40: upper window depicts the current system load average. The ! 41: information displayed in the lower window may vary, depending on ! 42: user commands. The last line on the screen is reserved for user ! 43: input and error messages. ! 44: .Pp ! 45: By default ! 46: .Nm systat ! 47: displays the processes getting the largest percentage of the processor ! 48: in the lower window. Other displays show swap space usage, disk i/o ! 49: statistics (a la ! 50: .Xr iostat 1 ) , ! 51: virtual memory statistics (a la ! 52: .Xr vmstat 1 ) , ! 53: network ``mbuf'' utilization, and network connections (a la ! 54: .Xr netstat 1 ) . ! 55: .Pp ! 56: Input is interpreted at two different levels. ! 57: A ``global'' command interpreter processes all keyboard input. ! 58: If this command interpreter fails to recognize a command, the ! 59: input line is passed to a per-display command interpreter. This ! 60: allows each display to have certain display-specific commands. ! 61: .Pp ! 62: Command line options: ! 63: .Pp ! 64: .Tw refresh_interval ! 65: .Tp Cx Fl ! 66: .Ar display ! 67: .Cx ! 68: The ! 69: .Fl ! 70: flag expects ! 71: .Ar display ! 72: to be one of: ! 73: .Ic pigs , ! 74: .Ic iostat , ! 75: .Ic swap , ! 76: .Ic mbufs , ! 77: .Ic vmstat ! 78: or ! 79: .Ic netstat . ! 80: These displays can also be requested interactively (without the ! 81: .Dq Fl ) ! 82: and are described in ! 83: full detail below. ! 84: .Tp Ar refresh-interval ! 85: The ! 86: .Ar refresh-value ! 87: specifies the screen refresh time interval in seconds. ! 88: .Tp ! 89: .Pp ! 90: Certain characters cause immediate action by ! 91: .Nm systat . ! 92: These are ! 93: .Tw Fl ! 94: .Tp Ic \&^L ! 95: Refresh the screen. ! 96: .Tp Ic \&^G ! 97: Print the name of the current ``display'' being shown in ! 98: the lower window and the refresh interval. ! 99: .Tp Ic \&^Z ! 100: Stop ! 101: .Nm systat . ! 102: .Tp Ic \&: ! 103: Move the cursor to the command line and interpret the input ! 104: line typed as a command. While entering a command the ! 105: current character erase, word erase, and line kill characters ! 106: may be used. ! 107: .Pp ! 108: The following commands are interpreted by the ``global'' ! 109: command interpreter. ! 110: .Tp Ic \&help ! 111: Print the names of the available displays on the command line. ! 112: .Tp Ic \&load ! 113: Print the load average over the past 1, 5, and 15 minutes ! 114: on the command line. ! 115: .Tp Ic \&stop ! 116: Stop refreshing the screen. ! 117: .Tp Cx Op Ic start ! 118: .Cx \&\ \& ! 119: .Op Ar number ! 120: .Cx ! 121: Start (continue) refreshing the screen. If a second, numeric, ! 122: argument is provided it is interpreted as a refresh interval ! 123: (in seconds). ! 124: Supplying only a number will set the refresh interval to this ! 125: value. ! 126: .Tp Ic \&quit ! 127: Exit ! 128: .Nm systat . ! 129: (This may be abbreviated to ! 130: .Ic q . ) ! 131: .Tp ! 132: .Pp ! 133: The available displays are: ! 134: .Tw Ic ! 135: .Tp Ic pigs ! 136: Display, in the lower window, those processes resident in main ! 137: memory and getting the ! 138: largest portion of the processor (the default display). ! 139: When less than 100% of the ! 140: processor is scheduled to user processes, the remaining time ! 141: is accounted to the ``idle'' process. ! 142: .Tp Ic iostat ! 143: Display, in the lower window, statistics about processor use ! 144: and disk throughput. Statistics on processor use appear as ! 145: bar graphs of the amount of time executing in user mode (``user''), ! 146: in user mode running low priority processes (``nice''), in ! 147: system mode (``system''), and idle (``idle''). Statistics ! 148: on disk throughput show, for each drive, kilobytes of data transferred, ! 149: number of disk transactions performed, and average seek time ! 150: (in milliseconds). This information may be displayed as ! 151: bar graphs or as rows of numbers which scroll downward. Bar ! 152: graphs are shown by default; ! 153: .Pp ! 154: The following commands are specific to the ! 155: .Ic iostat ! 156: display; the minimum unambiguous prefix may be supplied. ! 157: .Dw Fl ! 158: .Dp Cm numbers ! 159: Show the disk i/o statistics in numeric form. Values are ! 160: displayed in numeric columns which scroll downward. ! 161: .Dp Cm bars ! 162: Show the disk i/o statistics in bar graph form (default). ! 163: .Dp Cm msps ! 164: Toggle the display of average seek time (the default is to ! 165: not display seek times). ! 166: .Dp ! 167: .Pp ! 168: .Tp Ic swap ! 169: Display, in the lower window, swap space in use on each swap ! 170: device configured. Two sets of bar graphs are shown. The ! 171: upper graph displays swap space allocated to pure text segments ! 172: (code), the lower graph displays space allocated to stack and ! 173: data segments. Allocated space is sorted by its size into buckets ! 174: of size dmmin, dmmin*2, dmmin*4, up to dmmax (to reflect allocation ! 175: policies imposed by the system). The disk segment size, in sectors, ! 176: is displayed along the left hand side of the text, ! 177: and data and stack graphs. ! 178: Space allocated to the user structure and page ! 179: tables is not currently accounted for. ! 180: .Tp Ic mbufs ! 181: Display, in the lower window, the number of mbufs allocated ! 182: for particular uses, i.e. data, socket structures, etc. ! 183: .Tp Ic vmstat ! 184: Take over the entire display and show a (rather crowded) compendium ! 185: of statistics related to virtual memory usage, process scheduling, ! 186: device interrupts, system name translation cacheing, disk i/o, etc. ! 187: .Pp ! 188: The upper left quadrant of the screen shows the number ! 189: of users logged in and the load average over the last one, five, ! 190: and fifteen minute intervals. ! 191: Below this line are statistics on memory utilization. ! 192: The first row of the table reports memory usage only among ! 193: active processes, that is processes that have run in the previous ! 194: twenty seconds. ! 195: The second row reports on memory usage of all processes. ! 196: The first column reports on the number of physical pages ! 197: claimed by processes. ! 198: The second column reports the number of physical pages that ! 199: are devoted to read only text pages. ! 200: The third and fourth columns report the same two figures for ! 201: virtual pages, that is the number of pages that would be ! 202: needed if all processes had all of their pages. ! 203: Finally the last column shows the number of physical pages ! 204: on the free list. ! 205: .Pp ! 206: Below the memory display is the disk usage display. ! 207: It reports the number of seeks, transfers, and number ! 208: of kilobyte blocks transferred per second averaged over the ! 209: refresh period of the display (by default, five seconds). ! 210: For some disks it also reports the average milliseconds per seek. ! 211: Note that the system only keeps statistics on at most four disks. ! 212: .Pp ! 213: Below the disk display is a list of the ! 214: average number of processes (over the last refresh interval) ! 215: that are runnable (`r'), in page wait (`p'), ! 216: in disk wait other than paging (`d'), ! 217: sleeping (`s'), and swapped out but desiring to run (`w'). ! 218: Below the queue length listing is a numerical listing and ! 219: a bar graph showing the amount of ! 220: system (shown as `='), user (shown as `>'), ! 221: nice (shown as `-'), and idle time (shown as ` '). ! 222: .Pp ! 223: At the bottom left are statistics on name translations. ! 224: It lists the number of names translated in the previous interval, ! 225: the number and percentage of the translations that were ! 226: handled by the system wide name translation cache, and ! 227: the number and percentage of the translations that were ! 228: handled by the per process name translation cache. ! 229: .Pp ! 230: Under the date in the upper right hand quadrant are statistics ! 231: on paging and swapping activity. ! 232: The first two columns report the average number of pages ! 233: brought in and out per second over the last refresh interval ! 234: due to page faults and the paging daemon. ! 235: The third and fourth columns report the average number of pages ! 236: brought in and out per second over the last refresh interval ! 237: due to swap requests initiated by the scheduler. ! 238: The first row of the display shows the average ! 239: number of disk transfers per second over the last refresh interval; ! 240: the second row of the display shows the average ! 241: number of pages transferred per second over the last refresh interval. ! 242: .Pp ! 243: Below the paging statistics is a line listing the average number of ! 244: total reclaims ('Rec'), ! 245: intransit blocking page faults (`It'), ! 246: swap text pages found in free list (`F/S'), ! 247: file system text pages found in free list (`F/F'), ! 248: reclaims from free list (`RFL'), ! 249: pages freed by the clock daemon (`Fre'), ! 250: and sequential process pages freed (`SFr') ! 251: per second over the refresh interval. ! 252: .Pp ! 253: Below this line are statistics on the average number of ! 254: zero filled pages (`zf') and demand filled text pages (`xf') ! 255: per second over the refresh period. ! 256: The first row indicates the number of requests that were ! 257: resolved, the second row shows the number that were set up, ! 258: and the last row shows the percentage of setup requests were ! 259: actually used. ! 260: Note that this percentage is usually less than 100%, ! 261: however it may exceed 100% if a large number of requests ! 262: are actually used long after they were set up during a ! 263: period when no new pages are being set up. ! 264: Thus this figure is most interesting when observed over ! 265: a long time period, such as from boot time ! 266: (see below on getting such a display). ! 267: .Pp ! 268: Below the page fill statistics is a column that ! 269: lists the average number of context switches (`Csw'), ! 270: traps (`Trp'; includes page faults), system calls (`Sys'), interrupts (`Int'), ! 271: characters output to DZ ports using pseudo-DMA (`Pdm'), ! 272: network software interrupts (`Sof'), ! 273: page faults (`Flt'), pages scanned by the page daemon (`Scn'), ! 274: and revolutions of the page daemon's hand (`Rev') ! 275: per second over the refresh interval. ! 276: .Pp ! 277: Running down the right hand side of the display is a breakdown ! 278: of the interrupts being handled by the system. ! 279: At the top of the list is the total interrupts per second ! 280: over the time interval. ! 281: The rest of the column breaks down the total on a device ! 282: by device basis. ! 283: Only devices that have interrupted at least once since boot time are shown. ! 284: .Pp ! 285: The following commands are specific to the ! 286: .Ic vmstat ! 287: display; the minimum unambiguous prefix may be supplied. ! 288: .Dp Cm boot ! 289: Display cumulative statistics since the system was booted. ! 290: .Dp Cm run ! 291: Display statistics as a running total from the point this ! 292: command is given. ! 293: .Dp Cm time ! 294: Display statistics averaged over the refresh interval (the default). ! 295: .Dp Cm zero ! 296: Reset running statistics to zero. ! 297: .Dp ! 298: .Tp Ic netstat ! 299: Display, in the lower window, network connections. By default, ! 300: network servers awaiting requests are not displayed. Each address ! 301: is displayed in the format ``host.port'', with each shown symbolically, ! 302: when possible. It is possible to have addresses displayed numerically, ! 303: limit the display to a set of ports, hosts, and/or protocols ! 304: (the minimum unambiguous prefix may be supplied): ! 305: .Pp ! 306: .Dw Ar ! 307: .Dp Cm all ! 308: Toggle the displaying of server processes awaiting requests (this ! 309: is the equivalent of the ! 310: .Fl a ! 311: flag to ! 312: .Ar netstat 1 ) . ! 313: .Dp Cm numbers ! 314: Display network addresses numerically. ! 315: .Dp Cm names ! 316: Display network addresses symbolically. ! 317: .Dp Ar protocol ! 318: Display only network connections using the indicated protocol ! 319: (currently either ``tcp'' or ``udp''). ! 320: .Dp Cx Cm ignore ! 321: .Cx \&\ \& ! 322: .Op Ar items ! 323: .Cx ! 324: Do not display information about connections associated with ! 325: the specified hosts or ports. Hosts and ports may be specified ! 326: by name (``ucbmonet'', ``ftp''), or numerically. Host addresses ! 327: use the Internet dot notation (``128.32.0.9''). Multiple items ! 328: may be specified with a single command by separating them with ! 329: spaces. ! 330: .Dp Cx Cm display ! 331: .Cx \&\ \& ! 332: .Op Ar items ! 333: .Cx ! 334: Display information about the connections associated with the ! 335: specified hosts or ports. As for ! 336: .Ar ignore , ! 337: .Op Ar items ! 338: may be names or numbers. ! 339: .Dp Cx Cm show ! 340: .Cx \&\ \& ! 341: .Op Ar ports\&|hosts ! 342: .Cx ! 343: Show, on the command line, the currently selected protocols, ! 344: hosts, and ports. Hosts and ports which are being ignored ! 345: are prefixed with a `!'. If ! 346: .Ar ports ! 347: or ! 348: .Ar hosts ! 349: is supplied as an argument to ! 350: .Cm show , ! 351: then only the requested information will be displayed. ! 352: .Dp Cm reset ! 353: Reset the port, host, and protocol matching mechanisms to the default ! 354: (any protocol, port, or host). ! 355: .Dp ! 356: .Tp ! 357: .Pp ! 358: Commands to switch between displays may be abbreviated to the ! 359: minimum unambiguous prefix; for example, ``io'' for ``iostat''. ! 360: Certain information may be discarded when the screen size is ! 361: insufficient for display. For example, on a machine with 10 ! 362: drives the ! 363: .Ic iostat ! 364: bar graph displays only 3 drives on a 24 line terminal. When ! 365: a bar graph would overflow the allotted screen space it is ! 366: truncated and the actual value is printed ``over top'' of the bar. ! 367: .Pp ! 368: The following commands are common to each display which shows ! 369: information about disk drives. These commands are used to ! 370: select a set of drives to report on, should your system have ! 371: more drives configured than can normally be displayed on the ! 372: screen. ! 373: .Dw Tx ! 374: .Dp Cx Cm ignore ! 375: .Cx \&\ \& ! 376: .Op Ar drives ! 377: .Cx ! 378: Do not display information about the drives indicated. Multiple ! 379: drives may be specified, separated by spaces. ! 380: .Dp Cx Cm display ! 381: .Cx \&\ \& ! 382: .Op Ar drives ! 383: .Cx ! 384: Display information about the drives indicated. Multiple drives ! 385: may be specified, separated by spaces. ! 386: .Dp ! 387: .Sh FILES ! 388: .Dw /etc/networks ! 389: .Di L ! 390: .Dp Pa /vmunix ! 391: for the namelist ! 392: .Dp Pa /dev/kmem ! 393: for information in main memory ! 394: .Dp Pa /dev/drum ! 395: for information about swapped out processes ! 396: .Dp Pa /etc/hosts ! 397: for host names ! 398: .Dp Pa /etc/networks ! 399: for network names ! 400: .Dp Pa /etc/services ! 401: for port names ! 402: .Dp ! 403: .Sh AUTHOR ! 404: The unknown hacker. The ! 405: .Ic pigs ! 406: display is derived from a program of the same name ! 407: written by Bill Reeves. ! 408: .Sh HISTORY ! 409: .Nm ! 410: appeared in 4.3 BSD. ! 411: .Sh BUGS ! 412: Takes 2-10 percent of the cpu. Certain displays presume ! 413: a 24 line by 80 character terminal. The swap space display ! 414: should account for space allocated to the user structure and ! 415: page tables. The ! 416: .Ic vmstat ! 417: display looks out of place because it is (it was added in as ! 418: a separate display rather than create a new program). ! 419: .Pp ! 420: The whole ! 421: thing is pretty hokey and was included in the distribution under ! 422: serious duress.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.