READPROFILE(8) إدارة النظام READPROFILE(8)

الاسم

readprofile - يقرأ معلومات تشكيلة النواة

موجز

readprofile [خيارات]

الإصدارة

توثق صفحة الدليل هذه الإصدارة 2.0 من البرنامج.

الوصف

يستخدم الأمر readprofile معلومات /proc/profile لطباعة بيانات ascii على المخرج القياسي. نُظم المخرج في ثلاثة أعمدة: الأول هو عدد تكتكات الساعة، والثاني هو اسم دالة C في النواة حيث حدثت تلك التكتكات العديدة، والثالث هو الحمل المُطبع للإجراء، ومحسوب كنسبة بين عدد التكتكات وطول الإجراء. مُلئ المخرج بفراغات لتسهيل القراءة.

This utility is a diagnostic tool and is not designed or intended for use in security-sensitive contexts (e.g., setuid, setgid, sudo, or similar privilege-elevation scenarios). It is installed without any special permissions.

الخيارات

-a، --all

اطبع كل الرموز في ملف الخارطة. مبدئيًا، لا تُطبع الإجراءات ذات التكتكات المُبلغ عنها.

-b، --histbin

اطبع أعداد سلال المدرج التكراري الفردية.

-i، --info

معلومات. يجعل هذا readprofile يطبع فقط خطوة التشكيلة المستخدمة من قبل النواة. خطوة التشكيلة هي دقة ذاكرة التشكيلة الوسيطة، وتُختار أثناء ضبط النواة (من خلال make config)، أو في سطر أوامر النواة. إذا استُخدم مفتاح -t (المقتضب) مع -i فسيُطبع الرقم العشري فقط.

-m، --mapfile mapfile

يحدد ملف خريطة (mapfile)، والذي يكون مبدئياً /boot/System.map. يجب عليك تحديد ملف الخريطة في سطر الأوامر إذا لم تكن نواتك الحالية هي الأخيرة التي ترجمتها، أو إذا كنت تحتفظ بـ System.map في مكان آخر. إذا انتهى اسم ملف الخريطة بـ ‎.gz‎، فإنه يُفك ضغطه تلقائياً.

-n, --no-auto

يعطل الاكتشاف الآلي لترتيب البايتات.

-M، --multiplier multiplier

في بعض البنيات، يمكن تغيير التردد الذي ترسل به النواة مقاطعات التشكيلة (profiling) إلى كل معالج. يتيح لك هذا الخيار ضبط التردد، كمضاعف لتردد ساعة النظام، HZ. أسقطت نواة لينكس 2.6.16 دعم المضاعف لمعظم الأنظمة. يعيد هذا الخيار أيضاً ضبط خبيئة التشكيلة، ويتطلب صلاحيات المستخدم الخارق.

-p، --profile pro-file

حدد خبيئة تشكيلة مختلفة، وهي مبدئياً /proc/profile. استخدام تشكيلة (profile) مختلفة مفيد إذا أردت 'تجميد' تشكيلة النواة في وقت ما وقراءتها لاحقاً. يمكن نسخ ملف /proc/profile باستخدام cat(1) أو cp(1). لم يعد هناك دعم لخبايأ التشكيلة المضغوطة، كما كان في readprofile-1.1، لأن البرنامج يحتاج لمعرفة حجم الخبيئة مسبقاً.

-r، --reset

Reset the profiling buffer. This can only be invoked by root, because /proc/profile is readable by everybody but writable only by the superuser.

-s, --counters

اطبع العدادات الفردية داخل الدوال.

-v، --verbose

مُطوّل. نُظم المخرج في أربعة أعمدة ومُلئ بالفراغات. العمود الأول هو عنوان RAM لدالة النواة، والثاني هو اسم الدالة، والثالث هو عدد تكتكات الساعة والأخير هو الحمل المُطبع.

-h، --help

اعرض نص المساعدة ثم اخرج.

-V، --version

اعرض الإصدار واخرج.

الملفات

/proc/profile

لقطة ثنائية لذاكرة التشكيلة الوسيطة.

/usr/src/linux/System.map

جدول الرموز للنواة.

/usr/src/linux/*

البرنامج الذي تُجرى تشكيلته :-)

العلل

readprofile يعمل فقط مع النواة 1.3.x أو الأحدث، لأن /proc/profile تغير في الخطوة من 1.2 إلى 1.3.

يعمل هذا البرنامج فقط مع نويات ELF. التغيير لنويات a.out بسيط، وتُرك كتمرين لمستخدم a.out.

لتمكين التشكيلة، يجب إعادة تشغيل النواة، لعدم توفر وحدة تشكيلة، ولن يكون بناؤها سهلاً. لتمكين التشكيلة، يمكنك تحديد profile=2 (أو رقماً آخر) في سطر أوامر النواة. الرقم الذي تحدده هو أس العدد اثنين المستخدم كخطوة للتشكيلة.

تُعطل التشكيلة عند تثبيط المقاطعات. وهذا يعني أن العديد من تكات التشكيلة تحدث عند إعادة تمكين المقاطعات. احذر من المعلومات المضللة.

مثال

تصفح خبيئة التشكيلة مرتبة حسب تكات الساعة:

   readprofile | sort -nr | less

اطبع أكثر 20 إجراءً حملاً:

   readprofile | sort -nr +2 | head -20

اطبع تشكيلة نظام الملفات فقط:

   readprofile | grep _ext2

انظر إلى جميع معلومات النواة، مع عناوين الذاكرة (RAM):

   readprofile -av | less

تصفح خبيئة تشكيلة 'مجمدة' لنواة غير الحالية:

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

اطلب التشكيلة بتردد 2 كيلو هرتز لكل معالج، وأعد ضبط خبيئة التشكيلة:

   readprofile -M 20

التبليغ عن الأخطاء

لتقارير العِلل، استخدم مُتتبع المشكلات https://github.com/util-linux/util-linux/issues.

التوفر

الأمر readprofile جزء من حزمة util-linux التي يمكن تنزيلها من أرشيف نواة لينكس https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1