| PERF-KVM(1) | perf Manual | PERF-KVM(1) |
نام (NAME)
perf-kvm - ابزاری برای ردیابی و سنجش سیستمعامل مهمان kvm
خلاصه دستور (SYNOPSIS)
perf kvm [--host] [--guest] [--guestmount=<path>
[--guestkallsyms=<path> --guestmodules=<path> | --guestvmlinux=<path>]]
{top|record|report|diff|buildid-list} [<options>]
perf kvm [--host] [--guest] [--guestkallsyms=<path> --guestmodules=<path>
| --guestvmlinux=<path>] {top|record|report|diff|buildid-list|stat} [<options>]
'perf kvm stat [record|report|live] [<options>]
توضیحات (DESCRIPTION)
چندین حالت مختلف برای دستور perf kvm وجود دارد:
دستور 'perf kvm [options] top <command>' برای تولید و نمایش بیدرنگ نمایهٔ شمارندههای کارایی سیستمعامل مهمان برای یک بار کاری دلخواه.
دستور 'perf kvm record <command>' برای ضبط نمایهٔ شمارندههای کارایی
یک بار کاری دلخواه و ذخیرهٔ آن در یک فایل دادهٔ perf. رفتار پیشفرض
دستور perf kvm بهصورت --guest تعیین شده است؛ بنابراین اگر هیچکدام از گزینههای
--host یا --guest داده نشوند، نام فایل دادهٔ perf برابر با perf.data.guest خواهد بود.
اگر --host داده شود، نام فایل داده perf.data.kvm خواهد بود. اگر میخواهید
دادهها در perf.data.host ذخیره شوند، لطفاً --host --no-guest را مشخص کنید.
این رفتارها در زیر نشان داده شدهاند:
Default('') -> perf.data.guest
--host -> perf.data.kvm
--guest -> perf.data.guest
--host --guest -> perf.data.kvm
--host --no-guest -> perf.data.host
دستور 'perf kvm report' برای نمایش اطلاعات نمایهٔ شمارندههای کارایی ضبطشده از طریق perf kvm record.
دستور 'perf kvm diff' برای نمایش تفاوت کارایی بین دو فایل perf.data ضبطشده توسط perf record.
دستور 'perf kvm buildid-list' برای نمایش buildidهای پیداشده در یک فایل دادهٔ perf، تا سایر ابزارها بتوانند بستههایی با جدول نمادهای منطبق را برای استفاده توسط perf report دریافت کنند. از آنجا که buildid از مسیر /sys/kernel/notes در سیستمعامل خوانده میشود، اگر میخواهید buildid را برای مهمان فهرست کنید، لطفاً مطمئن شوید که فایل دادهٔ perf شما با گزینهٔ --guestmount در perf kvm record ضبط شده باشد.
دستور 'perf kvm stat <command>' برای اجرای یک دستور و جمعآوری آمار شمارندههای کارایی. بهویژه، دستور 'perf kvm stat record/report' یک تحلیل آماری از رویدادهای KVM تولید میکند. در حال حاضر، رویدادهای vmexit، mmio (فقط x86) و ioport (فقط x86) پشتیبانی میشوند. دستور 'perf kvm stat record <command>' رویدادهای kvm و رویدادهای میان شروع و پایان <command> را ضبط میکند. همچنین این دستور فایلی تولید میکند که حاوی نتایج ردیابی رویدادهای kvm است.
دستور 'perf kvm stat report' دادههای آماری را گزارش میدهد که شامل sampleهای رویداد رسیدگیشده، percent_sample، time، percent_time، max_t، min_t و mean_t است.
دستور 'perf kvm stat live' دادههای آماری را در حالت زنده گزارش میدهد (مشابه record + report اما با بهروزرسانی زندهٔ دادههای آماری در یک نرخ نمایش مشخص).
-i, --input=<path>
نام فایل
ورودی برای
زیرفرمانهای
report، diff و buildid-list.
-o, --output=<path>
نام فایل
خروجی برای
زیرفرمان
record. با report کار
نمیکند،
هنگام
استفاده از
report کافی است
خروجی را به
یک فایل
هدایت
کنید.
--host
جمعآوری
پروفایل
کارایی سمت
میزبان (host).
--guest
جمعآوری
پروفایل
کارایی سمت
مهمان (guest).
--guestmount=<path>
دایرکتوری
نقطهٔ
اتصال
سیستمفایل
ریشهٔ
سیستمعامل
مهمان.
کاربران
دایرکتوریهای
ریشهٔ
سیستمعامل
مهمان را از
طریق یک روش
دسترسی به
سیستمفایل
مشخص،
معمولاً sshfs،
در <path> متصل
میکنند.
برای
نمونه،
راهاندازی
۲
سیستمعامل
مهمان که pid
یکی 8888 و
دیگری 9999 است:
$ mkdir ~/guestmount $ cd ~/guestmount $ sshfs -o allow_other,direct_io -p 5551 localhost:/ 8888/ $ sshfs -o allow_other,direct_io -p 5552 localhost:/ 9999/ $ perf kvm --host --guest --guestmount=~/guestmount top
--guestkallsyms=<path>
رونوشت
فایل /proc/kallsyms
سیستمعامل
مهمان.
دستور perf آن
را برای
دریافت
نمادهای
هستهٔ
مهمان
میخواند.
کاربران آن
را از
سیستمعامل
مهمان کپی
میکنند.
--guestmodules=<path>
رونوشت
فایل /proc/modules
سیستمعامل
مهمان.
دستور perf آن
را برای
دریافت
اطلاعات
ماژولهای
هستهٔ
مهمان
میخواند.
کاربران آن
را از
سیستمعامل
مهمان کپی
میکنند.
--guestvmlinux=<path>
فایل vmlinux
هستهٔ
سیستمعامل
مهمان.
--guest-code
مشخص
میکند که
کد مهمان در
فرایند
ناظر (hypervisor) قابل
یافتن است،
که در
برنامههای
آزمایشی KVM یک
حالت رایج
است.
--stdio
استفاده
از رابط stdio.
-v, --verbose
توضیحات
بیشتر
(نمایش
خطاهای باز
کردن
شمارنده و
غیره).
گزینههای گزارش آماری (STAT REPORT OPTIONS)
--vcpu=<value>
تحلیل
رویدادهایی
که روی این vcpu
رخ میدهند.
(پیشفرض:
تمام vcpuها)
--event=<value>
رویدادی
که باید
تحلیل شود.
مقادیر
ممکن: vmexit، mmio
(فقط در x86)، ioport
(فقط در x86).
(پیشفرض: vmexit)
-k, --key=<value>
کلید
مرتبسازی.
مقادیر
ممکن: sample
(پیشفرض،
مرتبسازی
بر اساس
تعداد
نمونهها)،
percent_sample
(مرتبسازی
بر اساس
درصد
نمونه)، time
(مرتبسازی
بر اساس
میانگین
زمان)، precent_time
(مرتبسازی
بر اساس
درصد زمان)،
max_t
(مرتبسازی
بر اساس
بیشینهٔ
زمان)، min_t
(مرتبسازی
بر اساس
کمینهٔ
زمان)، mean_t
(مرتبسازی
بر اساس
میانگین
زمان).
-p, --pid=
تحلیل
رویدادها
فقط برای
شناسه(های)
فرایند
دادهشده
(فهرست
جداشده با
کاما).
-d, --display
زمان بین
بهروزرسانیهای
نمایش بر
حسب ثانیه.
-m, --mmap-pages=
تعداد
صفحات داده mmap
(باید توانی
از دو باشد)
یا تعیین
اندازه بر
حسب بایت
همراه با
نویسه یکای
پیوستشده -
B/K/M/G. این
اندازه به
نزدیکترین
مقدار صفحه
که توانی از
دو باشد به
بالا گرد
میشود.
-a, --all-cpus
جمعآوری
در سطح
سراسر
سیستم از
تمام CPUها.
-p, --pid=
تحلیل
رویدادها
تنها برای
شناسه(های)
فرایند
دادهشده
(فهرست
جداشده با
ویرگول).
--vcpu=<value>
تحلیل
رویدادهایی
که روی این vcpu
رخ میدهند.
(پیشفرض:
تمام vcpuها)
--event=<value>
رویدادی
که باید
تحلیل شود.
مقادیر
ممکن: vmexit، mmio
(فقط x86)، ioport (فقط x86).
(پیشفرض: vmexit)
-k, --key=<value>
کلید
مرتبسازی.
مقادیر
ممکن: sample
(پیشفرض،
مرتبسازی
بر اساس
تعداد
نمونهها)، time
(مرتبسازی
بر اساس
میانگین
زمان).
--duration=<value>
نمایش
رویدادهایی
به جز HLT (فقط x86)
یا حالت Wait
(فقط s390) که بیش
از duration
میکروثانیه
طول
میکشند.
--proc-map-timeout
هنگام
پردازش
ریسههای
از پیش
موجود در
/proc/XXX/mmap، ممکن
است زمان
زیادی صرف
شود، زیرا
ممکن است
فایل بسیار
حجیم باشد.
در چنین
مواردی به
یک وقفه
زمانی (timeout)
نیاز است.
این گزینه
حد وقفه
زمانی را
تنظیم
میکند.
مقدار
پیشفرض
۵۰۰
میلیثانیه
(500 ms) است.
همچنین ببینید (SEE ALSO)
perf-top(1), perf-record(1), perf-report(1), perf-diff(1), perf-buildid-list(1), perf-stat(1)
| 09/04/2026 | perf |