| CPUPOWER-MONITOR(1) | cpupower Manual | CPUPOWER-MONITOR(1) |
نام (NAME)
cpupower-monitor - پایش و گزارش حالات بیداری و فرکانس پردازنده
خلاصه دستور (SYNOPSIS)
cpupower monitor -l
cpupower monitor [-c][-m
<mon1>,[<mon2>,...]] [-i seconds]
cpupower monitor [-c][-m
<mon1>,[<mon2>,...]] command
توضیحات (DESCRIPTION)
دستور cpupower-monitor توپولوژی، فرکانس و آمار وضعیتهای توان بیکاری (idle) پردازنده را گزارش میدهد. این ابزار یا دستور command را منشعب (fork) کرده و آمار را پس از پایان آن چاپ میکند، یا اینکه آمار را بهصورت دورهای نمایش میدهد.
دستور cpupower-monitor شمارندههای مستقلی را برای وضعیت خواب (sleep state) و فرکانس پردازنده پیادهسازی میکند. برخی از این آمار از اطلاعات هسته لینوکس دریافت میشوند و برخی مستقیماً از ثباتهای سختافزاری خوانده میشوند. از گزینه -l برای مشاهده نمای کلی پایشگرهای پشتیبانیشده در سیستم خود استفاده کنید.
گزینهها (OPTIONS)
-l
- نام پایشگر درون گیومه که میتواند به پارامتر -m داده شود.
- تعداد شمارندههای متفاوتی که پایشگر پشتیبانی میکند (درون براکت).
- مدت زمان به ثانیه که ممکن است شمارندهها به دلیل محدودیتهای پیادهسازی دچار سرریز (overflow) شوند.
- نام و توضیحات هر شمارنده و سطح پوشش سلسلهمراتب پردازنده برای آن (درون براکت):
- [T] -> رشته پردازشی (Thread)
- [C] -> هسته (Core)
- [P] -> بسته پردازنده یا سوکت (Processor Package / Socket)
- [M] -> شمارنده در سطح کل ماشین یا پلتفرم (Machine/Platform wide counter)
-m <mon1>,<mon2>,...
-i seconds
-c
command
توضیحات پایشگرها (MONITOR DESCRIPTIONS)
Idle_Stats
آمار زیرسیستم cpuidle هسته لینوکس را نمایش میدهد. مقادیر از مسیر /sys/devices/system/cpu/cpu*/cpuidle/state*/ خوانده میشوند. هسته این مقادیر را هر بار که پردازنده به یک وضعیت بیکاری وارد یا از آن خارج میشود، بهروزرسانی میکند. بنابراین زمانی که هستهها هنگام شروع یا پایان اندازهگیری برای مدتی در وضعیت بیکاری باشند، ممکن است مقداری عدم دقت وجود داشته باشد. در بدترین حالت ممکن است یک هسته در تمام طول مدت اندازهگیری در وضعیت بیکاری مانده باشد و زمان استفاده از وضعیت بیکاری گزارششده توسط هسته بهروزرسانی نشده باشد. در این حالت، میزان ماندگاری در وضعیت ۰ درصد نمایش داده میشود در حالی که در واقع ۱۰۰ درصد بوده است.
Mperf
نام این پایشگر از ثباتهای MSR با نامهای aperf/mperf (میانگین و بیشینه) گرفته شده که در پردازندههای جدید X86 موجود هستند. این پایشگر میانگین فرکانس (شامل فرکانسهای بوست) را نمایش میدهد. از آنجا که در تمامی سختافزارهای جدید، تیک زدن تایمر mperf در هر وضعیت بیکاری متوقف میشود، برای نمایش زمانهای C0 (پردازنده فعال است) و Cx (پردازنده در یکی از وضعیتهای خواب است) نیز استفاده میشود. این شمارندهها محدودیتهای عدم دقت پایشگر "Idle_Stats" را ندارند. این ویژگی ممکن است در هستههای لینوکس نسخه 2.6.20 تا 2.6.29 عملکرد ضعیفی داشته باشد، زیرا درایور فرکانس هسته با نام acpi-cpufreq در آن هستهها ثباتهای aperf/mperf را بهصورت دورهای پاک میکرد.
Nehalem SandyBridge HaswellExtended
شمارندههای وضعیت خواب هسته و بسته پردازنده اینتل. اگر رشته همتای یک رشته پردازشی (در پردازندههای مجهز به فناوری چندرشتگی یا هایپرتریدینگ) فعال و در حال استفاده باشد، ممکن است نتواند وارد وضعیتهای عمیقتر خواب هسته شود. عمیقترین وضعیتهای خواب بسته پردازنده ممکن است در واقعیت بهصورت وضعیتهای خواب در سطح ماشین یا پلتفرم ظاهر شوند و تنها زمانی میتوان به آنها وارد شد که تمامی هستهها بیکار باشند. برای جزئیات بیشتر به دفترچههای راهنمای اینتل (که برخی از آنها در بخش مراجع ذکر شدهاند) مراجعه کنید. نامگذاری پایشگرها بر اساس خانواده پردازندهای است که قابلیتهای وضعیت خواب ابتدا در آن معرفی شدهاند و ممکن است دقیقاً با نام پردازنده سیستم شما همخوانی نداشته باشد. برای نمونه، پردازندههای IvyBridge دارای قابلیتهای وضعیت خوابی هستند که در خانواده پردازندههای Nehalem و SandyBridge معرفی شده بودند. از این رو، در یک پردازنده IvyBridge پایشگرهای وضعیت خواب Nehalem و SandyBridge نمایش داده خواهند شد. قابلیتهای اضافی وضعیت خواب بسته در HaswellExtended تنها در پردازندههای مشخصی از Haswell (خانواده 0x45) و احتمالاً پردازندههای آینده در دسترس هستند.
Fam_12h Fam_14h
شمارندههای وضعیت خواب پردازندههای لپتاپ و رومیزی AMD (خانوادههای 12h و 14h). دسترسی به ثباتها از طریق PCI صورت میگیرد و به همین دلیل حتی در صورتی که هستهها غیرفعال (offline) شده باشند، باز هم قابل خواندن هستند.
یک شمارنده ویژه به نام NBP1 (پل شمالی P1 یا North Bridge P1) وجود دارد. این شمارنده همواره مقدار ۰ یا ۱ برمیگرداند؛ بسته به اینکه آیا وضعیت توان پل شمالی P1 حداقل یک بار در طول زمان اندازهگیری فعال شده است یا خیر. امکان ورود به وضعیت NBP1 به مدیریت مصرف توان کارت گرافیک نیز وابسته است. بنابراین از این شمارنده میتوان برای بررسی اینکه آیا مدیریت توان درایور گرافیک طبق انتظار کار میکند یا خیر استفاده کرد.
مثالها (EXAMPLES)
اجرای دستور "cpupower monitor -l" ممکن است چنین خروجی نمایش دهد:
Monitor "Mperf" (3 states) - Might overflow after 922000000 s ... Monitor "Idle_Stats" (3 states) - Might overflow after 4294967295 s ...
cpupower monitor -m Idle_Stats,Mperf scp /tmp/test /nfs/tmp
دستور scp را پایش کرده و آمار شمارندههای هر دو وضعیت Mperf و Idle_Stats را نمایش میدهد، اما با ترتیب جابهجاشده.
توجه داشته باشید که دستور متداول برای استفاده کامل از یک پردازنده با دستور:
cpupower monitor cat /dev/zero >/dev/null
طبق انتظار عمل نمیکند، زیرا خروجی اندازهگیریشده به /dev/null هدایت میشود. برای دور زدن این مشکل میتوان این خط را درون یک اسکریپت شل کوچک قرار داد. با فشردن کلیدهای ترکیبی CTRL-c میتوانید اجرای دستور را متوقف کرده و خروجی اندازهگیریشده را مشاهده نمایید.
منابع (REFERENCES)
"BIOS and Kernel Developer’s Guide (BKDG) for AMD
Family 14h Processors"
https://support.amd.com/us/Processor_TechDocs/43170.pdf
"What Is Intel® Turbo Boost Technology?"
https://www.intel.com/content/www/us/en/gaming/resources/turbo-boost.html
"Power Management - Technology Overview"
https://cdrdv2.intel.com/v1/dl/getContent/637748
"Intel® 64 and IA-32 Architectures Software
Developer's Manual Volume 3B: System Programming Guide"
https://www.intel.com/products/processor/manuals
فایلها (FILES)
/dev/cpu/*/msr /sys/devices/system/cpu/cpu*/cpuidle/state*/.
همچنین ببینید (SEE ALSO)
powertop(8), msr(4), vmstat(8)
نویسندگان (AUTHORS)
نوشتهشده توسط Thomas Renninger <trenn@suse.de> پایشگرهای Nehalem و SandyBridge و ارسال دستور بر پایه turbostat.8 از Len Brown <len.brown@intel.com>
| 22/02/2011 |