|
1 jstat(1) jstat(1) |
|
2 |
|
3 |
|
4 |
|
5 NAME |
|
6 jstat - Java Virtual Machine statistics monitoring tool |
|
7 |
|
8 SYNOPSIS |
|
9 jstat [ generalOption | outputOptions vmid [ interval [ s|ms ] [ count ] ] ] |
|
10 |
|
11 DESCRIPTION |
|
12 The jstat tool displays performance statistics for an instrumented HotSpot Java virtual machine |
|
13 (JVM). The target JVM is identified by its virtual machine identifier, or vmid option described |
|
14 below. |
|
15 |
|
16 NOTE - This utility is unsupported and may or may not be available in future versions of the J2SE |
|
17 SDK. It is currently not available on Windows 98 and Windows ME platforms. |
|
18 |
|
19 VIRTUAL MACHINE IDENTIFIER |
|
20 The syntax of the vmid string largely corresponds to the syntax of a URI: |
|
21 |
|
22 [protocol:][//]lvmid[@hostname][:port][/servername] |
|
23 |
|
24 protocol The communications protocol. If the protocol is omitted and a hostname is not speci- |
|
25 fied, the default protocol is a platform specific optimized local protocol. If the |
|
26 protocol is omitted and a hostname is specified, then the default protocol is rmi. |
|
27 |
|
28 lvmid The local virtual machine identifier for the target JVM. The lvmid is a platform-spe- |
|
29 cific value that uniquely identifies a JVM on a system. The lvmid is the only required |
|
30 component of a virtual machine identifier. The lvmid is typically, but not necessar- |
|
31 ily, the operating system's process identifier for the target JVM process. You can use |
|
32 the jps command to determine the lvmid. Also, you can determine lvmid on Unix plat- |
|
33 forms with the ps command, and on Windows with the Windows Task Manager. |
|
34 |
|
35 hostname A hostname or IP address indicating the target host. If hostname is omitted, then the |
|
36 target host is the local host. |
|
37 |
|
38 port The default port for communicating with the remote server. If the hostname is omitted |
|
39 or the protocol specifies an optimized, local protocol, then port is ignored. Other- |
|
40 wise, treatment of the port parameter is implementation specific. For the default rmi |
|
41 protocol, the port indicates the port number for the rmiregistry on the remote host. |
|
42 If port is omitted, and protocol indicates rmi, then the default rmiregistry port |
|
43 (1099) is used. |
|
44 |
|
45 servername The treatment of this parameter depends on implementation. For the optimized local |
|
46 protocol, this field is ignored. For the rmi protocol, it represents the name of the |
|
47 RMI remote object on the remote host. |
|
48 |
|
49 PARAMETERS |
|
50 generalOption A single general command-line option (-help, -options, or -version) |
|
51 |
|
52 outputOptions One or more output options, consisting of a single statOption, plus any of the -t, -h, |
|
53 and -J options. |
|
54 |
|
55 vmid Virtual machine identifier, a string indicating the target Java virtual machine (JVM). |
|
56 The general syntax is |
|
57 |
|
58 [protocol:][//]lvmid[@hostname[:port]/servername |
|
59 |
|
60 The syntax of the vmid string largely corresponds to the syntax of a URI. The vmid can vary from a |
|
61 simple integer representing a local JVM to a more complex construction specifying a communications |
|
62 protocol, port number, and other implementation-specific values. See Virtual Machine Identifier below |
|
63 for details. |
|
64 |
|
65 interval[s|ms] Sampling interval in the specified units, seconds (s) or milliseconds (ms). Default |
|
66 units are milliseconds. Must be a positive integer. If specified, jstat will produce |
|
67 its output at each interval. |
|
68 |
|
69 count Number of samples to display. Default value is infinity; that is, jstat displays sta- |
|
70 tistics until the target JVM terminates or the jstat command is terminated. Must be a |
|
71 positive integer. |
|
72 |
|
73 OPTIONS |
|
74 The jstat command supports two types of options, general options and output options. General options |
|
75 cause jstat to display simple usage and version information. Output options determine the content and |
|
76 format of the statistical output. |
|
77 |
|
78 NOTE- All options, and their functionality are subject to change or removal in future releases. |
|
79 |
|
80 GENERAL OPTIONS |
|
81 If you specify one of the general options, you cannot specify any other option or parameter. |
|
82 |
|
83 -help Display help message. |
|
84 |
|
85 -version Display version information. |
|
86 |
|
87 -options Display list of statistics options. See the Output Options section below. |
|
88 |
|
89 OUTPUT OPTIONS |
|
90 If you do not specify a general option, then you can specify output options. Output options deter- |
|
91 mine the content and format of jstat's output, and consist of a single statOption, plus any of the |
|
92 other output options (-h, -t, and -J). The statOption must come first. |
|
93 |
|
94 Output is formatted as a table, with columns are separated by spaces. A header row with titles |
|
95 describes the columns. Use the -h option to set the frequency at which the header is displayed. |
|
96 Column header names are generally consistent between the different options. In general, if two |
|
97 options provide a column with the same name, then the data source for the two columns are the same. |
|
98 |
|
99 Use the -t option to display a time stamp column, labeled Timestamp as the first column of output. |
|
100 The Timestamp column contains the elapsed time, in seconds, since startup of the target JVM. The res- |
|
101 olution of the time stamp is dependent on various factors and is subject to variation due to delayed |
|
102 thread scheduling on heavily loaded systems. |
|
103 |
|
104 Use the interval and count parameters to determine how frequently and how many times, respectively, |
|
105 jstat displays its output. |
|
106 |
|
107 NOTE- You are advised not to write scripts to parse jstat's output since the format may change in |
|
108 future releases. If you choose to write scripts that parse jstat output, expect to modify them for |
|
109 future releases of this tool. |
|
110 |
|
111 -statOption Determines the statistics information that jstat displays. The following table lists |
|
112 the available options. Use the -options general option to display the list of options |
|
113 for a particular platform installation. |
|
114 |
|
115 |
|
116 |
|
117 +-----------------+------------------------------------------------------+ |
|
118 | Option | Displays... | |
|
119 +-----------------+------------------------------------------------------+ |
|
120 |class | Statistics on the behavior of the class loader | |
|
121 |compiler | Statistics on the behavior of the HotSpot Just-In- | |
|
122 | | Time compiler | |
|
123 |gc | Statistics on the behavior of the garbage collected | |
|
124 | | heap | |
|
125 |gccapacity | Statistics of the capacities of the generations and | |
|
126 | | their corresponding spaces. | |
|
127 |gccause | Summary of garbage collection statistics (same as | |
|
128 | | -gcutil), with the cause of the last and current (if | |
|
129 | | applicable) garbage collection events. | |
|
130 |gcnew | Statistics of the behavior of the new generation. | |
|
131 |gcnewcapacity | Statistics of the sizes of the new generations and | |
|
132 | | its corresponding spaces. | |
|
133 |gcold | Statistics of the behavior of the old and permanent | |
|
134 | | generations. | |
|
135 |gcoldcapacity | Statistics of the sizes of the old generation. | |
|
136 |gcpermcapacity | Statistics of the sizes of the permanent generation. | |
|
137 |gcutil | Summary of garbage collection statistics. | |
|
138 |printcompilation | Summary of garbage collection statistics. | |
|
139 +-----------------+------------------------------------------------------+ |
|
140 -h n Display a column header every n samples (output rows), where n is a positive integer. |
|
141 Default value is 0, which displays the column header above the first row of data. |
|
142 |
|
143 -t n Display a timestamp column as the first column of output. The timestamp is the the |
|
144 time since the start time of the target JVM. |
|
145 |
|
146 -JjavaOption Pass javaOption to the java application launcher. For example, -J-Xms48m sets the |
|
147 startup memory to 48 megabytes. For a complete list of options, see java(1). |
|
148 |
|
149 STATOPTIONS AND OUTPUT |
|
150 The following tables summarize the columns that jstat outputs for each statOption. |
|
151 |
|
152 class Class Loader Statistics |
|
153 |
|
154 |
|
155 |
|
156 +---------+--------------------------------------------------------+ |
|
157 | Column | Description | |
|
158 +---------+--------------------------------------------------------+ |
|
159 |Loaded | Number of classes loaded | |
|
160 |Bytes | Number of Kbytes loaded | |
|
161 |Unloaded | Number of classes unloaded | |
|
162 |Bytes | Number of Kbytes unloaded | |
|
163 |Time | Time spent performing class load and unload operations | |
|
164 +---------+--------------------------------------------------------+ |
|
165 compiler |
|
166 HotSpot Just-In-Time Compiler Statistics |
|
167 |
|
168 |
|
169 |
|
170 +-------------+-------------------------------------------------------+ |
|
171 | Column | Description | |
|
172 +-------------+-------------------------------------------------------+ |
|
173 |Compiled | Humber of compilation tasks performed | |
|
174 |Failed | Number of compilation tasks that failed | |
|
175 |Invalid | Number of compilation tasks that were invalidated | |
|
176 |Time | Time spent performing compilation tasks | |
|
177 |FailedType | Compile type of the last failed compilation | |
|
178 |FailedMethod | Class name and method for the last failed compilation | |
|
179 +-------------+-------------------------------------------------------+ |
|
180 gc Garbage-collected heap statistics |
|
181 |
|
182 |
|
183 |
|
184 +-------+-------------------------------------------+ |
|
185 |Column | Description | |
|
186 +-------+-------------------------------------------+ |
|
187 |SOC | Current survivor space 0 capacity (KB). | |
|
188 |S1C | Current survivor space 1 capacity (KB). | |
|
189 |S0U | Survivor space 0 utilization (KB). | |
|
190 |S1U | Survivor space 1 utilization (KB). | |
|
191 |EC | Current eden space capacity (KB). | |
|
192 |EU | Eden space utilization (KB). | |
|
193 |OC | Current old space capacity (KB). | |
|
194 |OU | Old space utilization (KB). | |
|
195 |PC | Current permanent space capacity (KB). | |
|
196 |PU | Permanent space utilization (KB). | |
|
197 |YGC | Number of young generation GC Events. | |
|
198 |YGCT | Young generation garbage collection time. | |
|
199 |FGC | Number of full GC events. | |
|
200 |FGCT | Full garbage collection time. | |
|
201 |GCT | Total garbage collection time. | |
|
202 +-------+-------------------------------------------+ |
|
203 gccapacity |
|
204 Memory Pool Generation and Space Capacities |
|
205 |
|
206 |
|
207 |
|
208 +-------+---------------------------------------------+ |
|
209 |Column | Description | |
|
210 +-------+---------------------------------------------+ |
|
211 |NGCMN | Minimum new generation capacity (KB). | |
|
212 |NGCMX | Maximum new generation capacity (KB). | |
|
213 |NGC | Current new generation capacity (KB). | |
|
214 |S0C | Current survivor space 0 capacity (KB). | |
|
215 |S1C | Current survivor space 1 capacity (KB). | |
|
216 |EC | Current eden space capacity (KB). | |
|
217 |OGCMN | Minimum old generation capacity (KB). | |
|
218 |OGCMX | Maximum old generation capacity (KB). | |
|
219 |OGC | Current old generation capacity (KB). | |
|
220 |OC | Current old space capacity (KB). | |
|
221 |PGCMN | Minimum permanent generation capacity (KB). | |
|
222 |PGCMX | Maximum Permanent generation capacity (KB). | |
|
223 |PGC | Current Permanent generation capacity (KB). | |
|
224 |PC | Current Permanent space capacity (KB). | |
|
225 |VGC | Number of Young generation GC Events. | |
|
226 |FGC | Number of Full GC Events. | |
|
227 +-------+---------------------------------------------+ |
|
228 gccause |
|
229 This option displays the same summary of garbage collection statistics as the -gcutil option, |
|
230 but includes the causes of the last garbage collection event and (if applicable) the current |
|
231 garbage collection event. In addition to the columns listed for -gcutil, this option adds the |
|
232 following columns: |
|
233 |
|
234 |
|
235 |
|
236 +-------+--------------------------------------+ |
|
237 |Column | Description | |
|
238 +-------+--------------------------------------+ |
|
239 |LGCC | Cause of last Garbage Collection. | |
|
240 |GCC | Cause of current Garbage Collection. | |
|
241 +-------+--------------------------------------+ |
|
242 gcnew New Generation Statistics |
|
243 |
|
244 |
|
245 |
|
246 +-------+-------------------------------------------+ |
|
247 |Column | Description | |
|
248 +-------+-------------------------------------------+ |
|
249 |SOC | Current survivor space 0 capacity (KB). | |
|
250 |S1C | Current survivor space 1 capacity (KB). | |
|
251 |S0U | Survivor space 0 utilization (KB). | |
|
252 |S1U | Survivor space 1 utilization (KB). | |
|
253 |TT | Tenuring threshold. | |
|
254 |MTT | Maximum tenuring threshold. | |
|
255 |DSS | Desired survivor size (KB). | |
|
256 |EC | Current eden space capacity (KB). | |
|
257 |EU | Eden space utilization (KB). | |
|
258 |VGC | Number of young generation GC events. | |
|
259 |VGCT | Young generation garbage collection time. | |
|
260 +-------+-------------------------------------------+ |
|
261 gcnewcapacity |
|
262 New Generation Space Size Statistics |
|
263 |
|
264 |
|
265 |
|
266 +-------+-----------------------------------------+ |
|
267 |Column | Description | |
|
268 +-------+-----------------------------------------+ |
|
269 |NGCMN | Minimum new generation capacity (KB). | |
|
270 |NGCMX | Maximum new generation capacity (KB). | |
|
271 |NGC | Current new generation capacity (KB). | |
|
272 |S0CMX | Maximum survivor space 0 capacity (KB). | |
|
273 |S0C | Current survivor space 0 capacity (KB). | |
|
274 |S1CMX | Maximum survivor space 1 capacity (KB). | |
|
275 |S1C | Current survivor space 1 capacity (KB). | |
|
276 |ECMX | Maximum eden space capacity (KB). | |
|
277 |EC | Current eden space capacity (KB). | |
|
278 |YGC | Number of young generation GC events. | |
|
279 |FGC | Number of Full GC Events. | |
|
280 +-------+-----------------------------------------+ |
|
281 gcold Old and Permanent Generation Statistics |
|
282 |
|
283 |
|
284 |
|
285 +-------+----------------------------------------+ |
|
286 |Column | Description | |
|
287 +-------+----------------------------------------+ |
|
288 |PC | Current permanent space capacity (KB). | |
|
289 |PU | Permanent space utilization (KB). | |
|
290 |OC | Current old space capacity (KB). | |
|
291 |OU | Old space utilization (KB). | |
|
292 |YGC | Number of young generation GC events. | |
|
293 |FGC | Number of Full GC events. | |
|
294 |FGCT | Full garbage collection time. | |
|
295 |GCT | Total garbage collection time. | |
|
296 +-------+----------------------------------------+ |
|
297 gcoldcapacity |
|
298 Old Generation Statistics |
|
299 |
|
300 |
|
301 |
|
302 +-------+---------------------------------------+ |
|
303 |Column | Description | |
|
304 +-------+---------------------------------------+ |
|
305 |OGCMN | Minimum old generation capacity (KB). | |
|
306 |OGCMV | Maximum old generation capacity (KB). | |
|
307 |OGC | Current old generation capacity (KB). | |
|
308 |OC | Current old space capacity (KB). | |
|
309 |YGC | Number of young generation GC events. | |
|
310 |FGC | Number of Full GC events. | |
|
311 |FGCT | Full garbage collection time. | |
|
312 |GCT | Total garbage collection time. | |
|
313 +-------+---------------------------------------+ |
|
314 gcpermcapacity |
|
315 Permanent Generation Statistics |
|
316 |
|
317 |
|
318 |
|
319 +-------+---------------------------------------------+ |
|
320 |Column | Description | |
|
321 +-------+---------------------------------------------+ |
|
322 |PGCMN | Minimum permanent generation capacity (KB). | |
|
323 |PGCMX | Maximum permanent generation capacity (KB). | |
|
324 |PGC | Current permanent generation capacity (KB). | |
|
325 |PC | Current permanent space capacity (KB). | |
|
326 |YGC | Number of young generation GC events. | |
|
327 |FGC | Number of Full GC events. | |
|
328 |FGCT | Full garbage collection time. | |
|
329 |GCT | Total garbage collection time. | |
|
330 +-------+---------------------------------------------+ |
|
331 gcutil Summary of Garbage Collection Statistics |
|
332 |
|
333 |
|
334 |
|
335 +-------+-------------------------------------------+ |
|
336 |Column | Description | |
|
337 +-------+-------------------------------------------+ |
|
338 |S0 | Survivor space 0 utilization as a per- | |
|
339 | | centage of the space's current capacity. | |
|
340 |S1 | Survivor space 1 utilization as a per- | |
|
341 | | centage of the space's current capacity. | |
|
342 |E | Eden space utilization as a percentage of | |
|
343 | | the space's current capacity. | |
|
344 |O | Old space utilization as a percentage of | |
|
345 | | the space's current capacity. | |
|
346 |P | Permanent space utilization as a percent- | |
|
347 | | age of the space's current capacity. | |
|
348 |YGC | Number of young generation GC events. | |
|
349 |YGCT | Young generation garbage collection time. | |
|
350 |FGC | Number of Full GC events. | |
|
351 |FGCT | Full garbage collection time. | |
|
352 |GCT | Total garbage collection time. | |
|
353 +-------+-------------------------------------------+ |
|
354 printcompilation |
|
355 HotSpot Compiler Method Statistics |
|
356 |
|
357 |
|
358 |
|
359 +---------+---------------------------------------------+ |
|
360 | Column | Description | |
|
361 +---------+---------------------------------------------+ |
|
362 |Compiled | Number of compilation tasks performed. | |
|
363 |Size | Number of bytes of bytecode for the method. | |
|
364 |Type | Compilation type. | |
|
365 |Method | Class name and method name identifying the | |
|
366 | | compiled method. Class name uses "/" | |
|
367 | | instead of "." as namespace separator. | |
|
368 | | Method name is the method within the given | |
|
369 | | class. The format for these two fields is | |
|
370 | | consistent with the HotSpot - XX:+PrintCom- | |
|
371 | | plation option. | |
|
372 +---------+---------------------------------------------+ |
|
373 |
|
374 EXAMPLES |
|
375 This section presents some examples of monitoring a local JVM with a lvmid of 21891. |
|
376 |
|
377 Using the gcutil option |
|
378 This example attaches to lvmid 21891 and takes 7 samples at 250 millisecond intervals and displays |
|
379 the output as specified by the -gcutil option. |
|
380 |
|
381 jstat -gcutil 21891 250 7 |
|
382 S0 S1 E O P YGC YGCT FGC FGCT GCT |
|
383 12.44 0.00 27.20 9.49 96.70 78 0.176 5 0.495 0.672 |
|
384 12.44 0.00 62.16 9.49 96.70 78 0.176 5 0.495 0.672 |
|
385 12.44 0.00 83.97 9.49 96.70 78 0.176 5 0.495 0.672 |
|
386 0.00 7.74 0.00 9.51 96.70 79 0.177 5 0.495 0.673 |
|
387 0.00 7.74 23.37 9.51 96.70 79 0.177 5 0.495 0.673 |
|
388 0.00 7.74 43.82 9.51 96.70 79 0.177 5 0.495 0.673 |
|
389 0.00 7.74 58.11 9.51 96.71 79 0.177 5 0.495 0.673 |
|
390 |
|
391 The output of this example shows that a young generation collection occurred between the 3rd and 4th |
|
392 sample. The collection took 0.001 seconds and promoted objects from the eden space (E) to the old |
|
393 space (O), resulting in an increase of old space utilization from 9.49% to 9.51%. Before the collec- |
|
394 tion, the survivor space was 12.44% utilized, but after this collection it is only 7.74% utilized. |
|
395 |
|
396 Repeating the column header string |
|
397 This example attaches to lvmid 21891 and takes samples at 250 millisecond intervals and displays the |
|
398 output as specified by -gcutil option. In addition, it uses the -h3 option to output the column |
|
399 header after every 3 lines of data. |
|
400 |
|
401 jstat -gcnew -h3 21891 250 |
|
402 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT |
|
403 64.0 64.0 0.0 31.7 31 31 32.0 512.0 178.6 249 0.203 |
|
404 64.0 64.0 0.0 31.7 31 31 32.0 512.0 355.5 249 0.203 |
|
405 64.0 64.0 35.4 0.0 2 31 32.0 512.0 21.9 250 0.204 |
|
406 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT |
|
407 64.0 64.0 35.4 0.0 2 31 32.0 512.0 245.9 250 0.204 |
|
408 64.0 64.0 35.4 0.0 2 31 32.0 512.0 421.1 250 0.204 |
|
409 64.0 64.0 0.0 19.0 31 31 32.0 512.0 84.4 251 0.204 |
|
410 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT |
|
411 64.0 64.0 0.0 19.0 31 31 32.0 512.0 306.7 251 0.204 |
|
412 |
|
413 In addition to showing the repeating header string, this example shows that between the 2nd and 3rd |
|
414 samples, a young GC occurred. Its duration was 0.001 seconds. The collection found enough live data |
|
415 that the survivor space 0 utilization (S0U) would would have exceeded the desired survivor Size |
|
416 (DSS). As a result, objects were promoted to the old generation (not visible in this output), and the |
|
417 tenuring threshold (TT) was lowered from 31 to 2. |
|
418 |
|
419 Another collection occurs between the 5th and 6th samples. This collection found very few survivors |
|
420 and returned the tenuring threshold to 31. |
|
421 |
|
422 Including a time stamp for each sample |
|
423 This example attaches to lvmid 21891 and takes 3 samples at 250 millisecond intervals. The -t option |
|
424 is used to generate a time stamp for each sample in the first column. |
|
425 |
|
426 jstat -gcoldcapacity -t 21891 250 3 |
|
427 Timestamp OGCMN OGCMX OGC OC YGC FGC FGCT GCT |
|
428 150.1 1408.0 60544.0 11696.0 11696.0 194 80 2.874 3.799 |
|
429 150.4 1408.0 60544.0 13820.0 13820.0 194 81 2.938 3.863 |
|
430 150.7 1408.0 60544.0 13820.0 13820.0 194 81 2.938 3.863 |
|
431 |
|
432 Monitor instrumentation for a remote JVM |
|
433 This example attaches to lvmid 40496 on the system named remote.domain using the -gcutil option, with |
|
434 samples taken every second indefinitely. |
|
435 |
|
436 jstat -gcutil 40496@remote.domain 1000 |
|
437 ... output omitted |
|
438 |
|
439 The lvmid is combined with the name of the remote host to construct a vmid of 40496@remote.domain. |
|
440 This vmid results in the use of the rmi protocol to communicate to the default jstatd server on the |
|
441 remote host. The jstatd server is located using the rmiregistry on remote.domain that is bound to the |
|
442 default rmiregistry port (port 1099). |
|
443 |
|
444 SEE ALSO |
|
445 java(1) jps(1) jstatd(1) rmiregistry(1) |
|
446 |