|
|
1.1 ! root 1: .\" Copyright (c) 1980 Regents of the University of California. ! 2: .\" All rights reserved. The Berkeley software License Agreement ! 3: .\" specifies the terms and conditions for redistribution. ! 4: .\" ! 5: .\" @(#)pstat.8 6.6 (Berkeley) 6/24/90 ! 6: .\" ! 7: .TH PSTAT 8 "June 24, 1990" ! 8: .UC 4 ! 9: .SH NAME ! 10: pstat \- print system facts ! 11: .SH SYNOPSIS ! 12: .B pstat ! 13: .B \-aixptufT ! 14: [ ! 15: .B suboptions ! 16: ] [ ! 17: .B system ! 18: ] [ ! 19: .B corefile ! 20: ] ! 21: .SH DESCRIPTION ! 22: .I Pstat ! 23: interprets the contents of certain system tables. ! 24: If ! 25: .I corefile ! 26: is given, the tables are sought there, otherwise ! 27: in ! 28: .I /dev/kmem. ! 29: The required namelist is taken from ! 30: .I /vmunix ! 31: unless ! 32: .I system ! 33: is specified. ! 34: Options are ! 35: .TP \w'WCHAN\ 'u ! 36: .B \-a ! 37: Under ! 38: .BR \-p , ! 39: describe all process slots rather than just active ones. ! 40: .TP ! 41: .B \-i ! 42: Print the inode table with the these headings: ! 43: .IP LOC ! 44: The core location of this table entry. ! 45: .PD 0 ! 46: .IP FLAGS ! 47: Miscellaneous state variables encoded thus: ! 48: .RS ! 49: .IP L ! 50: locked ! 51: .IP U ! 52: update time ! 53: .RI ( fs (5)) ! 54: must be corrected ! 55: .IP A ! 56: access time must be corrected ! 57: .IP W ! 58: wanted by another process (L flag is on) ! 59: .IP C ! 60: changed time must be corrected ! 61: .IP S ! 62: shared lock applied ! 63: .IP E ! 64: exclusive lock applied ! 65: .IP Z ! 66: someone waiting for a lock ! 67: .IP M ! 68: contains modifications ! 69: .IP R ! 70: has a rename in progress ! 71: .RE ! 72: .IP CNT ! 73: Number of open file table entries for this inode. ! 74: .IP DEV ! 75: Major and minor device number of file system in which ! 76: this inode resides. ! 77: .IP RDC ! 78: Reference count of shared locks on the inode. ! 79: .IP WRC ! 80: Reference count of exclusive locks on the inode (this may ! 81: be > 1 if, for example, a file descriptor is inherited across a fork). ! 82: .IP INO ! 83: I-number within the device. ! 84: .IP MODE ! 85: Mode bits, see ! 86: .IR chmod (2). ! 87: .IP NLK ! 88: Number of links to this inode. ! 89: .IP UID ! 90: User ID of owner. ! 91: .IP SIZ/DEV ! 92: Number of bytes in an ordinary file, or ! 93: major and minor device of special file. ! 94: .PD ! 95: .TP ! 96: .B \-x ! 97: Print the text table with these headings: ! 98: .IP LOC ! 99: The core location of this table entry. ! 100: .PD 0 ! 101: .IP FLAGS ! 102: Miscellaneous state variables encoded thus: ! 103: .RS ! 104: .IP T ! 105: .IR ptrace (2) ! 106: in effect ! 107: .IP W ! 108: text not yet written on swap device ! 109: .IP L ! 110: loading in progress ! 111: .IP K ! 112: locked ! 113: .IP w ! 114: wanted (L flag is on) ! 115: .IP P ! 116: resulted from demand-page-from-vnode exec format (see ! 117: .IR execve (2)) ! 118: .RE ! 119: .PD ! 120: .IP DADDR ! 121: Disk address in swap, measured in multiples of 512 bytes. ! 122: .IP CADDR ! 123: Head of a linked list of loaded processes using this text segment. ! 124: .IP RSS ! 125: Size of resident text, measured in multiples of 512 bytes. ! 126: .IP SIZE ! 127: Size of text segment, measured in multiples of 512 bytes. ! 128: .IP VPTR ! 129: Core location of corresponding vnode. ! 130: .IP CNT ! 131: Number of processes using this text segment. ! 132: .IP CCNT ! 133: Number of processes in core using this text segment. ! 134: .IP FORW ! 135: Forward link in free list. ! 136: .IP BACK ! 137: Backward link in free list. ! 138: .PD ! 139: .TP ! 140: .B \-p ! 141: Print process table for active processes with these headings: ! 142: .IP LOC ! 143: The core location of this table entry. ! 144: .PD 0 ! 145: .IP S ! 146: Run state encoded thus: ! 147: .RS ! 148: .IP 0 ! 149: no process ! 150: .IP 1 ! 151: waiting for some event ! 152: .IP 3 ! 153: runnable ! 154: .IP 4 ! 155: being created ! 156: .IP 5 ! 157: being terminated ! 158: .IP 6 ! 159: stopped (by signal or under trace) ! 160: .RE ! 161: .IP F ! 162: Miscellaneous state variables, or'ed together (hexadecimal): ! 163: .RS ! 164: .IP 0001 9n ! 165: loaded ! 166: .IP 0002 ! 167: the scheduler process ! 168: .IP 0004 ! 169: locked for swap out ! 170: .IP 0008 ! 171: swapped out ! 172: .IP 0010 ! 173: traced ! 174: .IP 0020 ! 175: used in tracing ! 176: . \".IP 000040 ! 177: . \"locked in by ! 178: . \".IR lock (2). ! 179: .IP 0080 ! 180: in page-wait ! 181: .IP 0100 ! 182: prevented from swapping during ! 183: .IR fork (2) ! 184: .IP 0200 ! 185: will restore old mask after taking signal ! 186: .IP 0400 ! 187: exiting ! 188: .IP 0800 ! 189: doing physical I/O (bio.c) ! 190: .IP 1000 ! 191: process resulted from a ! 192: .IR vfork (2) ! 193: which is not yet complete ! 194: .IP 2000 ! 195: another flag for ! 196: .IR vfork (2) ! 197: .IP 4000 ! 198: process has no virtual memory, as it is a parent in the context of ! 199: .IR vfork (2) ! 200: .IP 8000 ! 201: process is demand paging data pages from its text vnode. ! 202: .IP 10000 ! 203: process using sequential VM patterns ! 204: .IP 20000 ! 205: process using random VM patterns ! 206: .IP 100000 ! 207: using old 4.1-compatible signal semantics ! 208: .IP 200000 ! 209: process needs profiling tick ! 210: .IP 400000 ! 211: process is scanning descriptors during select ! 212: .IP 1000000 ! 213: process page tables have changed ! 214: .RE ! 215: .IP POIP ! 216: number of pages currently being pushed out from this process. ! 217: .IP PRI ! 218: Scheduling priority, see ! 219: .IR setpriority (2). ! 220: .IP SIG ! 221: Signals received (signals 1-32 coded in bits 0-31), ! 222: .IP UID ! 223: Real user ID. ! 224: .IP SLP ! 225: Amount of time process has been blocked. ! 226: .IP TIM ! 227: Time resident in seconds; times over 127 coded as 127. ! 228: .IP CPU ! 229: Weighted integral of CPU time, for scheduler. ! 230: .IP NI ! 231: Nice level, ! 232: see ! 233: .IR setpriority (2). ! 234: .IP PID ! 235: The process ID number. ! 236: .IP PPID ! 237: The process ID of parent process. ! 238: .IP ADDR ! 239: If in core, the page frame number of the first page of the `u-area' of ! 240: the process. ! 241: If swapped out, the position in the swap area ! 242: measured in multiples of 512 bytes. ! 243: .IP RSS ! 244: Resident set size \- the number of physical page frames allocated ! 245: to this process. ! 246: .IP SRSS ! 247: RSS at last swap (0 if never swapped). ! 248: .IP SIZE ! 249: Virtual size of process image (data+stack) in multiples of 512 bytes. ! 250: .IP WCHAN ! 251: Wait channel number of a waiting process. ! 252: .IP LINK ! 253: Link pointer in list of runnable processes. ! 254: .IP TEXTP ! 255: If text is pure, pointer to location of text table entry. ! 256: .PD ! 257: .TP ! 258: .B \-t ! 259: Print table for terminals ! 260: with these headings: ! 261: .IP RAW ! 262: Number of characters in raw input queue. ! 263: .PD 0 ! 264: .IP CAN ! 265: Number of characters in canonicalized input queue. ! 266: .IP OUT ! 267: Number of characters in putput queue. ! 268: .IP MODE ! 269: See ! 270: .IR tty (4). ! 271: .IP ADDR ! 272: Physical device address. ! 273: .IP DEL ! 274: Number of delimiters (newlines) in canonicalized input queue. ! 275: .IP COL ! 276: Calculated column position of terminal. ! 277: .IP STATE ! 278: Miscellaneous state variables encoded thus: ! 279: .RS ! 280: .IP T ! 281: delay timeout in progress ! 282: .IP W ! 283: waiting for open to complete ! 284: .IP O ! 285: open ! 286: .IP F ! 287: outq has been flushed during DMA ! 288: .IP C ! 289: carrier is on ! 290: .IP B ! 291: busy doing output ! 292: .IP A ! 293: process is awaiting output ! 294: .IP X ! 295: open for exclusive use ! 296: .IP S ! 297: output stopped ! 298: .IP H ! 299: hangup on close ! 300: .RE ! 301: .IP PGRP ! 302: Process group for which this is controlling terminal. ! 303: .IP DISC ! 304: Line discipline; blank is old tty OTTYDISC or ``new tty'' for NTTYDISC ! 305: or ``net'' for NETLDISC (see ! 306: .IR bk (4)). ! 307: .PD ! 308: .TP ! 309: .B \-u ! 310: print information about a user process; ! 311: the next argument is its address as given ! 312: by ! 313: .IR ps (1). ! 314: The process must be in main memory, or the file used can ! 315: be a core image and the address 0. ! 316: Only the fields located in the first page cluster can be located ! 317: succesfully if the process is in main memory. ! 318: .TP ! 319: .B \-f ! 320: Print the open file table with these headings: ! 321: .IP LOC ! 322: The core location of this table entry. ! 323: .IP TYPE ! 324: The type of object the file table entry points to. ! 325: .PD 0 ! 326: .IP FLG ! 327: Miscellaneous state variables encoded thus: ! 328: .RS ! 329: .IP R ! 330: open for reading ! 331: .IP W ! 332: open for writing ! 333: .IP A ! 334: open for appending ! 335: .IP S ! 336: shared lock present ! 337: .IP X ! 338: exclusive lock present ! 339: .IP I ! 340: signal pgrp when data ready ! 341: .RE ! 342: .IP CNT ! 343: Number of processes that know this open file. ! 344: .IP MSG ! 345: Number of messages outstanding for this file. ! 346: .IP DATA ! 347: The location of the vnode table entry or socket structure for this file. ! 348: .IP OFFSET ! 349: The file offset (see ! 350: .IR lseek (2)). ! 351: .PD ! 352: .PP ! 353: .B \-s ! 354: print information about swap space usage: the number of (1k byte) pages used ! 355: and free is given as well as the number of used pages which belong ! 356: to text images. ! 357: .PP ! 358: .B \-T ! 359: prints the number of used and free slots in the several system tables ! 360: and is useful for checking to see how full system tables have become if the ! 361: system is under heavy load. ! 362: .SH FILES ! 363: .ta \w'/dev/kmem 'u ! 364: /vmunix namelist ! 365: .br ! 366: /dev/kmem default source of tables ! 367: .SH SEE ALSO ! 368: iostat(1), ! 369: ps(1), ! 370: systat(1), ! 371: vmstat(1), ! 372: stat(2), ! 373: fs(5), ! 374: .br ! 375: K. Thompson, ! 376: .I UNIX Implementation ! 377: .SH BUGS ! 378: It would be very useful if the system recorded \*(lqmaximum occupancy\*(rq ! 379: on the tables reported by ! 380: .B \-T; ! 381: even more useful if these tables were dynamically allocated.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.