Print this page
    
749 "/usr/bin/kstat" should be rewritten in C
Reviewed by: Garrett D'Amore <garrett@damore.org>
Reviewed by: Brendan Gregg <brendan.gregg@joyent.com>
    
      
        | Split | Close | 
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/man/man1m/kstat.1m
          +++ new/usr/src/man/man1m/kstat.1m
   1    1  '\" te
   2    2  .\" Copyright (c) 2000, Sun Microsystems, Inc. All Rights Reserved
   3    3  .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.
   4    4  .\"  See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with
   5    5  .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
   6      -.TH KSTAT 1M "Mar 23, 2009"
        6 +.TH KSTAT 1M "Jan 9, 2013"
   7    7  .SH NAME
   8    8  kstat \- display kernel statistics
   9    9  .SH SYNOPSIS
  10   10  .LP
  11   11  .nf
  12      -\fBkstat\fR [\fB-lpq\fR] [\fB-T\fR u | d ] [\fB-c\fR \fIclass\fR] [\fB-m\fR \fImodule\fR]
       12 +\fBkstat\fR [\fB-Cjlpq\fR] [\fB-T\fR u | d ] [\fB-c\fR \fIclass\fR] [\fB-m\fR \fImodule\fR]
  13   13       [\fB-i\fR \fIinstance\fR] [\fB-n\fR \fIname\fR] [\fB-s\fR \fIstatistic\fR]
  14   14       [interval [count]]
  15   15  .fi
  16   16  
  17   17  .LP
  18   18  .nf
  19      -\fBkstat\fR [\fB-lpq\fR] [\fB-T\fR u | d ] [\fB-c\fR \fIclass\fR]
       19 +\fBkstat\fR [\fB-Cjlpq\fR] [\fB-T\fR u | d ] [\fB-c\fR \fIclass\fR]
  20   20       [\fImodule\fR:\fIinstance\fR:\fIname\fR:\fIstatistic\fR]...
  21   21       [interval [count]]
  22   22  .fi
  23   23  
  24   24  .SH DESCRIPTION
  25   25  .sp
  26   26  .LP
  27   27  The \fBkstat\fR utility examines the available kernel statistics, or kstats, on
  28   28  the system and reports those statistics which match the criteria specified on
  29   29  the command line. Each matching statistic is printed with its module, instance,
  30   30  and name fields, as well as its actual value.
  31   31  .sp
  32   32  .LP
  33   33  Kernel statistics may be published by various kernel subsystems, such as
  34   34  drivers or loadable modules; each kstat has a module field that denotes its
  35   35  publisher. Since each module might have countable entities (such as multiple
  36   36  disks associated with the \fBsd\fR(7D) driver) for which it wishes to report
  37   37  statistics, the kstat also has an instance field to index the statistics for
  38   38  each entity; kstat instances are numbered starting from zero. Finally, the
  39   39  kstat is given a name unique within its module.
  40   40  .sp
  41   41  .LP
  42   42  Each kstat may be a special kstat type, an array of name-value pairs, or raw
  43   43  data. In the name-value case, each reported value is given a label, which we
  44   44  refer to as the statistic. Known raw and special kstats are given statistic
  45   45  labels for each of their values by \fBkstat\fR; thus, all published values can
  46   46  be referenced as \fImodule\fR:\fIinstance\fR:\fIname\fR:\fIstatistic\fR.
  47   47  .sp
  48   48  .LP
  49   49  When invoked without any module operands or options, kstat will match all
  50   50  defined statistics on the system. Example invocations are provided below. All
  51   51  times are displayed as fractional seconds since system boot.
  
    | ↓ open down ↓ | 22 lines elided | ↑ open up ↑ | 
  52   52  .SH OPTIONS
  53   53  .sp
  54   54  .LP
  55   55  The tests specified by the following options are logically ANDed, and all
  56   56  matching kstats will be selected. A regular expression containing shell
  57   57  metacharacters must be protected from the shell by enclosing it with the
  58   58  appropriate quotes.
  59   59  .sp
  60   60  .LP
  61   61  The argument for the \fB-c\fR, \fB-i\fR, \fB-m\fR, \fB-n\fR, and \fB-s\fR
  62      -options may be specified as a shell glob pattern, or a Perl regular expression
       62 +options may be specified as a shell glob pattern, or a regular expression
  63   63  enclosed in '/' characters.
  64   64  .sp
  65   65  .ne 2
  66   66  .na
       67 +\fB\fB-C\fR\fR
       68 +.ad
       69 +.RS 16n
       70 +Displays output in parseable format with a colon as separator.
       71 +.RE
       72 +
       73 +.sp
       74 +.ne 2
       75 +.na
  67   76  \fB\fB-c\fR \fIclass\fR\fR
  68   77  .ad
  69   78  .RS 16n
  70   79  Displays only kstats that match the specified class. \fIclass\fR is a
  71   80  kernel-defined string which classifies the "type" of the kstat.
  72   81  .RE
  73   82  
  74   83  .sp
  75   84  .ne 2
  76   85  .na
  77   86  \fB\fB-i\fR \fIinstance\fR\fR
  78   87  .ad
  79   88  .RS 16n
  80   89  Displays only kstats that match the specified instance.
  81   90  .RE
  82   91  
  83   92  .sp
  84   93  .ne 2
  85   94  .na
       95 +\fB\fB-j\fR\fR
       96 +.ad
       97 +.RS 16n
       98 +Displays output in JSON format.
       99 +.RE
      100 +
      101 +.sp
      102 +.ne 2
      103 +.na
  86  104  \fB\fB-l\fR\fR
  87  105  .ad
  88  106  .RS 16n
  89  107  Lists matching kstat names without displaying values.
  90  108  .RE
  91  109  
  92  110  .sp
  93  111  .ne 2
  94  112  .na
  95  113  \fB\fB-m\fR \fImodule\fR\fR
  96  114  .ad
  97  115  .RS 16n
  98  116  Displays only kstats that match the specified module.
  99  117  .RE
 100  118  
 101  119  .sp
 102  120  .ne 2
 103  121  .na
 104  122  \fB\fB-n\fR \fIname\fR\fR
 105  123  .ad
 106  124  .RS 16n
 107  125  Displays only kstats that match the specified name.
 108  126  .RE
 109  127  
 110  128  .sp
 111  129  .ne 2
 112  130  .na
 113  131  \fB\fB-p\fR\fR
 114  132  .ad
 115  133  .RS 16n
 116  134  Displays output in parseable format. All example output in this document is
 117  135  given in this format. If this option is not specified, \fBkstat\fR produces
 118  136  output in a human-readable, table format.
 119  137  .RE
 120  138  
 121  139  .sp
 122  140  .ne 2
 123  141  .na
 124  142  \fB\fB-q\fR\fR
 125  143  .ad
 126  144  .RS 16n
 127  145  Displays no output, but return appropriate exit status for matches against
 128  146  given criteria.
 129  147  .RE
 130  148  
 131  149  .sp
 132  150  .ne 2
 133  151  .na
 134  152  \fB\fB-s\fR \fIstatistic\fR\fR
 135  153  .ad
 136  154  .RS 16n
 137  155  Displays only kstats that match the specified statistic.
 138  156  .RE
 139  157  
 140  158  .sp
 141  159  .ne 2
 142  160  .na
 143  161  \fB\fB-T\fR d | u\fR
 144  162  .ad
 145  163  .RS 16n
 146  164  Displays a time stamp before each statistics block, either in \fBdate\fR(1)
 147  165  format (\fBd\fR) or as an alphanumeric representation of the value returned by
 148  166  \fBtime\fR(2) (\fBu\fR).
 149  167  .RE
 150  168  
 151  169  .SH OPERANDS
 152  170  .sp
 153  171  .LP
  
    | ↓ open down ↓ | 58 lines elided | ↑ open up ↑ | 
 154  172  The following operands are supported:
 155  173  .sp
 156  174  .ne 2
 157  175  .na
 158  176  \fB\fImodule\fR:\fIinstance\fR:\fIname\fR:\fIstatistic\fR\fR
 159  177  .ad
 160  178  .sp .6
 161  179  .RS 4n
 162  180  Alternate method of specifying module, instance, name, and statistic as
 163  181  described above. Each of the module, instance, name, or statistic specifiers
 164      -may be a shell glob pattern or a Perl regular expression enclosed by '/'
      182 +may be a shell glob pattern or a regular expression enclosed by '/'
 165  183  characters. It is possible to use both specifier types within a single operand.
 166  184  Leaving a specifier empty is equivalent to using the '*' glob pattern for that
 167  185  specifier.
 168  186  .RE
 169  187  
 170  188  .sp
 171  189  .ne 2
 172  190  .na
 173  191  \fB\fIinterval\fR\fR
 174  192  .ad
 175  193  .sp .6
 176  194  .RS 4n
 177  195  The number of seconds between reports.
 178  196  .RE
 179  197  
 180  198  .sp
 181  199  .ne 2
 182  200  .na
 183  201  \fB\fIcount\fR\fR
 184  202  .ad
 185  203  .sp .6
 186  204  .RS 4n
 187  205  The number of reports to be printed.
 188  206  .RE
 189  207  
 190  208  .SH EXAMPLES
 191  209  .sp
 192  210  .LP
 193  211  In the following examples, all the command lines in a block produce the same
 194  212  output, as shown immediately below. The exact statistics and values will of
  
    | ↓ open down ↓ | 20 lines elided | ↑ open up ↑ | 
 195  213  course vary from machine to machine.
 196  214  .LP
 197  215  \fBExample 1 \fRUsing the \fBkstat\fR Command
 198  216  .sp
 199  217  .in +2
 200  218  .nf
 201  219  example$ \fBkstat -p -m unix -i 0 -n system_misc -s 'avenrun*'\fR
 202  220  example$ \fBkstat -p -s 'avenrun*'\fR
 203  221  example$ \fBkstat -p 'unix:0:system_misc:avenrun*'\fR
 204  222  example$ \fBkstat -p ':::avenrun*'\fR
 205      -example$ \fBkstat -p ':::/^avenrun_\ed+min$/'\fR
      223 +example$ \fBkstat -p ':::/^avenrun_[0-9]+min$/'\fR
 206  224  
 207  225  unix:0:system_misc:avenrun_15min        3
 208  226  unix:0:system_misc:avenrun_1min 4
 209  227  unix:0:system_misc:avenrun_5min 2
 210  228  .fi
 211  229  .in -2
 212  230  .sp
 213  231  
 214  232  .LP
 215  233  \fBExample 2 \fRUsing the \fBkstat\fR Command
 216  234  .sp
 217  235  .in +2
 218  236  .nf
 219  237  example$ \fBkstat -p -m cpu_stat -s 'intr*'\fR
 220  238  example$ \fBkstat -p cpu_stat:::/^intr/\fR
 221  239  
 222  240  cpu_stat:0:cpu_stat0:intr       29682330
 223  241  cpu_stat:0:cpu_stat0:intrblk    87
 224  242  cpu_stat:0:cpu_stat0:intrthread 15054222
 225  243  cpu_stat:1:cpu_stat1:intr       426073
 226  244  cpu_stat:1:cpu_stat1:intrblk    51
 227  245  cpu_stat:1:cpu_stat1:intrthread 289668
 228  246  cpu_stat:2:cpu_stat2:intr       134160
 229  247  cpu_stat:2:cpu_stat2:intrblk    0
 230  248  cpu_stat:2:cpu_stat2:intrthread 131
 231  249  cpu_stat:3:cpu_stat3:intr       196566
 232  250  cpu_stat:3:cpu_stat3:intrblk    30
 233  251  cpu_stat:3:cpu_stat3:intrthread 59626
 234  252  .fi
 235  253  .in -2
 236  254  .sp
 237  255  
 238  256  .LP
 239  257  \fBExample 3 \fRUsing the \fBkstat\fR Command
 240  258  .sp
 241  259  .in +2
 242  260  .nf
 243  261  example$ \fBkstat -p :::state ':::avenrun*'\fR
 244  262  example$ \fBkstat -p :::state :::/^avenrun/\fR
 245  263  
 246  264  cpu_info:0:cpu_info0:state      on-line
 247  265  cpu_info:1:cpu_info1:state      on-line
 248  266  cpu_info:2:cpu_info2:state      on-line
 249  267  cpu_info:3:cpu_info3:state      on-line
 250  268  unix:0:system_misc:avenrun_15min        4
 251  269  unix:0:system_misc:avenrun_1min 10
 252  270  unix:0:system_misc:avenrun_5min 3
 253  271  .fi
 254  272  .in -2
 255  273  .sp
 256  274  
 257  275  .LP
 258  276  \fBExample 4 \fRUsing the \fBkstat\fR Command
 259  277  .sp
 260  278  .in +2
 261  279  .nf
 262  280  example$ \fBkstat -p 'unix:0:system_misc:avenrun*' 1 3\fR
 263  281  unix:0:system_misc:avenrun_15min        15
 264  282  unix:0:system_misc:avenrun_1min 11
 265  283  unix:0:system_misc:avenrun_5min 21
 266  284  
 267  285  unix:0:system_misc:avenrun_15min        15
 268  286  unix:0:system_misc:avenrun_1min 11
 269  287  unix:0:system_misc:avenrun_5min 21
 270  288  
 271  289  unix:0:system_misc:avenrun_15min        15
 272  290  unix:0:system_misc:avenrun_1min 11
 273  291  unix:0:system_misc:avenrun_5min 21
 274  292  .fi
 275  293  .in -2
 276  294  .sp
 277  295  
 278  296  .LP
 279  297  \fBExample 5 \fRUsing the \fBkstat\fR Command
 280  298  .sp
 281  299  .in +2
 282  300  .nf
 283  301  example$ \fBkstat -p -T d 'unix:0:system_misc:avenrun*' 5 2\fR
 284  302  Thu Jul 22 19:39:50 1999
 285  303  unix:0:system_misc:avenrun_15min        12
 286  304  unix:0:system_misc:avenrun_1min 0
 287  305  unix:0:system_misc:avenrun_5min 11
 288  306  
 289  307  Thu Jul 22 19:39:55 1999
 290  308  unix:0:system_misc:avenrun_15min        12
 291  309  unix:0:system_misc:avenrun_1min 0
 292  310  unix:0:system_misc:avenrun_5min 11
 293  311  .fi
 294  312  .in -2
 295  313  .sp
 296  314  
 297  315  .LP
 298  316  \fBExample 6 \fRUsing the \fBkstat\fR Command
 299  317  .sp
 300  318  .in +2
 301  319  .nf
 302  320  example$ \fBkstat -p -T u 'unix:0:system_misc:avenrun*'\fR
 303  321  932668656
 304  322  unix:0:system_misc:avenrun_15min        14
 305  323  unix:0:system_misc:avenrun_1min 5
 306  324  unix:0:system_misc:avenrun_5min 18
 307  325  .fi
 308  326  .in -2
 309  327  .sp
 310  328  
 311  329  .SH EXIT STATUS
 312  330  .sp
 313  331  .LP
 314  332  The following exit values are returned:
 315  333  .sp
 316  334  .ne 2
 317  335  .na
 318  336  \fB\fB0\fR\fR
 319  337  .ad
 320  338  .RS 5n
 321  339  One or more statistics were matched.
 322  340  .RE
 323  341  
 324  342  .sp
 325  343  .ne 2
 326  344  .na
 327  345  \fB\fB1\fR\fR
 328  346  .ad
 329  347  .RS 5n
 330  348  No statistics were matched.
 331  349  .RE
 332  350  
 333  351  .sp
 334  352  .ne 2
 335  353  .na
 336  354  \fB\fB2\fR\fR
 337  355  .ad
 338  356  .RS 5n
 339  357  Invalid command line options were specified.
 340  358  .RE
 341  359  
 342  360  .sp
 343  361  .ne 2
 344  362  .na
 345  363  \fB\fB3\fR\fR
 346  364  .ad
 347  365  .RS 5n
 348  366  A fatal error occurred.
 349  367  .RE
 350  368  
 351  369  .SH FILES
 352  370  .sp
 353  371  .ne 2
 354  372  .na
  
    | ↓ open down ↓ | 139 lines elided | ↑ open up ↑ | 
 355  373  \fB\fB/dev/kstat\fR\fR
 356  374  .ad
 357  375  .RS 14n
 358  376  kernel statistics driver
 359  377  .RE
 360  378  
 361  379  .SH SEE ALSO
 362  380  .sp
 363  381  .LP
 364  382  \fBdate\fR(1), \fBsh\fR(1), \fBtime\fR(2), \fBgmatch\fR(3GEN),
 365      -\fBkstat\fR(3KSTAT), \fBattributes\fR(5), \fBkstat\fR(7D), \fBsd\fR(7D),
 366      -\fBkstat\fR(9S)
      383 +\fBkstat\fR(3KSTAT), \fBattributes\fR(5), \fBregex\fR(5), \fBkstat\fR(7D),
      384 +\fBsd\fR(7D), \fBkstat\fR(9S)
 367  385  .SH NOTES
 368  386  .sp
 369  387  .LP
 370      -If the pattern argument contains glob or Perl RE metacharacters which are also
      388 +If the pattern argument contains glob or RE metacharacters which are also
 371  389  shell metacharacters, it will be necessary to enclose the pattern with
 372  390  appropriate shell quotes.
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX