| JCMD(1) | JDK Commands | JCMD(1) |
نام (NAME)
jcmd - ارسال درخواستهای فرمان عیبیابی به یک ماشین مجازی جاوا (JVM) در حال اجرا
خلاصه دستور (SYNOPSIS)
jcmd [pid | main-class] command... | PerfCounter.print | -f filename
jcmd [-l]
jcmd -h
- pid
- در صورت استفاده، ابزار jcmd درخواست فرمان عیبیابی را به شناسه فرایند (PID) مربوط به فرایند جاوا ارسال میکند.
- main-class
- در صورت استفاده، ابزار jcmd درخواست فرمان عیبیابی را به تمام فرایندهای جاوایی که کلاس اصلی (main class) آنها نام مشخصشده را دارند ارسال میکند.
- command
- مقدار command باید یک فرمان معتبر jcmd برای JVM انتخابشده باشد. فهرست فرمانهای موجود برای jcmd با اجرای فرمان help به دست میآید (jcmd pid help) که در آن pid شناسه فرایند برای فرایند جاوای در حال اجرا است.
- Perfcounter.print
- شمارندههای کارایی (performance counters) ارائهشده توسط فرایند جاوای مشخصشده را چاپ میکند.
- -f filename
- فرمانها را از یک فایل مشخص، filename، میخواند و اجرا میکند.
- -l
- فهرست شناسههای فرایند ماشین مجازی جاوا را که در یک فرایند docker مجزا اجرا نمیشوند، به همراه کلاس اصلی و آرگومانهای خط فرمانی که برای راهاندازی فرایند استفاده شدهاند، نمایش میدهد. اگر JVM درون یک فرایند docker باشد، باید از ابزارهایی مانند ps برای یافتن PID استفاده کنید.
- -h
- راهنمای خط فرمان ابزار jcmd را نمایش میدهد.
توضیحات (DESCRIPTION)
ابزار jcmd برای ارسال درخواستهای فرمان عیبیابی به JVM استفاده میشود. این ابزار باید روی همان ماشینی که JVM در آن در حال اجرا است استفاده شود و دارای همان شناسههای کاربری و گروهی مؤثری باشد که برای راهاندازی JVM به کار رفتهاند. هر فرمان عیبیابی مجموعه گزینهها و آرگومانهای خاص خود را دارد. برای نمایش توضیحات، نحو و فهرستی از گزینهها و آرگومانهای موجود برای یک فرمان عیبیابی، از نام آن فرمان به عنوان آرگومان استفاده کنید. برای مثال:
jcmd pid help command
اگر آرگومانها شامل فاصله باشند، باید آنها را در علامت نقلقول تکی یا دوتایی قرار دهید (' یا "). علاوه بر این، برای جلوگیری از پردازش نشانههای نقلقول توسط شل سیستمعامل، باید نشانههای نقلقول تکی یا دوتایی را با یک بکاسلش (\) اسکیپ کنید. همچنین، میتوانید این آرگومانها را ابتدا با علامت نقلقول تکی و سپس با علامت نقلقول دوتایی محصور کنید (یا ابتدا با نقلقول دوتایی و سپس با نقلقول تکی).
اگر شناسه فرایند (pid) یا کلاس اصلی (main-class) را به عنوان اولین آرگومان مشخص کنید، ابزار jcmd درخواست فرمان عیبیابی را به فرایند جاوای دارای شناسه مشخصشده یا به تمام فرایندهای جاوایی که نام کلاس اصلی مشخصشده را دارند ارسال میکند. همچنین میتوانید با مشخص کردن 0 به عنوان شناسه فرایند، درخواست فرمان عیبیابی را به تمام فرایندهای جاوای موجود ارسال کنید..SH "دستورهای JCMD (COMMANDS FOR JCMD)" مقدار command باید یک دستور عیبیابی معتبر jcmd برای JVM انتخابشده باشد. فهرست دستورهای موجود برای jcmd با اجرای دستور help (jcmd pid help) به دست میآید که در آن pid شناسهٔ فرایند یک فرایند در حال اجرای جاوا است. اگر pid برابر 0 باشد، دستورها به تمام فرایندهای جاوا ارسال خواهند شد. آرگومان کلاس اصلی برای تطبیق، بهصورت جزئی یا کامل، با کلاسی که برای شروع جاوا استفاده شده به کار خواهد رفت. اگر هیچ گزینهای داده نشود، شناسههای فرایندهای جاوای در حال اجرا را که در فرایندهای جداگانهٔ docker نیستند، همراه با کلاس اصلی و آرگومانهای خط فرمانی که برای راهاندازی فرایند استفاده شدهاند فهرست میکند (مشابه استفاده از -l).
دستورهای jcmd میتوانند گزینه و آرگومان بپذیرند. گزینهها با استفاده از نحو key یا key=value مشخص میشوند. آرگومانها صرفاً بهصورت یک مقدار داده میشوند، نه بهصورت name=value.
دستورهای زیر در دسترس هستند:
- help [options] [arguments]
- برای اطلاعات بیشتر دربارهٔ یک دستور مشخص.
- command name: نام دستوری که برای آن راهنما میخواهیم (STRING، بدون مقدار پیشفرض) نکته: گزینههای زیر باید با نحو key یا key=value مشخص شوند. گزینهها:
- -all: (اختیاری) نمایش راهنما برای تمام دستورها (BOOLEAN، false) .
- AOT.end_recording
- آموزش در حال انجام AOT را پایان داده و نتایج را در فایل(های) مشخصشده توسط -XX:AOTConfiguration و/یا -XX:AOTCacheOutput ضبط میکند.
- Compiler.CodeHeap_Analytics [function] [granularity]
- چاپ تحلیلهای CodeHeap
- function: (اختیاری) تابعی که باید اجرا شود (aggregate، UsedSpace، FreeSpace، MethodCount، MethodSpace، MethodAge، MethodNames، discard (STRING، all)
- granularity: (اختیاری) سطح جزئیات - مقدار کوچکتر -> جزئیات بیشتر (INT، 4096)
- Compiler.codecache
- طرحبندی و محدودههای code cache را چاپ میکند.
- Compiler.codelist
- تمام متدهای کامپایلشده در code cache را که فعال هستند چاپ میکند.
- Compiler.directives_add arguments
- دستورالعملهای کامپایلر را از یک فایل اضافه میکند.
- •
- filename: نام فایل دستورالعملها (STRING، بدون مقدار پیشفرض)
- Compiler.directives_clear
- حذف تمام دستورالعملهای کامپایلر.
- Compiler.directives_print
- تمام دستورالعملهای فعال کامپایلر را چاپ میکند.
- Compiler.directives_remove
- حذف آخرین دستورالعمل اضافهشده به کامپایلر.
- Compiler.memory [options]
- چاپ ردپای حافظهٔ کامپایل
- -H: (اختیاری) قالب خوانا برای انسان (BOOLEAN، false)
- -s: (اختیاری) کمینهٔ اندازهٔ حافظه (MEMORY SIZE، 0)
- Compiler.perfmap [arguments] (فقط در لینوکس)
- نوشتن فایل map برای ابزار perf لینوکس.
- •
- filename: (اختیاری) نام فایل map. اگر %p در نام فایل مشخص شود، به PID مربوط به JVM بسط مییابد. (FILE، "/tmp/perf-%p.map")
- Compiler.queue
- متدهای قرارگرفته در صف کامپایل را چاپ میکند.
- GC.class_histogram [options]
- آمارههایی دربارهٔ میزان استفاده از Java heap ارائه میدهد.
- -all: (اختیاری) تمام اشیاء را، از جمله اشیاء غیرقابلدسترس، بررسی میکند (BOOLEAN، false)
- -parallel: (اختیاری) تعداد رشتههای موازی برای بررسی heap. 0 (پیشفرض) یعنی به ماشین مجازی اجازه داده شود تعداد رشتهها را تعیین کند. 1 یعنی از یک رشته استفاده شود (غیرفعال کردن موازیسازی). برای هر مقدار دیگری، ماشین مجازی تلاش میکند از تعداد رشتههای تعیینشده استفاده کند، اما ممکن است از تعداد کمتری استفاده کند. (INT، 0)
- GC.finalizer_info
- اطلاعاتی دربارهٔ صف نهاییسازی جاوا ارائه میدهد.
- GC.heap_dump [options] filename
- یک رونوشت در قالب HPROF از Java heap تولید میکند.
- -all: (اختیاری) تخلیهٔ تمام اشیاء، از جمله اشیاء غیرقابلدسترس (BOOLEAN، false)
- -gz: (اختیاری) در صورت تعیین، رونوشت heap در قالب gzipشده با سطح فشردهسازی ارائهشده نوشته میشود. 1 (توصیهشده) سریعترین و 9 قویترین فشردهسازی است. (INT، 1).IP • 2 -overwrite: (اختیاری) در صورت تعیین، در صورتی که فایل دامپ وجود داشته باشد رونویسی خواهد شد (BOOLEAN, false)
- -parallel: (اختیاری) تعداد رشتههای موازی مورد استفاده برای دامپ هیپ. ماشین مجازی (VM) تلاش خواهد کرد از تعداد رشتههای مشخصشده استفاده کند، اما ممکن است از تعداد کمتری استفاده نماید. (INT, 1) آرگومانها:
- filename: نام فایل دامپ. اگر %p در نام فایل مشخص شده باشد، به PID مربوط به JVM گسترش مییابد. (FILE، بدون مقدار پیشفرض)
- GC.heap_info
- اطلاعات عمومی هیپ جاوا را ارائه میدهد.
- GC.run
- java.lang.System.gc() را فراخوانی میکند.
- GC.run_finalization
- java.lang.System.runFinalization() را فراخوانی میکند.
- JFR.check [options]
- نمایش اطلاعات درباره یک ضبط پرواز (flight recording) در حال اجرا
- name: (اختیاری) نام ضبط پرواز. (STRING، بدون مقدار پیشفرض)
- verbose: (اختیاری) پرچم برای چاپ تنظیمات رویدادها برای این ضبط (BOOLEAN, false)
- JFR.configure [options]
- تنظیم پارامترها برای یک ضبط پرواز (flight recording)
- dumppath: (اختیاری) مسیر مکانی که در صورت مواجهه ماشین مجازی با یک خطای بحرانی، مانند خرابی سیستم (crash)، فایل ضبط در آنجا نوشته میشود. (STRING، مکان پیشفرض، دایرکتوری جاری است)
- globalbuffercount: (اختیاری) تعداد بافرهای سراسری. این گزینه یک گزینه قدیمی است: برای تغییر تعداد بافرهای سراسری، پارامتر memorysize را تغییر دهید. این مقدار پس از راهاندازی JFR قابل تغییر نیست. (STRING، مقدار پیشفرض توسط مقدار memorysize تعیین میشود)
- globalbuffersize: (اختیاری) اندازه بافرهای سراسری، به بایت. این گزینه یک گزینه قدیمی است: برای تغییر اندازه بافرهای سراسری، پارامتر memorysize را تغییر دهید. این مقدار پس از راهاندازی JFR قابل تغییر نیست. (STRING، مقدار پیشفرض توسط مقدار memorysize تعیین میشود)
- maxchunksize: (اختیاری) حداکثر اندازه یک تکه داده (chunk) مجزا به بایت، در صورتی که از یکی از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت یا 'g' یا 'G' برای گیگابایت. این مقدار پس از راهاندازی JFR قابل تغییر نیست. (STRING, 12M)
- memorysize: (اختیاری) اندازه کلی حافظه، به بایت در صورتی که از یکی از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت یا 'g' یا 'G' برای گیگابایت. این مقدار پس از راهاندازی JFR قابل تغییر نیست. (STRING, 10M)
- repositorypath: (اختیاری) مسیر مکانی که ضبطها تا زمان نوشتهشدن در یک فایل دائمی در آنجا ذخیره میشوند. (STRING، مکان پیشفرض، دایرکتوری موقت سیستمعامل است. در سیستمهای عامل لینوکس، دایرکتوری موقت /tmp است. در ویندوز، دایرکتوری موقت توسط متغیر محیطی TMP مشخص میشود.)
- preserve-repository={true|false} : مشخص میکند که آیا فایلهای ذخیرهشده در مخزن دیسک باید پس از خروج JVM نگهداری شوند یا خیر. در صورت false بودن، فایلها حذف میشوند. بهطور پیشفرض، این پارامتر غیرفعال است.
- stackdepth: (اختیاری) عمق پشته برای ردگیریهای پشته. تنظیم این مقدار به بیش از مقدار پیشفرض 64 ممکن است باعث افت کارایی شود. این مقدار پس از راهاندازی JFR قابل تغییر نیست. (LONG, 64)
- thread_buffer_size: (اختیاری) اندازه بافر محلی برای هر رشته به بایت، در صورتی که از یکی از پسوندهای زیر استفاده نشده باشد: 'k' یا 'K' برای کیلوبایت یا 'm' یا 'M' برای مگابایت. بازنویسی این پارامتر میتواند کارایی را کاهش دهد و توصیه نمیشود. این مقدار پس از راهاندازی JFR قابل تغییر نیست. (STRING, 8k)
- samplethreads: (اختیاری) پرچم برای فعالسازی نمونهبرداری رشتهها. (BOOLEAN, true)
- JFR.dump [options]
- نوشتن دادهها در یک فایل در حالی که یک ضبط پرواز در حال اجراست
- begin: (اختیاری) تعیین زمانی که دادههای ضبط از آن زمان در فایل دامپ گنجانده میشوند. این قالب به صورت زمان محلی مشخص میشود. (STRING، بدون مقدار پیشفرض)
- end: (اختیاری) تعیین زمانی که دادههای ضبط تا آن زمان در فایل دامپ گنجانده میشوند. این قالب به صورت زمان محلی مشخص میشود. (STRING، بدون مقدار پیشفرض)
نکته: برای هر دو پارامتر begin و end، زمان باید در قالبی باشد که توسط java.time.LocalTime::parse(STRING)، java.time.LocalDateTime::parse(STRING) یا java.time.Instant::parse(STRING) قابل خواندن باشد. برای مثال، "13:20:15"، "2020-03-17T09:00:00" یا "2020-03-17T09:00:00Z".
نکته: زمانهای begin و end متناظر با برچسبهای زمانی موجود در اطلاعات ثبتشده در دادههای ضبط پرواز هستند.
گزینه دیگر، استفاده از یک زمان نسبی نسبت به زمان جاری است که با یک عدد صحیح منفی به همراه "s"، "m" یا "h" مشخص میشود. برای مثال، "-12h"، "-15m" یا "-30s"
- filename: (اختیاری) نام فایلی که دادههای ضبط پرواز در آن دامپ میشوند. اگر نام فایلی داده نشود، یک نام فایل از روی PID و تاریخ جاری تولید میشود. نام فایل همچنین میتواند یک دایرکتوری باشد که در این صورت، نام فایل از روی PID و تاریخ جاری در دایرکتوری مشخصشده تولید میشود. اگر %p و/یا %t در نام فایل مشخص شده باشد، به ترتیب به PID مربوط به JVM و برچسب زمانی جاری گسترش مییابد. (FILE، بدون مقدار پیشفرض)
- maxage: (اختیاری) مدت زمان برای دامپ کردن دادههای ضبط پرواز در یک فایل. (INTEGER به همراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، بدون مقدار پیشفرض)
- maxsize: (اختیاری) حداکثر اندازه برای مقدار دادهای که باید از یک ضبط پرواز دامپ شود به بایت، در صورتی که از یکی از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت یا 'g' یا 'G' برای گیگابایت. (STRING، بدون مقدار پیشفرض).IP • 2 name: (اختیاری) نام ضبط. اگر نامی مشخص نشود، دادههای تمام ضبطها تخلیه (dump) میشوند. (STRING، بدون مقدار پیشفرض)
- path-to-gc-roots: (اختیاری) پرچمی برای ذخیره مسیر به ریشههای بازیافت حافظه (GC) در زمان تخلیه دادههای ضبط. اطلاعات مسیر برای یافتن نشتهای حافظه مفید است، اما جمعآوری آن میتواند باعث توقف کوتاهمدت برنامه شود. این پرچم را تنها زمانی فعال کنید که مشکوک به نشت حافظه در برنامه هستید. (BOOLEAN، false)
- JFR.start [options]
- شروع یک ضبط پرواز (flight recording)
- delay: (اختیاری) مدت زمان انتظار پیش از شروع ضبط (INTEGER بههمراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، 0s)
- disk: (اختیاری) پرچمی برای نوشتن همزمان دادهها روی دیسک در حین ضبط (BOOLEAN، true)
- dumponexit: (اختیاری) پرچمی برای نوشتن دادههای ضبط روی دیسک هنگام خاموش شدن ماشین مجازی جاوا (JVM). اگر روی 'true' تنظیم شود و مقداری برای filename تعیین نشده باشد، ضبط در فایلی در دایرکتوری محل آغاز فرایند نوشته میشود. نام فایل یک نام تولیدشده توسط سیستم است که شامل شناسه فرایند (PID)، شناسه ضبط و برچسب زمانی فعلی است. (برای نمونه: id-1-2019_12_12_10_41.jfr) (BOOLEAN، false)
- duration: (اختیاری) مدت زمان ضبط. توجه داشته باشید که 0s بهمعنای نامحدود است (INTEGER بههمراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، 0s)
- filename: (اختیاری) نام فایلی که پس از توقف ضبط، دادههای flight recording در آن نوشته میشوند. اگر نام فایلی مشخص نشود، نام فایل از روی PID و تاریخ فعلی تولید شده و در دایرکتوری محل آغاز فرایند قرار میگیرد. نام فایل همچنین میتواند یک دایرکتوری باشد، که در این حالت نام فایل از روی PID و تاریخ فعلی در دایرکتوری مشخصشده تولید میشود. اگر %p یا %t در نام فایل مشخص شده باشد، بهترتیب به PID مربوط به JVM و برچسب زمانی فعلی بسط مییابد. (FILE، بدون مقدار پیشفرض)
- maxage: (اختیاری) حداکثر زمان نگهداری دادههای ضبطشده روی دیسک. این پارامتر تنها زمانی معتبر است که پارامتر disk روی true تنظیم شده باشد. توجه داشته باشید که 0s بهمعنای نامحدود است. (INTEGER بههمراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، 0s)
- maxsize: (اختیاری) حداکثر اندازه دادهها برای نگهداری روی دیسک به بایت در صورتی که یکی از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت یا 'g' یا 'G' برای گیگابایت. این پارامتر تنها زمانی معتبر است که پارامتر disk روی 'true' تنظیم شده باشد. این مقدار نباید از مقدار پارامتر maxchunksize که با دستور JFR.configure تنظیم شده کمتر باشد. (STRING، 0 (بدون حداکثر اندازه))
- name: (اختیاری) نام ضبط. اگر نامی ارائه نشود، یک نام تولید میشود. نام تولیدشده را که در پاسخ به دستور نشان داده میشود یادداشت کنید تا بتوانید از آن در سایر دستورها استفاده کنید. (STRING، نام پیشفرض تولیدشده توسط سیستم)
- path-to-gc-roots: (اختیاری) پرچمی برای ذخیره مسیر به ریشههای بازیافت حافظه (GC) در انتهای ضبط. اطلاعات مسیر برای یافتن نشتهای حافظه مفید است اما جمعآوری آن زمانبر است. این پرچم را تنها زمانی فعال کنید که مشکوک به نشت حافظه در برنامه هستید. اگر پارامتر settings روی 'profile' تنظیم شده باشد، اطلاعات جمعآوریشده شامل رد پشته (stack trace) مکانی است که شیء مشکوک به نشت در آن تخصیص یافته بود. (BOOLEAN، false)
- settings: (اختیاری) نام فایل تنظیماتی که رویدادهای قابل ضبط را مشخص میکند. برای تعیین بیش از یک فایل، نامها را با کاما (',') از هم جدا کنید. اگر فایل در مسیر JAVA-HOME/lib/jfr نیست، مسیر آن را درج کنید. پروفایلهای زیر بههمراه JDK در دایرکتوری JAVA-HOME/lib/jfr قرار دارند: 'default.jfc': مجموعهای از پیش تعریفشده از اطلاعات را با بار اضافی (overhead) کم جمعآوری میکند، بنابراین کمترین تأثیر را بر عملکرد دارد و میتواند برای ضبطهایی که بهصورت پیوسته اجرا میشوند استفاده شود؛ 'profile.jfc': دادههای بیشتری نسبت به پروفایل 'default.jfc' فراهم میکند، اما با بار اضافی و تأثیر بیشتر بر عملکرد همراه است. از این پیکربندی برای دورههای زمانی کوتاه در هنگام نیاز به اطلاعات بیشتر استفاده کنید. از none برای شروع یک ضبط بدون فایل پیکربندی از پیش تعریفشده استفاده کنید. (STRING، JAVA-HOME/lib/jfr/default.jfc) تنظیمات رویداد و گزینههای .jfc را میتوان با نحو زیر مشخص کرد:
- option: (اختیاری) مقدار گزینهای که باید تغییر یابد را مشخص میکند. برای فهرست کردن گزینههای موجود، از ابزار JAVA_HOME/bin/jfr استفاده کنید.
- event-setting: (اختیاری) مقدار تنظیم رویدادی که باید تغییر یابد را مشخص میکند. از قالب زیر استفاده کنید: <event-name>#<setting-name>=<value> برای افزودن یک تنظیم رویداد جدید، نام رویداد را با '+' پیشوندگذاری کنید. میتوانید مقادیر چندین تنظیم رویداد و گزینه .jfc را با جدا کردن آنها با فاصله (whitespace) مشخص کنید. در صورت بروز تداخل بین یک پارامتر و یک گزینه .jfc، پارامتر اولویت خواهد داشت. جداکننده فاصله را میتوان برای مقادیر بازه زمانی، یعنی 20ms، نادیده گرفت. برای اطلاعات بیشتر درباره نحو تنظیمات، به Javadoc مربوط به بسته jdk.jfr مراجعه کنید.
- JFR.stop [options]
- توقف یک ضبط پرواز (flight recording)
- filename: (اختیاری) نام فایلی که هنگام توقف ضبط، اطلاعات ضبط در آن نوشته میشود. اگر %p یا %t در نام فایل مشخص شده باشد، بهترتیب به PID مربوط به JVM و برچسب زمانی فعلی بسط مییابد. اگر مسیری ارائه نشود، دادههای ضبط دور ریخته میشوند. (FILE، بدون مقدار پیشفرض)
- name: (اختیاری) نام ضبط (STRING، بدون مقدار پیشفرض)
- JFR.view [options]
- نمایش دادههای رویداد در نماهای از پیش تعریفشده.
- cell-height: (اختیاری) حداکثر تعداد ردیفها در یک سلول جدول. (INT، مقدار پیشفرض به نما بستگی دارد)
- maxage: (اختیاری) بازه زمانی تحت پوشش نما. (INT بههمراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، مقدار پیشفرض 10m است)
- maxsize: (اختیاری) حداکثر اندازه تحت پوشش نما به بایت در صورتی که یکی از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت یا 'g' یا 'G' برای گیگابایت. (STRING، مقدار پیشفرض 32MB است)
- truncate: (اختیاری) حداکثر تعداد ردیفها در یک سلول جدول. (INT، مقدار پیشفرض به نما بستگی دارد)
- verbose: (اختیاری) پرسوجویی (query) که نما را تشکیل میدهد نمایش میدهد. (BOOLEAN، مقدار پیشفرض false است)
- width: (اختیاری) عرض نما بر حسب نویسه (کاراکتر). (INT، مقدار پیشفرض به نما بستگی دارد) arguments:.IP • 2 view: نام نما (view) یا نوع رویداد برای نمایش. برای دیدن فهرستی از نماهای موجود از help JFR.view استفاده کنید. (STRING، بدون مقدار پیشفرض) پارامتر view میتواند نام یک نوع رویداد باشد. برای دیدن فهرست از JFR.view types استفاده کنید. برای نمایش همه نماها، از JFR.view all-views استفاده کنید. برای نمایش همه رویدادها، از JFR.view all-events استفاده کنید.
- JVMTI.agent_load [arguments]
- عامل بومی (native agent) مربوط به JVMTI را بارگذاری میکند.
- library path: مسیر مطلق عامل JVMTI برای بارگذاری. (STRING، بدون مقدار پیشفرض)
- agent option: (اختیاری) رشته گزینه برای ارسال به عامل. (STRING، بدون مقدار پیشفرض)
- JVMTI.data_dump
- ارسال سیگنال به JVM برای ایجاد درخواست تخلیه داده (data-dump) برای JVMTI.
- ManagementAgent.start [options]
- عامل مدیریت از راه دور را راهاندازی میکند.
- config.file: (اختیاری) com.sun.management.config.file را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.host: (اختیاری) com.sun.management.jmxremote.host را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.port: (اختیاری) com.sun.management.jmxremote.port را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.rmi.port: (اختیاری) com.sun.management.jmxremote.rmi.port را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.ssl: (اختیاری) com.sun.management.jmxremote.ssl را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.registry.ssl: (اختیاری) com.sun.management.jmxremote.registry.ssl را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.authenticate: (اختیاری) com.sun.management.jmxremote.authenticate را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.password.file: (اختیاری) com.sun.management.jmxremote.password.file را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.access.file: (اختیاری) com.sun.management.jmxremote.acce ss.file را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.login.config: (اختیاری) com.sun.management.jmxremote.log in.config را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.ssl.enabled.cipher.suites: (اختیاری) com.sun.management را تنظیم میکند.
- jmxremote.ssl.enabled.cipher.suite: (STRING، بدون مقدار پیشفرض)
- jmxremote.ssl.enabled.protocols: (اختیاری) com.sun.management.jmxr emote.ssl.enabled.protocols را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.ssl.need.client.auth: (اختیاری) com.sun.management.jmxre mote.need.client.auth را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.ssl.config.file: (اختیاری) com.sun.management.jmxremote. ssl_config_file را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jmxremote.autodiscovery: (اختیاری) com.sun.management.jmxremote.au todiscovery را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jdp.port: (اختیاری) com.sun.management.jdp.port را تنظیم میکند (INT، بدون مقدار پیشفرض)
- jdp.address: (اختیاری) com.sun.management.jdp.address را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jdp.source_addr: (اختیاری) com.sun.management.jdp.source_addr را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- jdp.ttl: (اختیاری) com.sun.management.jdp.ttl را تنظیم میکند (INT، بدون مقدار پیشفرض)
- jdp.pause: (اختیاری) com.sun.management.jdp.pause را تنظیم میکند (INT، بدون مقدار پیشفرض)
- jdp.name: (اختیاری) com.sun.management.jdp.name را تنظیم میکند (STRING، بدون مقدار پیشفرض)
- ManagementAgent.start_local
- عامل مدیریت محلی را راهاندازی میکند.
- ManagementAgent.status
- چاپ وضعیت عامل مدیریت.
- ManagementAgent.stop
- عامل مدیریت از راه دور را متوقف میکند.
- System.dump_map [options] (فقط در لینوکس)
- نقشه حافظه حاشیهنویسیشده فرایند را در یک فایل خروجی تخلیه میکند.
- -H: (اختیاری) قالب خوانا برای انسان (BOOLEAN، false)
- -F: (اختیاری) مسیر فایل. اگر %p در نام فایل مشخص شده باشد، به PID مربوط به JVM بسط داده میشود. (FILE، "vm_memory_map_%p.txt")
- System.map [options] (فقط در لینوکس)
- نقشه حافظه حاشیهنویسیشده فرایند VM را چاپ میکند.
- •
- -H: (اختیاری) قالب خوانا برای انسان (BOOLEAN، false)
- System.native_heap_info (فقط در لینوکس)
- تلاش میکند اطلاعات مربوط به میزان استفاده از هیپ بومی (native heap) را از طریق malloc_info(3) خروجی دهد. در صورت ناموفق بودن، عبارت "Error: " و دلیل آن را چاپ میکند.
- System.trim_native_heap (فقط در لینوکس)
- تلاش میکند با هرس کردن C-heap حافظه را آزاد سازد.
- Thread.dump_to_file [options] filepath
- تخلیه تمام رشتهها (threads) به همراه رد پشته (stack trace) در یک فایل با قالب متن خام یا JSON.
- -format: (اختیاری) قالب خروجی ("plain" یا "json") (STRING، plain) آرگومانها:
- filepath: مسیر فایل خروجی. اگر %p در نام فایل مشخص شود، به PID مربوط به JVM بسط مییابد. (FILE، بدون مقدار پیشفرض)
- Thread.print [گزینهها]
- چاپ تمام رشتههای پلتفرم و رشتههای مجازی متصلشده، به همراه ردگیریهای پشته. دستور Thread.dump_to_file تمام رشتهها را در یک فایل چاپ خواهد کرد.
- -e: (اختیاری) چاپ اطلاعات گسترشیافتهٔ رشته (BOOLEAN، false)
- -l: (اختیاری) قفلهای java.util.concurrent را چاپ میکند (BOOLEAN، false)
- Thread.vthread_scheduler
- چاپ زمانبند رشتههای مجازی، و زمانبندهای وظایف تاخیردار که از رشتههای مجازی انجامدهنده عملیات زماندار پشتیبانی میکنند.
- Thread.vthread_pollers
- چاپ وارسیکنندههای I/O که از رشتههای مجازی در حال انجام عملیات مسدودکننده ورودی/خروجی شبکه پشتیبانی میکنند.
- VM.cds [آرگومانها]
- تخلیهٔ یک بایگانی اشتراکی ایستا یا پویا که شامل تمام کلاسهای بارگذاریشدهٔ فعلی است.
- subcmd: باید static_dump یا dynamic_dump باشد (STRING، بدون مقدار پیشفرض)
- filename: (اختیاری) نام بایگانی اشتراکی که باید تخلیه شود. اگر %p در نام فایل مشخص شود، به PID مربوط به JVM بسط مییابد. (FILE، "java_pid%p_<subcmd>.jsa") اگر dynamic_dump مشخص شده باشد، JVM هدف باید با گزینهٔ JVM به نام -XX:+RecordDynamicDumpInfo راهاندازی شده باشد.
- VM.class_hierarchy [گزینهها] [آرگومانها]
- چاپ فهرستی از تمام کلاسهای بارگذاریشده، با فاصلهگذاری برای نمایش سلسلهمراتب کلاسها. پس از نام هر کلاس، ClassLoaderData* مربوط به ClassLoader آن میآید، یا اگر توسط بارگذار کلاس راهانداز (bootstrap class loader) بارگذاری شده باشد، "null" درج میشود.
- -i: (اختیاری) رابطهای به ارث برده شده باید چاپ شوند. (BOOLEAN، false)
- -s: (اختیاری) اگر یک classname مشخص شده باشد، علاوه بر ابرکلاسهای آن، زیرکلاسهایش نیز چاپ شوند. بدون این گزینه، تنها ابرکلاسها چاپ خواهند شد. (BOOLEAN، false) آرگومانها:
- classname: (اختیاری) نام کلاسی که سلسلهمراتب آن باید چاپ شود. در صورت عدم تعیین، سلسلهمراتب تمام کلاسها چاپ میشود. (STRING، بدون مقدار پیشفرض)
- VM.classes [گزینهها]
- چاپ تمام کلاسهای بارگذاریشده
- •
- -verbose: (اختیاری) تخلیهٔ محتوای تفصیلی یک کلاس جاوا. برخی کلاسها با پرچمها علامتگذاری شدهاند: F = دارای یک متد finalize غیرخالی است یا آن را به ارث میبرد، f = دارای متد final است، W = متدها بازنویسی شدهاند، C = با یادداشت @Contended نشانهگذاری شده است، R = بازتعریف شده است، S = کلاس اشتراکی است (BOOLEAN، false)
- VM.classloader_stats
- چاپ آمار مربوط به تمام ClassLoaderها.
- VM.classloaders [گزینهها]
- سلسلهمراتب classloader را چاپ میکند.
- show-classes: (اختیاری) چاپ کلاسهای بارگذاریشده. (BOOLEAN، false)
- verbose: (اختیاری) چاپ اطلاعات تفصیلی. (BOOLEAN، false)
- fold: (اختیاری) بارگذارهایی با نام و کلاس یکسان را به صورت یکی نمایش میدهد. (BOOLEAN، true)
- VM.command_line
- چاپ خط فرمانی که برای راهاندازی این نمونهٔ VM استفاده شده است.
- VM.dynlibs
- چاپ کتابخانههای پویای بارگذاریشده.
- VM.events [گزینهها]
- چاپ گزارشهای رویداد VM
- log: (اختیاری) نام گزارشی که باید چاپ شود. در صورت عدم تعیین، تمام گزارشها چاپ میشوند. (STRING، بدون مقدار پیشفرض)
- max: (اختیاری) حداکثر تعداد رویدادهایی که باید چاپ شوند (جدیدترینها در ابتدا). در صورت عدم تعیین یا صفر بودن، تمام رویدادها چاپ میشوند. (INT، 0)
- VM.flags [گزینهها]
- چاپ گزینههای پرچم VM و مقادیر فعلی آنها.
- •
- -all: (اختیاری) تمام پرچمهای پشتیبانیشده توسط VM را چاپ میکند (BOOLEAN، false).
- VM.info
- چاپ اطلاعات دربارهٔ محیط و وضعیت JVM.
- output: (اختیاری) نام یا شناسه عددی (#) خروجی برای پیکربندی. (STRING، بدون مقدار پیشفرض)
- output_options: (اختیاری) گزینههای مربوط به خروجی. (STRING، بدون مقدار پیشفرض)
- what: (اختیاری) پیکربندی اینکه چه برچسبهایی لاگ شوند. (STRING، بدون مقدار پیشفرض)
- decorators: (اختیاری) پیکربندی اینکه از کدام تزیینکنندهها استفاده شود. برای حذف همه از 'none' یا یک مقدار خالی استفاده کنید. (STRING، بدون مقدار پیشفرض)
- disable: (اختیاری) غیرفعال کردن تمام لاگگیریها و پاکسازی پیکربندی لاگ. (BOOLEAN، بدون مقدار پیشفرض)
- list: (اختیاری) فهرست کردن پیکربندی کنونی لاگ. (BOOLEAN، بدون مقدار پیشفرض)
- rotate: (اختیاری) چرخش تمام لاگها. (BOOLEAN، بدون مقدار پیشفرض)
- VM.metaspace [گزینهها]
- چاپ آمار metaspace.
- basic: (اختیاری) چاپ خلاصهای پایهای (نیازی به safepoint ندارد). (BOOLEAN، false)
- show-loaders: (اختیاری) نمایش میزان استفاده بر پایه بارگذار کلاس (class loader). (BOOLEAN، false)
- show-classes: (اختیاری) در صورت تعیین show-loaders، کلاسهای بارگذاریشده برای هر بارگذار را نشان میدهد. (BOOLEAN، false)
- by-chunktype: (اختیاری) تفکیک آمار بر پایه نوع chunk. (BOOLEAN، false)
- by-spacetype: (اختیاری) تفکیک آمار بر پایه نوع بارگذار. (BOOLEAN، false)
- vslist: (اختیاری) نمایش جزئیات درباره فضای مجازی (virtual space) زیرین. (BOOLEAN، false)
- chunkfreelist: (اختیاری) نمایش جزئیات درباره فهرستهای آزاد chunk سراسری (ChunkManager). (BOOLEAN، false)
- scale: (اختیاری) مقیاسی که میزان مصرف حافظه بر پایه آن گزارش میشود. مقادیر معتبر عبارتند از: 1، KB، MB یا GB (مقیاس ثابت) یا "dynamic" برای مقیاسی که بهطور پویا انتخاب میشود. (STRING، dynamic)
- VM.native_memory [گزینهها]
- چاپ میزان مصرف حافظه محلی (native memory).
- summary: (اختیاری) از زمان اجرا (runtime) درخواست میکند که خلاصه وضعیت حافظه کنونی را گزارش کند، که شامل کل حافظه رزروشده و تخصیصیافته (committed)، همراه با خلاصه مصرف حافظه توسط هر زیرسیستم است. (BOOLEAN، false)
- detail: (اختیاری) از زمان اجرا درخواست میکند که تخصیصهای حافظه >= 1K را به ازای هر نقطه فراخوانی (callsite) گزارش کند. (BOOLEAN، false)
- baseline: (اختیاری) از زمان اجرا درخواست میکند که مصرف کنونی حافظه را به عنوان خط مبنا (baseline) ثبت کند، تا بعداً بتوان با آن مقایسه انجام داد. (BOOLEAN، false)
- summary.diff: (اختیاری) از زمان اجرا درخواست میکند که مقایسه خلاصه حافظه نسبت به خط مبنای پیشین را گزارش کند. (BOOLEAN، false)
- detail.diff: (اختیاری) از زمان اجرا درخواست میکند که مقایسه جزئیات حافظه نسبت به خط مبنای پیشین را گزارش کند، که فعالیتهای تخصیص حافظه در نقاط فراخوانی مختلف را نشان میدهد. (BOOLEAN، false)
- statistics: (اختیاری) چاپ آمارهای ردیاب (tracker) به منظور تنظیم و بهینهسازی. (BOOLEAN، false)
- scale: (اختیاری) مقیاس نمایش مصرف حافظه، KB، MB یا GB (STRING، KB)
- VM.set_flag [آرگومانها]
- تنظیم گزینه فلگ ماشین مجازی با استفاده از مقدار ارائهشده.
- flag name: نام فلگی که میخواهید تنظیم کنید (STRING، بدون مقدار پیشفرض)
- string value: (اختیاری) مقداری که میخواهید تنظیم کنید (STRING، بدون مقدار پیشفرض)
- VM.stringtable [گزینهها]
- تخلیه جدول رشتهها (string table).
- •
- -verbose: (اختیاری) تخلیه محتوای هر رشته در جدول (BOOLEAN، false)
- VM.symboltable [گزینهها]
- تخلیه جدول نمادها (symbol table).
- •
- -verbose: (اختیاری) تخلیه محتوای هر نماد در جدول (BOOLEAN، false)
- VM.system_properties
- چاپ مشخصههای سیستم (system properties).
- VM.systemdictionary
- چاپ آمارهای مربوط به اندازههای جدول درهمسازی دیکشنری و طول باکتها (bucket length).
- •
- verbose: (اختیاری) تخلیه محتوای هر مدخل دیکشنری برای تمام بارگذارهای کلاس (BOOLEAN، false).
- VM.uptime [گزینهها]
- چاپ مدت زمان فعال بودن ماشین مجازی (uptime).
- VM.version
- اطلاعات نگارش JVM را چاپ میکند.
| 2026 | JDK 26.0.2.1 |