| 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 درخواست دستور تشخیصی را به تمام فرایندهای جاوایی که نام کلاس اصلی مشخصشده را دارند ارسال میکند.
- command
- مقدار command باید یک دستور معتبر jcmd برای JVM انتخابشده باشد. فهرست دستورهای موجود برای jcmd با اجرای دستور help (jcmd pid help) به دست میآید که در آن pid شناسه فرایند برای فرایند جاوای در حال اجرا است.
- Perfcounter.print
- شمارندههای کارایی ارائهشده توسط فرایند جاوای مشخصشده را چاپ میکند.
- -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 به عنوان شناسه فرایند، درخواست دستور تشخیصی را به تمام فرایندهای جاوای در دسترس ارسال نمایید.
دستورهای 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).IP • 2 -s: (اختیاری) حداقل اندازه حافظه (MEMORY SIZE, 0)
- Compiler.perfmap [آرگومانها] (فقط لینوکس)
- نوشتن فایل مپ (map) برای ابزار perf در لینوکس.
- •
- filename: (اختیاری) نام فایل مپ. اگر %p در نام فایل مشخص شده باشد، به PID مربوط به JVM بسط مییابد. (FILE, "/tmp/perf-%p.map")
- Compiler.queue
- متدهای در صف انتظار برای کامپایل را چاپ میکند.
- GC.class_histogram [گزینهها]
- آماری درباره میزان مصرف heap جاوا ارائه میدهد.
- -all: (اختیاری) تمام اشیاء، از جمله اشیاء غیرقابلدسترس را بررسی میکند (BOOLEAN, false)
- -parallel: (اختیاری) تعداد رشتههای موازی مورد استفاده برای بازرسی heap. مقدار 0 (پیشفرض) به این معناست که تعیین تعداد رشتهها به عهده VM گذاشته شود. مقدار 1 به معنای استفاده از یک رشته است (غیرفعال کردن موازیسازی). برای هر مقدار دیگر، VM تلاش میکند از تعداد رشتههای مشخصشده استفاده کند، اما ممکن است از تعداد کمتری استفاده کند. (INT, 0)
- GC.finalizer_info
- اطلاعاتی درباره صف finalization جاوا ارائه میدهد.
- GC.heap_dump [گزینهها] filename
- یک dump با فرمت HPROF از heap جاوا تولید میکند.
- -all: (اختیاری) تخلیه (dump) تمام اشیاء، از جمله اشیاء غیرقابلدسترس (BOOLEAN, false)
- -gz: (اختیاری) در صورت تعیین، heap dump با فرمت gzip و با سطح فشردهسازی مشخصشده نوشته میشود. مقدار 1 (پیشنهادی) سریعترین، و 9 قویترین فشردهسازی است. (INT, 1)
- -overwrite: (اختیاری) در صورت تعیین، در صورتی که فایل dump از قبل وجود داشته باشد، بازنویسی میشود (BOOLEAN, false)
- -parallel: (اختیاری) تعداد رشتههای موازی مورد استفاده برای heap dump. ماشین مجازی (VM) تلاش میکند از تعداد رشتههای مشخصشده استفاده کند، اما ممکن است از تعداد کمتری استفاده کند. (INT, 1) آرگومانها:
- filename: نام فایل dump. اگر %p در نام فایل مشخص شده باشد، به PID مربوط به JVM بسط مییابد. (FILE, بدون مقدار پیشفرض)
- GC.heap_info
- اطلاعات عمومی درباره heap جاوا ارائه میدهد.
- GC.run
- متد java.lang.System.gc() را فراخوانی میکند.
- GC.run_finalization
- متد java.lang.System.runFinalization() را فراخوانی میکند.
- JFR.check [گزینهها]
- نمایش اطلاعات درباره یک flight recording در حال اجرا
- name: (اختیاری) نام flight recording. (STRING, بدون مقدار پیشفرض)
- verbose: (اختیاری) پرچمی برای چاپ تنظیمات رویداد مربوط به ضبط (BOOLEAN, false)
- JFR.configure [گزینهها]
- تنظیم پارامترها برای یک flight recording
- dumppath: (اختیاری) مسیر مکانی که در صورت بروز خطای بحرانی در VM (مانند کرش سیستم)، فایل ضبط در آنجا نوشته میشود. (STRING, مکان پیشفرض، دایرکتوری جاری است)
- globalbuffercount: (اختیاری) تعداد بافرهای سراسری (global buffers). این گزینه قدیمی (legacy) است: برای تغییر تعداد بافرهای سراسری، پارامتر memorysize را تغییر دهید. این مقدار پس از مقداردهی اولیه JFR قابل تغییر نیست. (STRING, پیشفرض توسط مقدار memorysize تعیین میشود)
- globalbuffersize: (اختیاری) اندازه بافرهای سراسری به بایت. این گزینه قدیمی (legacy) است: برای تغییر اندازه بافرهای سراسری، پارامتر memorysize را تغییر دهید. این مقدار پس از مقداردهی اولیه JFR قابل تغییر نیست. (STRING, پیشفرض توسط مقدار memorysize تعیین میشود)
- maxchunksize: (اختیاری) حداکثر اندازه یک تکه داده (data 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: (اختیاری) عمق پشته برای ردگیریهای پشته (stack traces). تنظیم این مقدار به بیشتر از مقدار پیشفرض 64 ممکن است باعث افت کارایی شود. این مقدار پس از مقداردهی اولیه JFR قابل تغییر نیست. (LONG, 64)
- thread_buffer_size: (اختیاری) اندازه بافر محلی برای هر رشته به بایت، در صورتی که یکی از پسوندهای زیر استفاده نشده باشد: 'k' یا 'K' برای کیلوبایت، یا 'm' یا 'M' برای مگابایت. تغییر مقدار این پارامتر میتواند کارایی را کاهش دهد و توصیه نمیشود. این مقدار پس از مقداردهی اولیه JFR قابل تغییر نیست. (STRING, 8k)
- samplethreads: (اختیاری) پرچمی برای فعالسازی نمونهبرداری از رشتهها (thread sampling). (BOOLEAN, true)
- JFR.dump [گزینهها]
- نوشتن دادهها در یک فایل در حین اجرای flight recording
- •
- end: (اختیاری) مشخص کردن زمانی که دادههای ضبطشده تا آن زمان در فایل رونوشت (dump) گنجانده میشوند. قالب آن بهصورت زمان محلی مشخص میشود. (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 با برچسبهای زمانی (timestamps) موجود در اطلاعات ضبطشده در دادههای flight recording مطابقت دارند.
گزینه دیگر استفاده از یک زمان نسبی نسبت به زمان فعلی است که با یک عدد صحیح منفی به همراه "s"، "m" یا "h" مشخص میشود. برای مثال، "-12h"، "-15m" یا "-30s".
- filename: (اختیاری) نام فایلی که دادههای flight recording در آن تخلیه (dump) میشوند. اگر نام فایلی داده نشود، نام فایل از PID و تاریخ فعلی تولید میشود. نام فایل میتواند یک دایرکتوری نیز باشد که در این حالت، نام فایل از PID و تاریخ فعلی درون دایرکتوری مشخصشده تولید میشود. اگر %p و/یا %t در نام فایل مشخص شده باشد، به ترتیب به PID مربوط به JVM و برچسب زمانی فعلی بسط مییابد. (FILE، بدون مقدار پیشفرض)
- maxage: (اختیاری) بازه زمانی برای رونوشت گرفتن از دادههای flight recording در یک فایل. (INTEGER به همراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، بدون مقدار پیشفرض)
- maxsize: (اختیاری) حداکثر اندازه برای مقدار دادهای که از flight recording رونوشت گرفته میشود، به بایت در صورتی که هیچیک از پسوندهای زیر استفاده نشده باشد: 'm' یا 'M' برای مگابایت یا 'g' یا 'G' برای گیگابایت. (STRING، بدون مقدار پیشفرض)
- name: (اختیاری) نام ضبط. اگر نامی ارائه نشود، دادههای تمام ضبطها تخلیه میشوند. (STRING، بدون مقدار پیشفرض)
- path-to-gc-roots: (اختیاری) پرچمی برای ذخیره مسیر به ریشههای جمعآوری زباله (GC) در زمان تخلیه دادههای ضبط. اطلاعات مسیر برای یافتن نشتهای حافظه (memory leaks) مفید است، اما جمعآوری آن میتواند باعث مکث کوتاهمدت برنامه شود. این پرچم را فقط زمانی فعال کنید که مشکوک به وجود نشت حافظه در برنامه خود هستید. (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]
- نمایش دادههای رویداد در نماهای از پیشتعریفشده.
- maxage: (اختیاری) طول بازه زمانی تحت پوشش نما. (INT به همراه 's' برای ثانیه، 'm' برای دقیقه یا 'h' برای ساعت، مقدار پیشفرض 10m است)
- maxsize: (اختیاری) بیشترین اندازه تحت پوشش نما به بایت در صورتی که یکی از پسوندهای زیر استفاده نشود: 'm' یا 'M' برای مگابایت یا 'g' یا 'G' برای گیگابایت. (STRING، مقدار پیشفرض 32MB است)
- truncate: (اختیاری) بیشترین تعداد سطرها در یک سلول جدول. (INT، مقدار پیشفرض به نما بستگی دارد)
- verbose: (اختیاری) پرسمانی که نما را تشکیل میدهد نمایش میدهد. (BOOLEAN، مقدار پیشفرض false است)
- width: (اختیاری) عرض نما بر حسب نویسه. (INT، مقدار پیشفرض به نما بستگی دارد) آرگومانها:
- view: نام نما یا نوع رویداد برای نمایش. برای دیدن فهرست نماهای دردسترس از help JFR.view استفاده کنید. (STRING، بدون مقدار پیشفرض) پارامتر view میتواند نام یک نوع رویداد باشد. برای مشاهده فهرست از JFR.view types استفاده کنید. برای نمایش همه نماها، از JFR.view all-views استفاده کنید. برای نمایش همه رویدادها، از JFR.view all-events استفاده کنید.
- JVMTI.agent_load [آرگومانها]
- عامل محلی JVMTI را بارگذاری میکند.
- library path: مسیر مطلق عامل JVMTI برای بارگذاری. (STRING، بدون مقدار پیشفرض)
- agent option: (اختیاری) رشته گزینه برای ارسال به عامل. (STRING، بدون مقدار پیشفرض)
- JVMTI.data_dump
- به JVM جهت انجام یک درخواست data-dump برای JVMTI سیگنال میدهد.
- ManagementAgent.start [گزینهها]
- عامل مدیریت راه دور را شروع میکند.
- 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 [گزینهها] (تنها در لینوکس)
- نگاشت حاشیهنویسیشده حافظه فرایند را در یک فایل خروجی ذخیره میکند.
- -H: (اختیاری) قالب خوانا برای انسان (BOOLEAN، false)
- -F: (اختیاری) مسیر فایل. اگر %p در نام فایل مشخص شود، به PID مربوط به JVM بسط داده میشود. (FILE، "vm_memory_map_%p.txt")
- System.map [گزینهها] (تنها در لینوکس)
- یک نگاشت حاشیهنویسیشده از حافظه فرایند VM را چاپ میکند.
- •
- -H: (اختیاری) قالب خوانا برای انسان (BOOLEAN، false)
- System.native_heap_info (تنها در لینوکس)
- تلاش میکند اطلاعات مربوط به میزان مصرف هیپ بومی (native heap) را از طریق malloc_info(3) ارائه دهد. در صورت ناموفق بودن، عبارت "Error: " و دلیل آن را چاپ میکند.
- System.trim_native_heap (تنها در لینوکس)
- تلاش میکند با هرس کردن هیپ C (C-heap)، حافظه را آزاد کند.
- Thread.dump_to_file [گزینهها] filepath
- تخلیه رشتهها (threads)، به همراه ردپای پشته (stack traces)، در یک فایل با قالب متنی ساده یا JSON.
- -format: (اختیاری) قالب خروجی ("plain" یا "json") (STRING، plain) آرگومانها:
- filepath: مسیر فایل خروجی. اگر %p در نام فایل مشخص شده باشد، به PID مربوط به JVM بسط مییابد. (FILE، بدون مقدار پیشفرض)
- Thread.print [گزینهها]
- تمام رشتهها را همراه با رد پشته (stacktrace) چاپ میکند.
- -e: (اختیاری) چاپ اطلاعات گسترشیافتهٔ رشته (BOOLEAN، false)
- -l: (اختیاری) قفلهای java.util.concurrent را چاپ میکند (BOOLEAN، false)
- Thread.vthread_scheduler
- زمانبند رشتههای مجازی و زمانبندهای کارهای با تاخیر را که از رشتههای مجازی در حال انجام عملیات زمانبندیشده پشتیبانی میکنند، چاپ میکند.
- Thread.vthread_pollers
- وارسیکنندههای ورودی/خروجی (I/O pollers) را که از رشتههای مجازی در حال انجام عملیات مسدودکنندهٔ ورودی/خروجی شبکه پشتیبانی میکنند، چاپ میکند.
- VM.cds [آرگومانها]
- یک آرشیو اشتراکی ایستا یا پویا شامل تمام کلاسهای بارگذاریشدهٔ کنونی را ذخیره (dump) میکند.
- 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) بارگذاری شده باشد با "null" دنبال میشود.
- -i: (اختیاری) رابطهای (interfaces) به ارثرسیده چاپ شوند. (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 را چاپ میکند.
- VM.log [گزینهها]
- پیکربندی فعلی لاگ را فهرست میکند، یک خروجی لاگ را فعال/غیرفعال/پیکربندی میکند، یا تمام لاگها را میچرخاند (rotate میکند).
- output: (اختیاری) نام یا شناسه (#) خروجی برای پیکربندی. (STRING، بدون مقدار پیشفرض)
- output_options: (اختیاری) گزینههای مربوط به خروجی. (STRING، بدون مقدار پیشفرض)
- what: (اختیاری) برچسبهایی (tags) که باید لاگ شوند را پیکربندی میکند. (STRING، بدون مقدار پیشفرض ).IP • 2 decorators: (اختیاری) تعیین میکند از کدام دکوراتورها استفاده شود. برای حذف همه، از 'none' یا یک مقدار خالی استفاده کنید. (STRING، بدون مقدار پیشفرض)
- disable: (اختیاری) تمام ثبت وقایع (لاگگیری) را غیرفعال کرده و پیکربندی لاگ را پاک میکند. (BOOLEAN، بدون مقدار پیشفرض)
- list: (اختیاری) پیکربندی فعلی لاگ را فهرست میکند. (BOOLEAN، بدون مقدار پیشفرض)
- rotate: (اختیاری) تمام لاگها را چرخش میدهد (rotate). (BOOLEAN، بدون مقدار پیشفرض)
- VM.metaspace [options]
- آمارهای metaspace را چاپ میکند.
- basic: (اختیاری) خلاصهای پایه را چاپ میکند (نیازی به safepoint ندارد). (BOOLEAN، false)
- show-loaders: (اختیاری) میزان مصرف را بر اساس بارگذار کلاس نمایش میدهد. (BOOLEAN، false)
- show-classes: (اختیاری) در صورت تعیین show-loaders، کلاسهای بارگذاریشده را برای هر بارگذار نشان میدهد. (BOOLEAN، false)
- by-chunktype: (اختیاری) تفکیک آمار بر اساس نوع تکه (chunk type). (BOOLEAN، false)
- by-spacetype: (اختیاری) تفکیک آمار بر اساس نوع بارگذار. (BOOLEAN، false)
- vslist: (اختیاری) جزئیات مربوط به فضای مجازی زیرین (virtual space) را نمایش میدهد. (BOOLEAN، false)
- chunkfreelist: (اختیاری) جزئیات مربوط به فهرستهای آزاد تکه سراسری (ChunkManager) را نمایش میدهد. (BOOLEAN، false)
- scale: (اختیاری) مقیاس نمایش مصرف حافظه. مقادیر معتبر عبارتند از: 1، KB، MB یا GB (مقیاس ثابت) یا "dynamic" برای مقیاسی که به صورت پویا انتخاب میشود. (STRING، dynamic)
- VM.native_memory [options]
- میزان مصرف حافظه محلی (native memory) را چاپ میکند.
- summary: (اختیاری) از زماناجرا (runtime) درخواست میکند که خلاصه حافظه فعلی را گزارش کند، که شامل کل حافظه رزروشده و تخصیصیافته (committed)، به همراه خلاصه مصرف حافظه توسط هر زیرسیستم است. (BOOLEAN، false)
- detail: (اختیاری) از زماناجرا درخواست میکند تخصیصهای حافظه >= 1K را برای هر محل فراخوانی (callsite) گزارش دهد. (BOOLEAN، false)
- baseline: (اختیاری) از زماناجرا درخواست میکند مصرف حافظه فعلی را به عنوان خط مبنا ثبت کند تا بتوان بعداً با آن مقایسه کرد. (BOOLEAN، false)
- summary.diff: (اختیاری) از زماناجرا درخواست میکند گزارش مقایسه خلاصه حافظه در برابر خط مبنای قبلی را ارائه دهد. (BOOLEAN، false)
- detail.diff: (اختیاری) از زماناجرا درخواست میکند گزارش مقایسه تفصیلی حافظه در برابر خط مبنای قبلی را ارائه دهد، که فعالیتهای تخصیص حافظه را در محلهای مختلف فراخوانی نشان میدهد. (BOOLEAN، false)
- statistics: (اختیاری) آمارهای ردیاب (tracker) را به منظور بهینهسازی و تنظیم چاپ میکند. (BOOLEAN، false)
- scale: (اختیاری) مقیاس مصرف حافظه؛ KB، MB یا GB (STRING، KB)
- VM.set_flag [arguments]
- گزینه پرچم ماشین مجازی را با استفاده از مقدار ارائهشده تنظیم میکند.
- flag name: نام پرچمی که میخواهید تنظیم کنید (STRING، بدون مقدار پیشفرض)
- string value: (اختیاری) مقداری که میخواهید تنظیم کنید (STRING، بدون مقدار پیشفرض)
- VM.stringtable [options]
- جدول رشتهها (string table) را تخلیه (dump) میکند.
- •
- -verbose: (اختیاری) محتوای هر رشته در جدول را تخلیه میکند (BOOLEAN، false)
- VM.symboltable [options]
- جدول نمادها (symbol table) را تخلیه (dump) میکند.
- •
- -verbose: (اختیاری) محتوای هر نماد در جدول را تخلیه میکند (BOOLEAN، false)
- VM.system_properties
- ویژگیهای سیستم (system properties) را چاپ میکند.
- VM.systemdictionary
- آمارهای مربوط به اندازه جدول هش دیکشنری و طول باکتها (bucket length) را چاپ میکند.
- •
- verbose: (اختیاری) محتوای هر مدخل دیکشنری را برای تمام بارگذارهای کلاس تخلیه میکند (BOOLEAN، false).
- VM.uptime [options]
- مدت زمان فعال بودن (uptime) ماشین مجازی را چاپ میکند.
- •
- -date: (اختیاری) یک پیشوند شامل تاریخ فعلی اضافه میکند (BOOLEAN، false)
- VM.version
- اطلاعات نگارش JVM را چاپ میکند.
| 2026 | JDK 25.0.4.1 |