| jstat(1) | Monitoring Tools | jstat(1) |
نام (NAME)
jstat - پایش آمار عملکرد ماشین مجازی جاوا (JVM)
خلاصه دستور (SYNOPSIS)
jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]
generalOption
outputOptions
vmid
[protocol:][//]lvmid[@hostname[:port]/servername]
interval [s|ms]
count
توضیحات (DESCRIPTION)
دستور jstat آمار عملکرد یک ماشین مجازی Java HotSpot VM دارای ابزار دقیق (instrumented) را نمایش میدهد. JVM هدف با شناسه ماشین مجازی آن یا گزینه vmid مشخص میشود.
شناسه ماشین مجازی (VIRTUAL MACHINE IDENTIFIER)
نحو رشته vmid با نحو یک URI مطابقت دارد:
[protocol:][//]lvmid[@hostname[:port]/servername]
protocol
lvmid
hostname
port
servername
گزینهها (OPTIONS)
دستور jstat از دو نوع گزینه پشتیبانی میکند: گزینههای عمومی و گزینههای خروجی. گزینههای عمومی باعث میشوند دستور jstat اطلاعات ساده مربوط به نحوه استفاده و نسخه را نمایش دهد. گزینههای خروجی، محتوا و قالب خروجی آماری را تعیین میکنند.
تمامی گزینهها و عملکردهای آنها ممکن است در نسخههای آینده تغییر کرده یا حذف شوند.
گزینههای عمومی (General Options)
اگر یکی از گزینههای عمومی را مشخص کنید، نمیتوانید گزینه یا پارامتر دیگری را تعیین کنید.
-help
-options
گزینههای خروجی (Output Options)
اگر گزینه عمومی را مشخص نکنید، میتوانید گزینههای خروجی را تعیین کنید. گزینههای خروجی محتوا و قالب خروجی دستور jstat را تعیین کرده و شامل یک statOption تکی، به همراه هر یک از گزینههای خروجی دیگر (-h، -t و -J) هستند. گزینه statOption باید در ابتدا بیاید.
خروجی به صورت یک جدول قالببندی میشود که ستونهای آن با فاصله از هم جدا شدهاند. یک سطر عنوان با عناوین توصیفکننده ستونها نمایش داده میشود. از گزینه -h برای تعیین تواتر نمایش عنوان ستونها استفاده کنید. نام عناوین ستونها در بین گزینههای مختلف یکپارچه و سازگار است. به طور کلی، اگر دو گزینه ستونی با نام یکسان ارائه دهند، منبع داده آن دو ستون یکسان است.
از گزینه -t برای نمایش یک ستون برچسب زمانی با عنوان Timestamp به عنوان اولین ستون خروجی استفاده کنید. ستون Timestamp شامل زمان سپریشده (به ثانیه) از زمان شروع JVM هدف است. دقت برچسب زمانی به عوامل مختلفی بستگی دارد و ممکن است به دلیل تأخیر در زمانبندی نخها در سیستمهای با بار سنگین دچار تغییر شود.
از پارامترهای interval و count برای تعیین به ترتیب بسامد و تعداد دفعات نمایش خروجی توسط دستور jstat استفاده کنید.
نکته: برای تجزیه خروجی دستور jstat اسکریپت ننویسید، زیرا ممکن است فرمت آن در نسخههای بعدی تغییر کند. اگر اسکریپتهایی برای تجزیه خروجی دستور jstat مینویسید، انتظار داشته باشید که برای نسخههای بعدی این ابزار نیاز به اصلاح داشته باشند.
-statOption
class: آماری درباره رفتار بارگذار کلاس (Class Loader) نمایش میدهد.
compiler: آماری درباره رفتار کامپایلر درجا (JIT) در Java HotSpot VM نمایش میدهد.
gc: آماری درباره رفتار هیپ تحت مدیریت زبالهروب نمایش میدهد.
gccapacity: آماری درباره ظرفیت نسلها و فضاهای متناظر آنها نمایش میدهد.
gccause: خلاصهای از آمار جمعآوری زباله را (مشابه -gcutil) به همراه علت آخرین رویداد جمعآوری زباله و رویداد جاری (در صورت وجود) نمایش میدهد.
gcnew: آماری از رفتار نسل جوان (New Generation) را نمایش میدهد.
gcnewcapacity: آماری درباره اندازههای نسلهای جدید و فضاهای متناظر آن نمایش میدهد.
gcold: آماری درباره رفتار نسل قدیمی (Old Generation) و آمار متاسپیس (Metaspace) نمایش میدهد.
gcoldcapacity: آماری درباره اندازههای نسل قدیمی نمایش میدهد.
gcmetacapacity: آماری درباره اندازههای متاسپیس نمایش میدهد.
gcutil: خلاصهای از آمار جمعآوری زباله را نمایش میدهد.
printcompilation: آمار متدهای کامپایلشده توسط Java HotSpot VM را نمایش میدهد.
-h n
-t
-JjavaOption
گزینهها و خروجیهای آماری (Stat Options and Output)
اطلاعات زیر ستونهایی را که دستور jstat برای هر statOption خروجی میدهد خلاصه میکند.
-class option
Loaded: تعداد کلاسهای بارگذاریشده.
Bytes: تعداد کیلوبایتهای بارگذاریشده.
Unloaded: تعداد کلاسهای تخلیهشده.
Bytes: تعداد کیلوبایتهای تخلیهشده.
Time: زمان صرفشده برای انجام عملیات بارگذاری و تخلیه کلاسها.
-compiler option
Compiled: تعداد وظایف کامپایل انجامشده.
Failed: تعداد وظایف کامپایل شکستخورده.
Invalid: تعداد وظایف کامپایلی که نامعتبر شدهاند.
Time: زمان صرفشده برای انجام وظایف کامپایل.
FailedType: نوع کامپایل آخرین کامپایل ناموفق.
FailedMethod: نام کلاس و متد آخرین کامپایل ناموفق.
-gc option
S0C: ظرفیت فعلی فضای بازمانده ۰ (Survivor Space 0) بر حسب کیلوبایت.
S1C: ظرفیت فعلی فضای بازمانده ۱ بر حسب کیلوبایت.
S0U: میزان استفاده از فضای بازمانده ۰ بر حسب کیلوبایت.
S1U: میزان استفاده از فضای بازمانده ۱ بر حسب کیلوبایت.
EC: ظرفیت فعلی فضای ایدن (Eden Space) بر حسب کیلوبایت.
EU: میزان استفاده از فضای ایدن بر حسب کیلوبایت.
OC: ظرفیت فعلی فضای قدیمی (Old Space) بر حسب کیلوبایت.
OU: میزان استفاده از فضای قدیمی بر حسب کیلوبایت.
MC: ظرفیت متاسپیس (Metaspace) بر حسب کیلوبایت.
MU: میزان استفاده از متاسپیس بر حسب کیلوبایت.
CCSC: ظرفیت فضای کلاس فشرده (Compressed Class Space) بر حسب کیلوبایت.
CCSU: فضای کلاس فشرده استفادهشده بر حسب کیلوبایت.
YGC: تعداد رویدادهای جمعآوری زباله نسل جوان.
YGCT: زمان جمعآوری زباله نسل جوان.
FGC: تعداد رویدادهای GC کامل (Full GC).
FGCT: زمان جمعآوری زباله کامل.
GCT: مجموع زمان جمعآوری زباله.
-gccapacity option
NGCMN: حداقل ظرفیت نسل جدید بر حسب کیلوبایت.
NGCMX: حداکثر ظرفیت نسل جدید بر حسب کیلوبایت.
NGC: ظرفیت فعلی نسل جدید بر حسب کیلوبایت.
S0C: ظرفیت فعلی فضای بازمانده ۰ بر حسب کیلوبایت.
S1C: ظرفیت فعلی فضای بازمانده ۱ بر حسب کیلوبایت.
EC: ظرفیت فعلی فضای ایدن بر حسب کیلوبایت.
OGCMN: حداقل ظرفیت نسل قدیمی بر حسب کیلوبایت.
OGCMX: حداکثر ظرفیت نسل قدیمی بر حسب کیلوبایت.
OGC: ظرفیت فعلی نسل قدیمی بر حسب کیلوبایت.
OC: ظرفیت فعلی فضای قدیمی بر حسب کیلوبایت.
MCMN: حداقل ظرفیت متاسپیس بر حسب کیلوبایت.
MCMX: حداکثر ظرفیت متاسپیس بر حسب کیلوبایت.
MC: ظرفیت متاسپیس بر حسب کیلوبایت.
CCSMN: حداقل ظرفیت فضای کلاس فشرده بر حسب کیلوبایت.
CCSMX: حداکثر ظرفیت فضای کلاس فشرده بر حسب کیلوبایت.
CCSC: ظرفیت فضای کلاس فشرده بر حسب کیلوبایت.
YGC: تعداد رویدادهای GC نسل جوان.
FGC: تعداد رویدادهای GC کامل.
-gccause option
LGCC: علت آخرین جمعآوری زباله
GCC: علت جمعآوری زباله فعلی
-gcnew option
S0C: ظرفیت فعلی فضای بازمانده ۰ بر حسب کیلوبایت.
S1C: ظرفیت فعلی فضای بازمانده ۱ بر حسب کیلوبایت.
S0U: میزان استفاده از فضای بازمانده ۰ بر حسب کیلوبایت.
S1U: میزان استفاده از فضای بازمانده ۱ بر حسب کیلوبایت.
TT: آستانه ماندگاری (Tenuring Threshold).
MTT: حداکثر آستانه ماندگاری.
DSS: اندازه مطلوب بازمانده (بر حسب کیلوبایت).
EC: ظرفیت فعلی فضای ایدن بر حسب کیلوبایت.
EU: میزان استفاده از فضای ایدن بر حسب کیلوبایت.
YGC: تعداد رویدادهای GC نسل جوان.
YGCT: زمان جمعآوری زباله نسل جوان.
-gcnewcapacity option
NGCMN: حداقل ظرفیت نسل جدید بر حسب کیلوبایت.
NGCMX: حداکثر ظرفیت نسل جدید بر حسب کیلوبایت.
NGC: ظرفیت فعلی نسل جدید بر حسب کیلوبایت.
S0CMX: حداکثر ظرفیت فضای بازمانده ۰ بر حسب کیلوبایت.
S0C: ظرفیت فعلی فضای بازمانده ۰ بر حسب کیلوبایت.
S1CMX: حداکثر ظرفیت فضای بازمانده ۱ بر حسب کیلوبایت.
S1C: ظرفیت فعلی فضای بازمانده ۱ بر حسب کیلوبایت.
ECMX: حداکثر ظرفیت فضای ایدن بر حسب کیلوبایت.
EC: ظرفیت فعلی فضای ایدن بر حسب کیلوبایت.
YGC: تعداد رویدادهای GC نسل جوان.
FGC: تعداد رویدادهای GC کامل.
-gcold option
MC: ظرفیت متاسپیس بر حسب کیلوبایت.
MU: میزان استفاده از متاسپیس بر حسب کیلوبایت.
CCSC: ظرفیت فضای کلاس فشرده بر حسب کیلوبایت.
CCSU: فضای کلاس فشرده استفادهشده بر حسب کیلوبایت.
OC: ظرفیت فعلی فضای قدیمی بر حسب کیلوبایت.
OU: میزان استفاده از فضای قدیمی بر حسب کیلوبایت.
YGC: تعداد رویدادهای GC نسل جوان.
FGC: تعداد رویدادهای GC کامل.
FGCT: زمان جمعآوری زباله کامل.
GCT: مجموع زمان جمعآوری زباله.
-gcoldcapacity option
OGCMN: حداقل ظرفیت نسل قدیمی بر حسب کیلوبایت.
OGCMX: حداکثر ظرفیت نسل قدیمی بر حسب کیلوبایت.
OGC: ظرفیت فعلی نسل قدیمی بر حسب کیلوبایت.
OC: ظرفیت فعلی فضای قدیمی بر حسب کیلوبایت.
YGC: تعداد رویدادهای GC نسل جوان.
FGC: تعداد رویدادهای GC کامل.
FGCT: زمان جمعآوری زباله کامل.
GCT: مجموع زمان جمعآوری زباله.
-gcmetacapacity option
MCMN: حداقل ظرفیت متاسپیس بر حسب کیلوبایت.
MCMX: حداکثر ظرفیت متاسپیس بر حسب کیلوبایت.
MC: ظرفیت متاسپیس بر حسب کیلوبایت.
CCSMN: حداقل ظرفیت فضای کلاس فشرده بر حسب کیلوبایت.
CCSMX: حداکثر ظرفیت فضای کلاس فشرده بر حسب کیلوبایت.
YGC: تعداد رویدادهای GC نسل جوان.
FGC: تعداد رویدادهای GC کامل.
FGCT: زمان جمعآوری زباله کامل.
GCT: مجموع زمان جمعآوری زباله.
-gcutil option
S0: میزان استفاده از فضای بازمانده ۰ به صورت درصدی از ظرفیت فعلی آن فضا.
S1: میزان استفاده از فضای بازمانده ۱ به صورت درصدی از ظرفیت فعلی آن فضا.
E: میزان استفاده از فضای ایدن به صورت درصدی از ظرفیت فعلی آن فضا.
O: میزان استفاده از فضای قدیمی به صورت درصدی از ظرفیت فعلی آن فضا.
M: میزان استفاده از متاسپیس به صورت درصدی از ظرفیت فعلی آن فضا.
CCS: میزان استفاده از فضای کلاس فشرده به درصد.
YGC: تعداد رویدادهای GC نسل جوان.
YGCT: زمان جمعآوری زباله نسل جوان.
FGC: تعداد رویدادهای GC کامل.
FGCT: زمان جمعآوری زباله کامل.
GCT: مجموع زمان جمعآوری زباله.
-printcompilation option
Compiled: تعداد وظایف کامپایل انجامشده توسط جدیدترین متد کامپایلشده.
Size: تعداد بایتهای بایتکد جدیدترین متد کامپایلشده.
Type: نوع کامپایل جدیدترین متد کامپایلشده.
Method: نام کلاس و نام متد مشخصکننده جدیدترین متد کامپایلشده. نام کلاس بهجای نقطه (.) از اسلش (/) به عنوان جداکننده فضای نام استفاده میکند. نام متد، متد درون کلاس مشخصشده است. قالب این دو فیلد با گزینه -XX:+PrintCompilation در HotSpot مطابقت دارد.
مثالها (EXAMPLES)
این بخش مثالهایی از نظارت بر یک JVM محلی با lvmid برابر ۲۱۸۹۱ را ارائه میدهد.
گزینه gcutil
این مثال به lvmid برابر با ۲۱۸۹۱ متصل شده و ۷ نمونه در بازههای زمانی ۲۵۰ میلیثانیهای میگیرد و خروجی را همانطور که توسط گزینه -gcutil تعیین شده نمایش میدهد.
خروجی این مثال نشان میدهد که یک جمعآوری نسل جوان بین نمونههای سوم و چهارم رخ داده است. این جمعآوری ۰.۰۷۸ ثانیه طول کشید و اشیاء را از فضای ایدن (E) به فضای قدیمی (O) ارتقا داد، که منجر به افزایش میزان استفاده از فضای قدیمی از ۶۶.۸۰٪ به ۶۸.۱۹٪ شد. پیش از جمعآوری، ۹۷.۰۲٪ از فضای بازمانده مورد استفاده بود، اما پس از این جمعآوری ۹۱.۰۳٪ آن مورد استفاده است.
jstat -gcutil 21891 250 7 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 0.00 97.02 70.31 66.80 95.52 89.14 7 0.300 0 0.000 0.300 0.00 97.02 86.23 66.80 95.52 89.14 7 0.300 0 0.000 0.300 0.00 97.02 96.53 66.80 95.52 89.14 7 0.300 0 0.000 0.300 91.03 0.00 1.98 68.19 95.89 91.24 8 0.378 0 0.000 0.378 91.03 0.00 15.82 68.19 95.89 91.24 8 0.378 0 0.000 0.378 91.03 0.00 17.80 68.19 95.89 91.24 8 0.378 0 0.000 0.378 91.03 0.00 17.80 68.19 95.89 91.24 8 0.378 0 0.000 0.378
تکرار رشته عنوان ستونها
این مثال به lvmid برابر با ۲۱۸۹۱ متصل شده و نمونههایی را در بازههای زمانی ۲۵۰ میلیثانیهای میگیرد و خروجی را مطابق گزینه -gcnew نمایش میدهد. علاوه بر این، از گزینه -h3 برای نمایش عنوان ستونها پس از هر ۳ سطر داده استفاده میکند.
این مثال علاوه بر نمایش تکرار رشته عناوین، نشان میدهد که بین نمونههای دوم و سوم، یک GC نسل جوان رخ داده است. مدت زمان آن ۰.۰۰۱ ثانیه بود. این جمعآوری دادههای فعال کافی پیدا کرد به طوری که میزان استفاده از فضای بازمانده ۰ (S0U) از اندازه مطلوب بازمانده (DSS) فراتر میرفت. در نتیجه، اشیاء به نسل قدیمی ارتقا یافتند (که در این خروجی قابل مشاهده نیست) و آستانه ماندگاری (TT) از ۳۱ به ۲ کاهش یافت.
جمعآوری دیگری بین نمونههای پنجم و ششم رخ میدهد. این جمعآوری بازماندگان بسیار اندکی پیدا کرد و آستانه ماندگاری را به ۳۱ بازگرداند.
jstat -gcnew -h3 21891 250 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT 64.0 64.0 0.0 31.7 31 31 32.0 512.0 178.6 249 0.203 64.0 64.0 0.0 31.7 31 31 32.0 512.0 355.5 249 0.203 64.0 64.0 35.4 0.0 2 31 32.0 512.0 21.9 250 0.204 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT 64.0 64.0 35.4 0.0 2 31 32.0 512.0 245.9 250 0.204 64.0 64.0 35.4 0.0 2 31 32.0 512.0 421.1 250 0.204 64.0 64.0 0.0 19.0 31 31 32.0 512.0 84.4 251 0.204 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT 64.0 64.0 0.0 19.0 31 31 32.0 512.0 306.7 251 0.204
گنجاندن برچسب زمانی برای هر نمونه
این مثال به lvmid برابر با ۲۱۸۹۱ متصل شده و ۳ نمونه در بازههای زمانی ۲۵۰ میلیثانیهای میگیرد. گزینه -t برای تولید یک برچسب زمانی برای هر نمونه در ستون اول استفاده میشود.
ستون Timestamp زمان سپریشده به ثانیه را از زمان شروع JVM هدف گزارش میکند. علاوه بر این، خروجی -gcoldcapacity نشان میدهد که با گسترش هیپ برای پاسخگویی به تقاضاهای تخصیص یا ارتقا، ظرفیت نسل قدیمی (OGC) و ظرفیت فضای قدیمی (OC) افزایش مییابند. ظرفیت نسل قدیمی (OGC) پس از هشتاد و یکمین جمعآوری کامل زباله (FGC) از ۱۱٬۶۹۶ کیلوبایت به ۱۳٬۸۲۰ کیلوبایت افزایش یافته است. حداکثر ظرفیت این نسل (و فضا) ۶۰٬۵۴۴ کیلوبایت (OGCMX) است، بنابراین هنوز فضا برای گسترش دارد.
Timestamp OGCMN OGCMX OGC OC YGC FGC FGCT GCT
150.1 1408.0 60544.0 11696.0 11696.0 194 80 2.874 3.799
150.4 1408.0 60544.0 13820.0 13820.0 194 81 2.938 3.863
150.7 1408.0 60544.0 13820.0 13820.0 194 81 2.938 3.863
پایش سنجههای عملکردی برای JVM از راه دور
این مثال با استفاده از گزینه -gcutil به lvmid برابر با ۴۰۴۹۶ بر روی سیستمی به نام remote.domain متصل میشود و هر ثانیه به طور نامحدود نمونهبرداری میکند.
مقدار lvmid با نام میزبان از راه دور ترکیب میشود تا یک vmid به صورت 40496@remote.domain بسازد. این vmid منجر به استفاده از پروتکل rmi برای برقراری ارتباط با سرور پیشفرض jstatd در میزبان راه دور میشود. سرور jstatd با استفاده از دستور rmiregistry در remote.domain که به پورت پیشفرض دستور rmiregistry (پورت ۱۰۹۹) متصل است، مکانیابی میشود.
jstat -gcutil 40496@remote.domain 1000 ... output omitted
همچنین ببینید (SEE ALSO)
| 03 March 2015 | JDK 8 |