READPROFILE(8) System Administration READPROFILE(8)

readprofile - خواندن اطلاعات پروفایل‌بندی عملکرد هسته لینوکس

readprofile [options]

این صفحهٔ راهنما نسخهٔ 2.0 این برنامه را مستند می‌کند.

دستور readprofile از اطلاعات /proc/profile برای چاپ داده‌های اسکی (ascii) در خروجی استاندارد استفاده می‌کند. خروجی در سه ستون سازمان‌دهی شده است: ستون نخست تعداد تیک‌های ساعت (clock ticks)، ستون دوم نام تابع C در هسته که این تعداد تیک در آن رخ داده است، و ستون سوم بار کاری نرمال‌شدهٔ رویه ('load') است که به صورت نسبت میان تعداد تیک‌ها و طول رویه محاسبه می‌شود. خروجی با فاصله‌های خالی پر شده است تا خوانایی آن آسان‌تر شود.

این ابزار یک ابزار تشخیصی است و برای استفاده در محیط‌های حساس از نظر امنیتی (مانند سناریوهای ارتقای دسترسی شامل setuid، setgid، sudo یا موارد مشابه) طراحی یا در نظر گرفته نشده است. این ابزار بدون هیچ‌گونه مجوز ویژه‌ای نصب می‌شود.

-a, --all

چاپ تمام نمادها در mapfile. به‌طور پیش‌فرض رویه‌های دارای تیک‌های گزارش‌شده چاپ نمی‌شوند.

-b, --histbin

چاپ شمارش‌های مجزای سطل‌های هیستوگرام (histogram-bin).

-i, --info

اطلاعات. این گزینه باعث می‌شود readprofile فقط گام پروفایل‌بندی استفاده‌شده توسط هسته را چاپ کند. گام پروفایل‌بندی همان تفکیک‌پذیری (resolution) بافر پروفایل‌بندی است و در طول پیکربندی هسته (از طریق make config) یا در خط فرمان هسته تعیین می‌شود. اگر سوئیچ -t (مختصر) همراه با -i استفاده شود، فقط عدد ده‌دهی چاپ می‌شود.

-m, --mapfile mapfile

مشخص کردن یک mapfile، که به‌طور پیش‌فرض /boot/System.map است. در صورتی که هسته فعلی شما آخرین هسته‌ای که کامپایل کرده‌اید نیست، یا اگر System.map را در جای دیگری نگه‌داری می‌کنید، باید فایل map را در خط فرمان مشخص کنید. اگر نام فایل map به .gz ختم شود، به‌صورت خودکار و در لحظه از حالت فشرده خارج می‌شود.

-n, --no-auto

غیرفعال کردن تشخیص خودکار ترتیب بایت‌ها (byte order).

-M, --multiplier multiplier

در برخی معماری‌ها امکان تغییر فرکانسی که هسته وقفه‌های پروفایل‌بندی را به هر پردازنده ارسال می‌کند وجود دارد. این گزینه به شما امکان می‌دهد فرکانس را به عنوان ضریبی از فرکانس ساعت سیستم، HZ، تنظیم کنید. لینوکس 2.6.16 پشتیبانی از ضریب (multiplier) را برای بیشتر سیستم‌ها متوقف کرد. این گزینه همچنین بافر پروفایل‌بندی را بازنشانی می‌کند و نیازمند دسترسی‌های کاربر ارشد (superuser) است.

-p, --profile pro-file

مشخص کردن یک بافر پروفایل‌بندی متفاوت، که به‌طور پیش‌فرض /proc/profile است. استفاده از یک pro-file متفاوت زمانی مفید است که بخواهید در یک زمان مشخص وضعیت پروفایل‌بندی هسته را «منجمد» ('freeze') کرده و بعداً آن را بخوانید. فایل /proc/profile را می‌توان با استفاده از cat(1) یا cp(1) کپی کرد. دیگر هیچ پشتیبانی از بافرهای پروفایل فشرده وجود ندارد (بر خلاف readprofile-1.1)، زیرا برنامه باید اندازه بافر را از قبل بداند.

-r, --reset

بازنشانی بافر پروفایل‌بندی. این کار فقط توسط کاربر ریشه (root) قابل اجرا است، زیرا /proc/profile برای همه قابل خواندن است اما فقط توسط کاربر ارشد قابل نوشتن است.

-s, --counters

چاپ شمارنده‌های مجزا درون توابع.

-v, --verbose

حالت پرگو (Verbose). خروجی در چهار ستون سازمان‌دهی شده و با فاصله‌های خالی پر می‌شود. ستون نخست نشانی RAM تابع هسته، ستون دوم نام تابع، ستون سوم تعداد تیک‌های ساعت و ستون آخر بار کاری نرمال‌شده است.

-h, --help

نمایش متن راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

/proc/profile

یک تصویر لحظه‌ای باینری (binary snapshot) از بافر پروفایل‌بندی.

/usr/src/linux/System.map

جدول نمادها (symbol table) برای هسته.

/usr/src/linux/*

برنامه‌ای که در حال پروفایل‌بندی است :- )

دستور readprofile تنها با هستهٔ 1.3.x یا جدیدتر کار می‌کند، زیرا /proc/profile در انتقال از نسخهٔ 1.2 به 1.3 تغییر کرد.

این برنامه فقط با هسته‌های ELF کار می‌کند. ایجاد تغییر برای هسته‌های a.out ساده است و به عنوان تمرین به کاربر a.out واگذار شده است.

برای فعال‌سازی پروفایل‌بندی، هسته باید راه‌اندازی مجدد (reboot) شود، زیرا هیچ ماژول پروفایل‌بندی موجود نیست و ساختن آن نیز آسان نخواهد بود. برای فعال‌سازی پروفایل‌بندی، می‌توانید profile=2 (یا عددی دیگر) را در خط فرمان هسته مشخص کنید. عددی که مشخص می‌کنید به عنوان توان پایه ۲ برای گام پروفایل‌بندی استفاده می‌شود.

هنگامی که وقفه‌ها غیرفعال (inhibited) باشند، پروفایل‌بندی غیرفعال می‌شود. این بدان معناست که هنگام فعال‌سازی مجدد وقفه‌ها، تیک‌های پروفایل‌بندی زیادی رخ می‌دهند. مراقب اطلاعات گمراه‌کننده باشید.

مرور بافر پروفایل‌بندی با مرتب‌سازی بر اساس تیک‌های ساعت:

readprofile | sort -nr | less

چاپ ۲۰ رویه با بیشترین بار کاری:

readprofile | sort -nr +2 | head -20

چاپ فقط پروفایل سیستم‌فایل:

readprofile | grep _ext2

مشاهده تمام اطلاعات هسته به همراه نشانی‌های RAM:

readprofile -av | less

مرور یک بافر پروفایل «منجمدشده» برای هسته‌ای غیر از هستهٔ فعلی:

readprofile -p ~/profile.freeze -m /zImage.map.gz

درخواست پروفایل‌بندی در 2kHz به ازای هر پردازنده، و بازنشانی بافر پروفایل‌بندی:

readprofile -M 20

برای گزارش باگ‌ها، از سامانه پیگیری مشکلات https://github.com/util-linux/util-linux/issues.

دستور readprofile بخشی از بسته util-linux است که می‌تواند از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux. دریافت شود.

2026-09-02 util-linux 2.42.3