مشخصات CPU مجموعه ای از اعداد مستقل نیست؛ هر عدد فقط در کنار معماری، توان و نوع Workload معنا پیدا می کند
چگونه مشخصات فنی یک CPU را بخوانیم و دو پردازنده را اصولی مقایسه کنیم؟
صفحه مشخصات یک CPU
معمولاً پر از عدد،
نام فناوری
و اصطلاحات فنی است.
تعداد Core،
تعداد Thread،
Base Clock،
Boost Clock،
Cache،
توان،
Process Node،
Memory Support
و PCIe
فقط بخشی از این اطلاعات هستند.
مشکل زمانی ایجاد می شود
که یکی از این اعداد
به تنهایی
معیار قدرت CPU
در نظر گرفته شود.
More Cores
≠
Always Faster
Higher GHz
≠
Always Faster
More Cache
≠
Always Faster
مقایسه صحیح پردازنده
زمانی امکان پذیر است
که مشخصات را
به صورت یک سیستم
به هم مرتبط
تحلیل کنیم.
در این فصل چه چیزهایی یاد می گیریم؟
- قبل از مقایسه دو CPU چه اطلاعاتی باید جمع آوری شود.
- چرا نام کامل پردازنده مهم است.
- چگونه Generation و Microarchitecture را بررسی کنیم.
- Core Count چه چیزی به ما می گوید.
- Thread Count چگونه تفسیر می شود.
- Base Clock و Boost Clock چه تفاوتی دارند.
- چرا مقایسه مستقیم GHz معمولاً اشتباه است.
- IPC چه نقشی در مقایسه دارد.
- Cache را چگونه ارزیابی کنیم.
- Power Specification چه چیزی را نشان می دهد.
- Cooling چگونه Performance واقعی را تغییر می دهد.
- Memory Support چه اهمیتی دارد.
- PCIe Support چگونه بررسی می شود.
- Integrated Graphics چه زمانی مهم است.
- Instruction Set Extensionها چرا اهمیت دارند.
- Benchmark را چگونه درست بخوانیم.
- Single-Thread و Multi-Thread چه تفاوتی دارند.
- چرا Benchmark مصنوعی به تنهایی کافی نیست.
- چگونه CPU مناسب Workload را انتخاب کنیم.
اولین قانون مقایسه CPU چیست؟
قبل از مقایسه
باید مشخص کنیم
پردازنده برای چه کاری
قرار است استفاده شود.
سؤال:
«کدام CPU بهتر است؟»
بدون تعریف Workload
سؤال کاملی نیست.
سؤال دقیق تر این است:
«کدام CPU برای این Workload،
در این Power Budget
و این محدوده هزینه
مناسب تر است؟»
Better CPU
=
Better for a Defined Workload and Constraint
Workload را چگونه مشخص کنیم؟
Workload
نوع کاری است
که CPU باید
انجام دهد.
برای مثال:
- کارهای اداری،
- مرور وب،
- برنامه نویسی،
- Compile،
- CAD،
- Simulation،
- Rendering،
- Video Encoding،
- Gaming،
- Virtualization،
- Database،
- Scientific Computing،
- Server Workload،
- و AI Processing.
هرکدام از این Workloadها
ممکن است نسبت به
ویژگی متفاوتی
از CPU حساس باشند.
نقشه صحیح مقایسه دو پردازنده
Exact CPU Model
↓
Market Segment
↓
Generation / Microarchitecture
↓
Core Architecture
↓
Core / Thread Count
↓
Frequency Behavior
↓
Cache
↓
Power Limits
↓
Memory and I/O
↓
Special Features
↓
Cooling / Platform
↓
Relevant Benchmarks
↓
Price / Efficiency / Use Case
مرحله اول: مدل کامل CPU را پیدا کنید
عباراتی مانند:
Core i5
/
Core i7
/
Ryzen 5
/
Ryzen 7
برای مقایسه
کافی نیستند.
باید نام کامل
و Model Number
دقیق پردازنده
مشخص شود.
حتی یک حرف
در انتهای مدل
ممکن است
نوع محصول
یا Power Class
را تغییر دهد.
مرحله دوم: ابتدا Segment دو CPU را مقایسه کنید
یک CPU کم مصرف
برای سیستم قابل حمل
و یک CPU
برای Workstation
با اهداف طراحی
متفاوتی ساخته شده اند.
Segmentهای متداول:
Mobile
/
Desktop
/
Workstation
/
Server
/
Embedded
مقایسه مستقیم
بدون در نظر گرفتن Segment
می تواند گمراه کننده باشد.
مرحله سوم: نسل را بررسی کنید، اما در آن متوقف نشوید
Generation
اطلاعات مفیدی
درباره دوره طراحی
و جایگاه محصول
ارائه می دهد.
اما همان طور که
در فصل قبل دیدیم:
Newer Generation
≠
Automatically Faster
باید Microarchitecture،
SKU،
Power Class
و مشخصات واقعی
نیز بررسی شوند.
Core Count را چگونه بخوانیم؟
Core Count
تعداد Coreهای
پردازشی CPU
را نشان می دهد.
تعداد Core بیشتر
می تواند
Parallel Throughput
را افزایش دهد.
اما فقط زمانی
که Software
بتواند از Coreهای بیشتر
استفاده کند.
More Cores
+
Parallel Workload
→
Potentially Higher Throughput
آیا فقط تعداد Core مهم است؟
خیر.
نوع و قدرت هر Core
نیز بسیار مهم است.
یک Core جدیدتر
ممکن است در هر Clock
کار بیشتری
نسبت به Core قدیمی تر
انجام دهد.
بنابراین:
CPU Performance
≠
Core Count Alone
تعداد Core در CPUهای Hybrid را چگونه بخوانیم؟
در پردازنده Hybrid،
Core Count کل
ممکن است از چند نوع Core
تشکیل شده باشد.
برای مثال:
Total Cores
=
Performance Cores
+
Efficiency Cores
بنابراین عبارت
«14 Core»
بدون دانستن
ترکیب Coreها
اطلاعات کاملی
ارائه نمی دهد.
Thread Count را چگونه تفسیر کنیم؟
Thread Count
تعداد Hardware Threadهایی
را نشان می دهد
که CPU
می تواند
در اختیار Software
قرار دهد.
در بعضی Coreها
فناوری SMT
اجازه می دهد
بیش از یک Thread
روی یک Core
مدیریت شود.
اما:
2 Hardware Threads
on 1 Core
≠
2 Physical Cores
Hardware Thread
و Physical Core
یک چیز نیستند.
SMT
می تواند استفاده
از منابع Core
را بهتر کند،
اما منابع فیزیکی
Core به طور کامل
دو برابر نمی شوند.
Frequency را چگونه مقایسه کنیم؟
Frequency
تعداد Clock Cycleهای
CPU در هر ثانیه
را نشان می دهد.
1 GHz
=
1 Billion Clock Cycles per Second
اما تعداد Cycle
به تنهایی
مشخص نمی کند
در هر Cycle
چه مقدار کار
انجام شده است.
این مقایسه
فقط در شرایط
بسیار محدود
می تواند مفید باشد.
دو Microarchitecture متفاوت
ممکن است در هر Clock
مقدار متفاوتی
کار انجام دهند.
Performance
≈
Frequency
×
Work per Clock
بنابراین Frequency
باید همراه با
IPC و Architecture
بررسی شود.
Base Clock چیست؟
Base Clock
یک Frequency مرجع
در چارچوب مشخصات
Power و Thermal
پردازنده است.
اما در CPUهای مدرن
رفتار واقعی Frequency
بسیار Dynamic
است.
CPU می تواند
بسته به Workload،
Temperature،
Power
و تعداد Coreهای فعال
Frequency خود را
تغییر دهد.
Boost Clock چیست؟
Boost Clock
Frequency بالاتری است
که CPU
در شرایط مناسب
می تواند
به آن برسد.
اما Maximum Boost
الزاماً Frequency
تمام Coreها
در Workload طولانی
نیست.
Maximum Boost Clock
≠
Sustained All-Core Frequency
Sustained Frequency چرا مهم تر از یک عدد تبلیغاتی است؟
در Workload کوتاه،
CPU ممکن است
برای مدت محدودی
Frequency بالایی
داشته باشد.
اما در:
- Rendering،
- Compilation،
- Simulation،
- Encoding،
- Scientific Computing،
- و Server Workload
Performance پایدار
اهمیت بیشتری دارد.
در این شرایط
Cooling
و Power Limit
مستقیماً
روی Frequency پایدار
اثر می گذارند.
IPC در مقایسه CPU چه نقشی دارد؟
IPC
مخفف:
Instructions per Cycle
است.
به صورت ساده،
IPC نشان می دهد
CPU در هر Clock
چه مقدار Instruction
می تواند
به طور موثر
پردازش کند.
البته IPC
یک عدد ثابت
برای همه برنامه ها نیست.
نوع Workload
روی IPC واقعی
اثر دارد.
یک مدل ساده برای Performance CPU
برای درک مفهومی
می توان گفت:
Performance
∝
IPC × Frequency
اما برای Multi-Core Workload
عوامل دیگری
نیز اضافه می شوند.
Multi-Core Performance
≈
Per-Core Performance
×
Effective Parallelism
عبارت Effective Parallelism
مهم است،
زیرا Scaling
معمولاً کاملاً خطی نیست.
Cache را چگونه در مشخصات CPU بررسی کنیم؟
فقط نگاه کردن
به مجموع Cache
کافی نیست.
باید بررسی شود:
- Cache در چه سطحی قرار دارد.
- Private یا Shared است.
- Latency آن چقدر است.
- Bandwidth آن چقدر است.
- بین چه Coreهایی مشترک است.
- و Workload چقدر از آن سود می برد.
Cache بیشتر
می تواند مفید باشد،
اما Performance
به Capacity
به تنهایی
وابسته نیست.
Cache Architecture،
Latency،
Bandwidth،
Hit Rate
و Workload
همگی اهمیت دارند.
مشخصات Power CPU را چگونه بخوانیم؟
یکی از پیچیده ترین
بخش های مقایسه CPU
Power Specification است.
سازندگان مختلف
ممکن است
از اصطلاحات متفاوتی
برای توصیف
Power Envelope
استفاده کنند.
بنابراین یک عدد
با عنوان TDP
یا Power
را نباید
بدون بررسی تعریف
همان سازنده
مستقیماً مقایسه کرد.
آیا TDP همان مصرف برق واقعی CPU است؟
الزاماً خیر.
TDP
معمولاً یک مشخصه
مرتبط با طراحی حرارتی
و Power Class
محصول است.
CPU ممکن است
در شرایط مختلف
Power Consumption
متفاوتی داشته باشد.
TDP
≠
Exact Real-Time Power Consumption
Power Limit چگونه Performance را تغییر می دهد؟
یک Microarchitecture
در Power Budgetهای مختلف
می تواند Performance
متفاوتی ارائه دهد.
Power بیشتر
می تواند اجازه دهد:
- Coreهای بیشتری در Frequency بالا کار کنند،
- Boost مدت بیشتری حفظ شود،
- Voltage بالاتری استفاده شود،
- و Throughput بیشتری ایجاد شود.
اما Efficiency
الزاماً با همان نسبت
افزایش پیدا نمی کند.
چرا Cooling بخشی از Performance CPU است؟
CPU مدرن
Frequency خود را
بر اساس Temperature
و Power Headroom
تنظیم می کند.
اگر Cooling
نتواند Heat
را به اندازه کافی
دفع کند،
پردازنده ممکن است
Frequency را کاهش دهد.
Insufficient Cooling
→
Higher Temperature
→
Lower Frequency
→
Lower Sustained Performance
همان CPU
در دو سیستم مختلف
الزاماً Performance
کاملاً یکسانی
ارائه نمی دهد.
عواملی مانند:
- Cooling،
- Power Limit،
- Motherboard Firmware،
- Memory Configuration،
- Operating System،
- Scheduler،
- و Background Workload
روی نتیجه
اثر می گذارند.
Observed CPU Performance
=
Processor
+
Platform
+
Cooling
+
Software Environment
Memory Support را در CPU چگونه بررسی کنیم؟
در مشخصات CPU
باید قابلیت های
Memory Controller
بررسی شوند.
از جمله:
- نوع حافظه پشتیبانی شده،
- حداکثر Data Rate رسمی،
- تعداد Memory Channel،
- حداکثر ظرفیت قابل پشتیبانی،
- ECC Support در صورت نیاز،
- و محدودیت های Platform.
جزئیات داخلی DRAM
موضوع دانشنامه مستقل حافظه است
و در اینجا وارد ساختار
Cell،
Row،
Bank
و Timingها
نمی شویم.
آیا Memory سریع تر همیشه CPU را سریع تر می کند؟
میزان تاثیر
به Workload
بستگی دارد.
بعضی Workloadها
Compute-Bound هستند
و افزایش Memory Bandwidth
تاثیر محدودی دارد.
بعضی دیگر
Memory-Bound هستند
و به Bandwidth
یا Latency
حساس ترند.
Performance Gain from Memory
=
Workload Dependent
PCIe Support در مقایسه CPU چه اهمیتی دارد؟
CPU یا Platform
می تواند
تعداد مشخصی
PCIe Lane
و Generation مشخصی
از PCI Express
را پشتیبانی کند.
این موضوع برای:
- GPU،
- NVMe Storage،
- Network Adapter،
- Accelerator،
- Capture Card،
- و سایر Expansion Deviceها
اهمیت دارد.
PCIe نسل جدیدتر یعنی CPU سریع تر است؟
خیر.
PCIe Generation
قابلیت I/O
Platform
را نشان می دهد،
نه Performance
مستقیم Coreهای CPU.
Newer PCIe
=
Higher Potential I/O Bandwidth
Newer PCIe
≠
Higher CPU Core Performance
Integrated Graphics را چه زمانی باید بررسی کنیم؟
اگر سیستم
GPU مجزا ندارد،
قابلیت Graphics
مجتمع CPU یا SoC
اهمیت زیادی پیدا می کند.
همچنین Integrated GPU
ممکن است برای:
- Display Output،
- Video Decode،
- Video Encode،
- Media Processing،
- و بعضی Compute Workloadها
استفاده شود.
اما قدرت iGPU
معیار مستقیم
قدرت CPU Core
نیست.
NPU در مشخصات پردازنده های جدید چیست؟
بعضی Processorها
دارای واحد تخصصی
برای AI Workload
هستند.
این واحد معمولاً
با نام:
NPU
=
Neural Processing Unit
شناخته می شود.
وجود NPU
الزاماً CPU Core
را سریع تر نمی کند،
بلکه Workloadهای
سازگار می توانند
روی Accelerator تخصصی
اجرا شوند.
Instruction Extensionها چرا مهم هستند؟
دو CPU
ممکن است ISA پایه
مشابهی داشته باشند،
اما Extensionهای
متفاوتی را
پشتیبانی کنند.
Extensionهای جدید
می توانند برای:
- Vector Processing،
- Cryptography،
- AI،
- Virtualization،
- Security،
- و Specialized Arithmetic
قابلیت های بیشتری
فراهم کنند.
آیا پشتیبانی از Instruction جدید یعنی CPU همیشه سریع تر است؟
خیر.
Software
باید از آن Instruction
استفاده کند.
اگر Application
از قابلیت جدید
استفاده نکند،
آن Feature
ممکن است
تاثیری روی Performance
همان برنامه نداشته باشد.
Process Node را چگونه در مقایسه CPU استفاده کنیم؟
Process Node
می تواند روی:
- Transistor Density،
- Power،
- Frequency Potential،
- Area،
- و Manufacturing Characteristics
اثر بگذارد.
اما عدد Node
به تنهایی
معیار Performance CPU
نیست.
Smaller Node Number
≠
Automatically Faster CPU
Benchmark چیست؟
Benchmark
آزمایشی برای اندازه گیری
Performance
در یک Workload
یا مجموعه ای
از Workloadهاست.
Benchmark می تواند:
- Synthetic،
- Application-Based،
- Game-Based،
- Server-Based،
- یا Workstation-Based
باشد.
Synthetic Benchmark چیست؟
Synthetic Benchmark
Workloadی طراحی شده
برای اندازه گیری
بخش مشخصی
از Performance
است.
این نوع Benchmark
برای مقایسه کنترل شده
مفید است،
اما الزاماً
رفتار Application واقعی
را کامل
بازسازی نمی کند.
Real-World Benchmark چیست؟
در این روش
از Application
یا Workload واقعی
استفاده می شود.
برای مثال:
- زمان Compile یک پروژه،
- زمان Render یک Scene،
- زمان Encode یک Video،
- Frame Rate در Game،
- زمان اجرای Simulation،
- یا تعداد Request قابل پردازش در Server.
این نتایج
معمولاً برای تصمیم خرید
قابل فهم تر هستند.
Single-Thread Performance چیست؟
Single-Thread Performance
نشان می دهد
CPU در Workloadی
که عمدتاً به
یک Execution Thread
وابسته است
چه عملکردی دارد.
عواملی مانند:
- IPC،
- Frequency،
- Cache Latency،
- Branch Prediction،
- و Memory Latency
روی آن اثر دارند.
Multi-Thread Performance چیست؟
Multi-Thread Performance
توان پردازنده
در اجرای Workloadهایی
با Parallelism بالا
را بررسی می کند.
علاوه بر Performance
هر Core،
عوامل زیر مهم هستند:
- Core Count،
- SMT،
- Power Budget،
- Memory Bandwidth،
- Cache Sharing،
- Interconnect،
- و Software Scaling.
Single-Thread یا Multi-Thread؛ کدام مهم تر است؟
پاسخ به Workload
بستگی دارد.
| نوع Workload | عامل معمولاً مهم تر |
|---|---|
| کارهای تعاملی سبک | Single-Thread Performance و Latency |
| بعضی مراحل CAD | Single-Thread Performance |
| Compilation | ترکیبی از Single و Multi-Thread |
| CPU Rendering | Multi-Thread Throughput |
| Video Encoding | Multi-Thread یا Accelerator بسته به Codec |
| Virtualization | Core، Thread، Memory و I/O |
| Server | Throughput، Latency و Performance per Watt |
| Gaming | ترکیب Per-Core Performance، Latency، Cache و Parallelism |
هنگام خواندن Benchmark چه شرایطی باید بررسی شود؟
نتیجه Benchmark
بدون Test Configuration
ناقص است.
باید بررسی شود:
- مدل دقیق CPU،
- Power Setting،
- Cooling،
- Memory Configuration،
- Motherboard،
- BIOS / Firmware،
- Operating System،
- Software Version،
- Compiler در صورت ارتباط،
- و سایر Hardwareهای موثر.
یک Benchmark
فقط رفتار CPU
در همان Test
را نشان می دهد.
بهتر است
چند Benchmark
مرتبط با Workload واقعی
بررسی شوند.
One Benchmark Score
≠
Universal CPU Performance
آیا عدد Benchmark بیشتر همیشه بهتر است؟
خیر.
باید Metric
را بررسی کنید.
اگر Benchmark
Score باشد:
Higher Score
→
Usually Better
اما اگر نتیجه
زمان انجام کار باشد:
Lower Time
→
Better
اگر نتیجه
Energy Consumption
باشد نیز
تفسیر متفاوت است.
اختلاف درصد Performance را چگونه محاسبه کنیم؟
اگر Score بیشتر
بهتر باشد:
Performance Difference (%)
=
[(New Score − Old Score) / Old Score] × 100
برای مثال:
CPU A = 1000
CPU B = 1200
Difference
=
20%
یعنی CPU B
در همان Benchmark
حدود 20 درصد
Score بیشتری دارد.
اگر Benchmark بر اساس زمان باشد چه؟
فرض کنیم:
CPU A
=
100 Seconds
CPU B
=
80 Seconds
CPU B
کار را در زمان کمتری
تمام کرده است.
اما باید میان:
Time Reduction
و:
Performance Increase
تفاوت قائل شد.
زمان اجرا
20 درصد کاهش یافته،
اما Throughput متناظر
25 درصد افزایش پیدا کرده است.
100 / 80
=
1.25
Performance per Watt را چگونه مقایسه کنیم؟
اگر Performance
و Power
هر دو در دسترس باشند،
می توان Efficiency
را بررسی کرد.
Performance per Watt
=
Performance
/
Power
این معیار
در Laptop،
Server،
Data Center
و سیستم هایی
با محدودیت Cooling
بسیار مهم است.
در Desktop
و Workstation
نیز می تواند
روی Heat،
Noise
و هزینه Cooling
اثرگذار باشد.
Price to Performance چیست؟
سریع ترین CPU
الزاماً بهترین خرید
نیست.
می توان Performance
را نسبت به قیمت
مقایسه کرد.
Performance per Cost
=
Performance
/
Total Relevant Cost
اما Total Cost
فقط قیمت CPU
نیست.
ممکن است شامل:
- Motherboard،
- Cooling،
- Memory،
- Power Supply،
- Platform Upgrade،
- و هزینه انرژی
نیز باشد.
چرا Platform هنگام انتخاب CPU مهم است؟
CPU
به تنهایی
استفاده نمی شود.
ممکن است برای
یک پردازنده جدیدتر
نیاز به:
- Socket جدید،
- Motherboard جدید،
- Memory جدید،
- Cooling جدید،
- یا Power Supply مناسب تر
وجود داشته باشد.
بنابراین تصمیم اقتصادی
باید در سطح
Platform
انجام شود.
مقایسه CPU در لپ تاپ چه تفاوتی دارد؟
در Laptop
CPU را نمی توان
کاملاً جدا از
طراحی دستگاه
ارزیابی کرد.
دو لپ تاپ
با CPU یکسان
ممکن است
Performance متفاوتی
داشته باشند.
عواملی مانند:
- Cooling System،
- Chassis Size،
- Power Profile،
- Firmware،
- Battery Mode،
- و Manufacturer Configuration
روی رفتار CPU
اثر می گذارند.
در Desktop چه چیزی اهمیت بیشتری پیدا می کند؟
در Desktop
معمولاً آزادی بیشتری
برای:
- Cooling،
- Power Delivery،
- Motherboard Selection،
- Memory Configuration،
- و Upgrade
وجود دارد.
بنابراین CPU
می تواند مدت بیشتری
در Power و Frequency
بالاتر کار کند،
البته اگر Platform
مناسب باشد.
در Workstation چه مشخصاتی مهم هستند؟
بسته به نوع Workload،
مواردی مانند:
- Single-Thread Performance،
- Multi-Core Throughput،
- Memory Capacity،
- ECC Support،
- PCIe Lane Count،
- Sustained Performance،
- Virtualization،
- و Platform Reliability
می توانند اهمیت داشته باشند.
در Server چه چیزی معیار انتخاب CPU است؟
در Server
فقط Maximum Single-Core Speed
معیار اصلی نیست.
بسته به Workload
مواردی مانند:
- Core Density،
- Throughput،
- Memory Capacity،
- Memory Bandwidth،
- PCIe Connectivity،
- Virtualization Support،
- Reliability Features،
- Performance per Watt،
- و Total Cost of Ownership
اهمیت زیادی دارند.
آیا قدیمی بودن CPU به تنهایی دلیل بد بودن آن است؟
خیر.
CPU قدیمی تر
ممکن است هنوز
برای Workload مشخص
کاملاً مناسب باشد.
اما باید محدودیت هایی مانند:
- Performance،
- Efficiency،
- Instruction Support،
- Operating System Support،
- Platform Age،
- Memory Support،
- و Upgrade Path
بررسی شوند.
هنگام خرید سیستم استوک یا دست دوم، CPU را چگونه بررسی کنیم؟
در سیستم استوک
فقط عنوان تجاری
پردازنده را نبینید.
مدل کامل CPU
را مشخص کنید
و سپس:
- نسل را بررسی کنید.
- Core و Thread را بررسی کنید.
- Microarchitecture را مشخص کنید.
- Performance واقعی را با مدل های جدیدتر مقایسه کنید.
- مصرف و Efficiency را در نظر بگیرید.
- سازگاری نرم افزاری را بررسی کنید.
- و قیمت کل سیستم را با Performance مقایسه کنید.
این روش برای:
- لپ تاپ استوک،
- Desktop استوک،
- Workstation استوک،
- Mini PC،
- All-in-One،
- و Server دست دوم
کاربرد دارد.
زیرساخت فنی — چرا نمی توان قدرت CPU را در یک عدد خلاصه کرد؟
CPU
یک ماشین محاسباتی
چندبعدی است.
یک Workload
ممکن است
به Branch Prediction
حساس باشد.
Workload دیگر
ممکن است
به Vector Throughput
نیاز داشته باشد.
برنامه دیگری
ممکن است
توسط Memory Latency
محدود شود.
Rendering
ممکن است
از Coreهای بیشتر
استفاده کند.
یک Application تعاملی
ممکن است
بیشتر به
Single-Thread Latency
حساس باشد.
بنابراین CPU
یک Performance Number
جهانی ندارد.
CPU Performance
=
Function of
Architecture
+
Frequency
+
Core Count
+
Cache
+
Memory Behavior
+
Power
+
Software
+
Workload
به همین دلیل
یک CPU
می تواند در Benchmark A
برنده باشد
و در Benchmark B
نتیجه متفاوتی
داشته باشد.
چک لیست نهایی مقایسه دو CPU
- نام کامل هر دو CPU را ثبت کنید.
- Market Segment را مشخص کنید.
- Generation و Codename را بررسی کنید.
- Microarchitecture را مشخص کنید.
- نوع Coreها را بررسی کنید.
- Core Count را مقایسه کنید.
- Thread Count را بررسی کنید.
- Base و Boost Frequency را بخوانید.
- فقط براساس GHz نتیجه گیری نکنید.
- Cache Architecture را بررسی کنید.
- Power Specification را بخوانید.
- Power Limit واقعی سیستم را در نظر بگیرید.
- Cooling را بررسی کنید.
- Memory Support را بررسی کنید.
- PCIe و I/O را بررسی کنید.
- iGPU، NPU و Acceleratorها را در صورت نیاز بررسی کنید.
- Instruction Extensionهای مورد نیاز Software را بررسی کنید.
- Benchmarkهای مرتبط با Workload خود را پیدا کنید.
- Single-Thread و Multi-Thread را جداگانه تحلیل کنید.
- Efficiency را بررسی کنید.
- هزینه کل Platform را محاسبه کنید.
- در نهایت CPU را براساس کاربرد واقعی انتخاب کنید.
هر مشخصه CPU چه چیزی را به ما می گوید؟
| مشخصه | چه چیزی نشان می دهد؟ | آیا به تنهایی معیار Performance است؟ |
|---|---|---|
| Generation | جایگاه زمانی و محصولی | خیر |
| Microarchitecture | ساختار داخلی Core | خیر |
| Core Count | منابع پردازشی مستقل | خیر |
| Thread Count | Hardware Threadهای قابل ارائه | خیر |
| Frequency | Clock Cycle در ثانیه | خیر |
| Cache | حافظه نزدیک به Core | خیر |
| Power | محدوده انرژی و حرارت طراحی | خیر |
| Process Node | فناوری ساخت | خیر |
| Memory Support | قابلیت Memory Controller | خیر |
| PCIe | قابلیت I/O و Expansion | خیر |
| Benchmark | Performance در Test مشخص | فقط برای همان شرایط و Workload |
- مقایسه پردازنده فقط براساس i5، i7، Ryzen 5 یا Ryzen 7.
- مقایسه CPU فقط براساس GHz.
- فرض اینکه Core بیشتر همیشه سریع تر است.
- یکی دانستن Thread و Core.
- فرض اینکه Maximum Boost روی تمام Coreها دائماً حفظ می شود.
- مقایسه Frequency میان Microarchitectureهای متفاوت بدون توجه به IPC.
- فرض اینکه Cache بیشتر همیشه Performance بیشتری ایجاد می کند.
- فرض اینکه TDP همان مصرف برق لحظه ای CPU است.
- نادیده گرفتن Power Limit.
- نادیده گرفتن Cooling.
- مقایسه CPUهای Mobile و Desktop فقط از روی نام.
- فرض اینکه Process Node کوچک تر همیشه CPU سریع تری می سازد.
- فرض اینکه PCIe جدیدتر یعنی Core سریع تر.
- فرض اینکه وجود NPU باعث افزایش Performance همه برنامه ها می شود.
- استفاده از یک Benchmark برای نتیجه گیری کلی.
- نادیده گرفتن Test Configuration.
- اشتباه گرفتن Time Reduction با Performance Increase.
- نادیده گرفتن Performance per Watt.
- نادیده گرفتن هزینه کل Platform.
- انتخاب CPU بدون تعریف Workload.
سوالات متداول درباره مقایسه CPU
مهم ترین مشخصه برای مقایسه CPU چیست؟
مشخصه واحدی وجود ندارد.
نوع Workload،
Microarchitecture،
Core،
Frequency،
Cache،
Power
و Benchmark واقعی
باید در کنار یکدیگر
بررسی شوند.
GHz بیشتر یعنی CPU سریع تر است؟
الزاماً خیر.
IPC و Microarchitecture
نیز باید بررسی شوند.
Core بیشتر بهتر است؟
برای Workloadهای Parallel
می تواند بسیار مفید باشد،
اما Scaling
به Software
و محدودیت های سیستم
بستگی دارد.
Thread بیشتر یعنی Core بیشتر؟
خیر.
Hardware Thread
با Physical Core
یکسان نیست.
Base Clock یا Boost Clock مهم تر است؟
هیچ کدام به تنهایی
رفتار واقعی CPU
را نشان نمی دهند.
Frequency پایدار
تحت Workload واقعی
مهم تر است.
آیا TDP همان مصرف برق CPU است؟
الزاماً خیر.
تعریف دقیق
مشخصه توان
باید براساس سازنده
و نسل محصول
بررسی شود.
برای مقایسه CPU چه Benchmarkی بهتر است؟
Benchmarkی که
بیشترین شباهت
به Workload واقعی
شما داشته باشد.
Single-Core یا Multi-Core مهم تر است؟
به Software
بستگی دارد.
Workloadهای مختلف
نسبت به این دو
رفتار متفاوتی دارند.
آیا CPU جدیدتر همیشه انتخاب بهتری است؟
خیر.
Performance،
Efficiency،
Compatibility،
Platform Cost
و قیمت خرید
باید بررسی شوند.
برای سیستم استوک چگونه CPU را مقایسه کنیم؟
مدل کامل،
نسل،
معماری،
Core و Thread،
Performance واقعی،
Efficiency،
Software Support
و قیمت کل سیستم
را بررسی کنید.
واژه های جدید این فصل برای واژه نامه نهایی کتاب
- Workload: نوع کاری که سیستم یا CPU اجرا می کند.
- Base Clock: فرکانس پایه تعریف شده در چارچوب مشخصات پردازنده.
- Boost Clock: فرکانس بالاتر قابل دستیابی در شرایط مناسب.
- Sustained Frequency: فرکانس قابل حفظ در Workload طولانی.
- IPC: Instructions per Cycle؛ میزان Instruction انجام شده در هر Clock Cycle.
- Single-Thread Performance: عملکرد در Workload وابسته به یک Thread اصلی.
- Multi-Thread Performance: عملکرد در Workloadهای Parallel.
- Synthetic Benchmark: آزمون طراحی شده برای اندازه گیری Performance مشخص.
- Real-World Benchmark: آزمون مبتنی بر Application یا Workload واقعی.
- Test Configuration: مجموعه شرایط Hardware و Software اجرای Benchmark.
- Performance per Watt: Performance حاصل به ازای Power مصرفی.
- Performance per Cost: Performance نسبت به هزینه.
- Compute-Bound: Workloadی که عمدتاً توسط توان محاسباتی محدود می شود.
- Memory-Bound: Workloadی که عمدتاً توسط Memory System محدود می شود.
- Power Limit: محدودیت توان قابل استفاده توسط Processor.
خلاصه فصل
هیچ مشخصه واحدی
قدرت کامل CPU
را نشان نمی دهد.
تعداد Core،
Thread،
GHz،
Cache
و Process Node
هرکدام فقط
بخشی از تصویر هستند.
مقایسه صحیح
با تعریف Workload
آغاز می شود.
سپس باید
مدل دقیق،
Segment،
Generation،
Microarchitecture،
Core Configuration،
Frequency،
Cache،
Power،
Memory
و I/O
بررسی شوند.
در مرحله بعد
Benchmarkهای واقعی
و مرتبط با کاربرد
اهمیت پیدا می کنند.
Specifications
+
Architecture
+
Platform
+
Real Benchmarks
+
Workload
=
Meaningful CPU Comparison
بهترین CPU الزاماً پردازنده ای نیست که بیشترین Core،
بالاترین GHz یا جدیدترین نسل را دارد؛ بهترین CPU پردازنده ای
است که برای Workload مورد نظر، در محدودیت قیمت، توان،
Platform و Efficiency، نتیجه مناسب تری ارائه کند.
یک عدد بنچمارک فقط زمانی معنا دارد که بدانیم چگونه، کجا و تحت چه شرایطی اندازه گیری شده است
بنچمارک CPU چگونه انجام می شود و نتایج تست پردازنده را چگونه درست تفسیر کنیم؟
Benchmark
یکی از مهم ترین ابزارهای
مقایسه Performance
پردازنده هاست.
اما یک Benchmark Score
حقیقت مطلق
درباره قدرت CPU نیست.
نتیجه ای که مشاهده می کنیم
حاصل تعامل پردازنده
با سیستم،
Software،
تنظیمات،
دما،
توان
و خود Workload است.
Benchmark Result
=
CPU
+
Platform
+
Configuration
+
Software
+
Test Method
بنابراین دو وب سایت
ممکن است یک CPU یکسان
را آزمایش کنند
و به نتایج
کمی متفاوت برسند،
بدون اینکه الزاماً
یکی از آنها اشتباه باشد.
در این فصل چه چیزهایی یاد می گیریم؟
- Benchmark دقیقاً چیست.
- Benchmark چه چیزی را اندازه گیری می کند.
- تفاوت Synthetic و Real-World Benchmark چیست.
- Microbenchmark چیست.
- Throughput و Latency چه تفاوتی دارند.
- چرا شرایط تست باید ثابت باشد.
- Warm-up چیست.
- چرا تست باید چند بار تکرار شود.
- Variance چیست.
- Mean و Median چه تفاوتی دارند.
- Outlier چیست.
- Thermal State چگونه نتیجه را تغییر می دهد.
- Power Limit چگونه Benchmark را تغییر می دهد.
- چرا Benchmark کوتاه و طولانی نتایج متفاوتی می دهند.
- چگونه CPUهای Laptop، Desktop، Workstation و Server را تست کنیم.
- چگونه Benchmark گمراه کننده را تشخیص دهیم.
Benchmark CPU دقیقاً چیست؟
Benchmark
یک آزمایش کنترل شده
برای اندازه گیری
یک یا چند جنبه
از Performance
سیستم است.
در تست CPU
هدف می تواند
اندازه گیری مواردی مانند:
- زمان انجام یک محاسبه،
- تعداد عملیات در واحد زمان،
- Single-Thread Performance،
- Multi-Thread Throughput،
- Latency،
- Energy Efficiency،
- Compilation Speed،
- Rendering Speed،
- Compression Performance،
- یا Server Throughput
باشد.
چرا یک Benchmark واحد نمی تواند قدرت کامل CPU را نشان دهد؟
CPU
انواع مختلفی
از Workload
را اجرا می کند.
یک Benchmark
ممکن است بیشتر
به Integer Performance
حساس باشد.
Benchmark دیگر
ممکن است
از Floating-Point
یا Vector Execution
استفاده کند.
تست دیگری
ممکن است
به Cache،
Branch Prediction
یا Memory Access
حساس باشد.
One Benchmark
=
One View of Performance
One Benchmark
≠
Universal CPU Performance
انواع اصلی Benchmark CPU
Benchmarkها را
می توان از چند زاویه
دسته بندی کرد.
| نوع Benchmark | هدف اصلی | نمونه کاربرد |
|---|---|---|
| Synthetic | ایجاد Workload استاندارد و قابل تکرار | مقایسه کنترل شده CPUها |
| Real-World | اندازه گیری Application واقعی | Render، Compile، Encode |
| Microbenchmark | اندازه گیری بخش کوچک و مشخص | Latency یا Throughput یک Operation |
| Single-Thread | بررسی Performance یک Thread اصلی | Workloadهای کم Parallel |
| Multi-Thread | بررسی Parallel Throughput | Rendering و Compilation |
| Long-Duration | بررسی Performance پایدار | Workstation و Server |
| Efficiency | بررسی Performance نسبت به Power یا Energy | Laptop، Server و Data Center |
Synthetic Benchmark چیست؟
Synthetic Benchmark
Workloadی است
که برای ایجاد
شرایط استاندارد
و قابل تکرار
طراحی شده است.
مزیت اصلی آن
این است که
CPUهای مختلف
می توانند تحت
یک Test مشابه
مقایسه شوند.
اما نتیجه
الزاماً نشان نمی دهد
Application واقعی شما
دقیقاً با همان نسبت
سریع تر خواهد شد.
Real-World Benchmark چیست؟
در Real-World Benchmark
از Application
یا Workflow واقعی
استفاده می شود.
برای مثال:
- Compile کردن یک پروژه واقعی،
- Render کردن یک Scene،
- Encode کردن یک Video،
- اجرای Simulation،
- اجرای یک Game،
- پردازش Database Query،
- یا پاسخ به Requestهای Server.
چنین تست هایی
معمولاً ارتباط بیشتری
با تجربه واقعی کاربر دارند.
Microbenchmark چیست؟
Microbenchmark
به جای اندازه گیری
یک Application کامل،
بخش بسیار مشخصی
از Processor
را آزمایش می کند.
برای مثال:
- Instruction Latency،
- Instruction Throughput،
- Branch Behavior،
- Cache Latency،
- Synchronization Cost،
- یا Context-Specific Operation.
Microbenchmark
برای تحلیل معماری
بسیار مفید است،
اما نباید نتیجه آن
مستقیماً به کل
Application تعمیم داده شود.
Latency در Benchmark یعنی چه؟
Latency
مدت زمانی است
که انجام یک عملیات
یا پاسخ به یک درخواست
طول می کشد.
Lower Latency
=
Faster Response
Latency
در Workloadهای تعاملی،
بعضی Databaseها،
Serverها
و بسیاری از مسیرهای
وابسته به یک Thread
اهمیت زیادی دارد.
Throughput چیست؟
Throughput
مقدار کاری است
که سیستم
در یک بازه زمانی
انجام می دهد.
Throughput
=
Completed Work
/
Time
برای مثال:
- تعداد Frame Render شده در ساعت،
- تعداد Request در ثانیه،
- تعداد فایل پردازش شده،
- یا حجم Data پردازش شده در ثانیه.
یک سیستم
می تواند Throughput بالایی
داشته باشد،
اما Latency هر Task
نسبتاً زیاد باشد.
در مقابل،
سیستمی دیگر
می تواند یک Task
را سریع پاسخ دهد،
اما در اجرای تعداد زیادی
Task همزمان
Throughput پایین تری داشته باشد.
Low Latency
≠
Automatically High Throughput
چرا شرایط Benchmark باید کنترل شوند؟
اگر هنگام مقایسه
دو CPU
چند متغیر دیگر
همزمان تغییر کنند،
دیگر مشخص نیست
اختلاف نتیجه
از کجا آمده است.
تا حد امکان
باید متغیرهای موثر
کنترل شوند.
Change CPU
→
Keep Other Relevant Variables Controlled
چه اطلاعاتی باید همراه Benchmark منتشر شود؟
یک Benchmark حرفه ای
باید Test Configuration
را مشخص کند.
- مدل کامل CPU،
- Motherboard یا System Model،
- BIOS / Firmware Version،
- Cooling Configuration،
- Power Settings،
- Memory Configuration،
- GPU در صورت اثرگذاری،
- Storage در صورت اثرگذاری،
- Operating System،
- Driver Version،
- Application Version،
- و Test Method.
چرا Memory Configuration باید ثبت شود؟
بعضی Workloadهای CPU
به Memory Bandwidth
یا Memory Latency
حساس هستند.
بنابراین تغییر
Memory Configuration
می تواند نتیجه Benchmark
را تغییر دهد.
در تست CPU
لازم است Configuration
ثبت و تا حد امکان
کنترل شود.
جزئیات معماری DRAM،
Timing،
Bank،
Row
و سایر مباحث حافظه
در دانشنامه مستقل RAM
بررسی خواهند شد.
Operating System چگونه روی Benchmark اثر می گذارد؟
Operating System
فقط بستری برای اجرای
Benchmark نیست.
Scheduler،
Power Management،
Security Featureها،
Background Processها
و Kernel
می توانند
روی نتیجه اثر بگذارند.
این موضوع
در CPUهای Hybrid
اهمیت بیشتری دارد،
زیرا Scheduler
باید Threadها
را میان انواع مختلف Core
مدیریت کند.
Background Processها چه مشکلی ایجاد می کنند؟
اگر هنگام Benchmark
برنامه دیگری
CPU Time مصرف کند،
نتیجه ممکن است
کاهش پیدا کند.
فعالیت هایی مانند:
- Software Update،
- Antivirus Scan،
- File Indexing،
- Cloud Synchronization،
- Browser Process،
- و Telemetry
می توانند
Variance ایجاد کنند.
Warm-up در Benchmark چیست؟
بعضی Testها
قبل از اندازه گیری اصلی
چند بار اجرا می شوند.
این مرحله
Warm-up
نامیده می شود.
هدف می تواند
کاهش اثر عواملی مانند:
- Cold Start،
- Runtime Initialization،
- JIT Compilation،
- Cache State،
- و Frequency Transition
باشد.
آیا Warm-up همیشه Performance را بهتر نشان می دهد؟
خیر.
از نظر Software،
Warm-up ممکن است
شرایط را پایدارتر کند.
اما از نظر Thermal،
اجرای قبلی
می تواند CPU
و Cooling System
را گرم کند.
بنابراین Methodology
باید مشخص کند
تست از حالت سرد
انجام شده
یا پس از رسیدن سیستم
به Thermal Equilibrium.
چرا Benchmark کوتاه ممکن است گمراه کننده باشد؟
در شروع Workload،
CPU ممکن است
Thermal Headroom
زیادی داشته باشد.
در نتیجه
می تواند برای مدت کوتاه
با Power
و Frequency بالاتری
کار کند.
اگر Benchmark
قبل از رسیدن سیستم
به حالت پایدار
تمام شود،
نتیجه بیشتر
Burst Performance
را نشان می دهد.
Benchmark طولانی چه چیزی را نشان می دهد؟
Test طولانی
فرصت می دهد
رفتار Thermal
و Power
سیستم آشکار شود.
بعد از مدتی
ممکن است:
Temperature ↑
→
Power / Thermal Limit
→
Frequency Adjustment
→
Sustained Performance
به همین دلیل
برای Rendering،
Encoding،
Compilation طولانی،
Simulation
و Workstation Workload
تست پایدار اهمیت زیادی دارد.
چرا این موضوع در Laptop اهمیت بیشتری دارد؟
Laptop
محدودیت بیشتری
در حجم Cooling،
سطح Heat Dissipation
و Power Budget
دارد.
یک لپ تاپ
ممکن است در Test کوتاه
Performance بسیار خوبی
ارائه دهد،
اما در Workload طولانی
به سطح پایین تری
پایدار شود.
بنابراین برای Laptop
بهتر است هم:
Burst Performance
و هم:
Sustained Performance
بررسی شوند.
در Desktop چرا Cooling Configuration باید گزارش شود؟
در Desktop
نوع Cooler،
Airflow،
Motherboard
و Power Setting
می توانند رفتار CPU
را تغییر دهند.
یک CPU یکسان
با Cooler ضعیف
و Cooler قدرتمند
ممکن است
Sustained Frequency
متفاوتی داشته باشد.
Power Limit چگونه نتیجه Benchmark را تغییر می دهد؟
CPU
برای ایجاد Performance
به Energy نیاز دارد.
اگر Platform
اجازه Power بیشتری بدهد،
Processor ممکن است
Frequency بالاتری
حفظ کند.
بنابراین مقایسه
دو CPU بدون گزارش
Power Configuration
می تواند ناقص باشد.
برای Benchmark عادلانه باید Power دو CPU برابر باشد؟
الزاماً نه.
پاسخ بستگی دارد
چه چیزی را
می خواهیم اندازه بگیریم.
اگر هدف:
Maximum Stock Performance
باشد،
می توان هر CPU
را در تنظیمات استاندارد
محصول خودش آزمایش کرد.
اگر هدف:
Performance at Equal Power
باشد،
باید Power Budget
کنترل شود.
این دو سؤال
متفاوت هستند
و هر دو می توانند
معتبر باشند.
چرا Benchmark باید چند بار اجرا شود؟
هیچ اجرای واقعی
کاملاً بدون Noise
نیست.
نتیجه می تواند
به علت:
- Background Activity،
- Scheduling،
- Temperature،
- Frequency Variation،
- Software State،
- و Measurement Noise
کمی تغییر کند.
اجرای چندباره
امکان بررسی
Repeatability
را فراهم می کند.
Variance در نتایج Benchmark چیست؟
اگر چند اجرای
یک Benchmark
نتایج متفاوتی
ایجاد کنند،
میزان پراکندگی
نتایج اهمیت پیدا می کند.
برای مثال:
Run 1 = 1000
Run 2 = 1005
Run 3 = 998
نسبت به:
Run 1 = 1000
Run 2 = 1130
Run 3 = 910
رفتار بسیار
پایدارتر و قابل اعتماد تری
نشان می دهد.
Mean یا میانگین چیست؟
Mean
با جمع نتایج
و تقسیم آنها
بر تعداد Testها
محاسبه می شود.
Mean
=
Sum of Results
/
Number of Runs
Mean
معیار مفیدی است،
اما نسبت به
Outlier
حساس است.
Median یا میانه چیست؟
Median
مقدار وسط
پس از مرتب کردن
نتایج است.
اگر نتایج:
98
/
99
/
100
/
101
/
150
باشند،
Median برابر:
100
است.
عدد 150
می تواند Mean
را بیشتر جابه جا کند،
اما Median
نسبت به آن
مقاوم تر است.
Outlier چیست؟
Outlier
نتیجه ای است
که فاصله غیرمعمولی
از سایر اندازه گیری ها
دارد.
اما نباید
هر نتیجه متفاوتی
را بدون بررسی
حذف کرد.
ابتدا باید مشخص شود
آیا Outlier
ناشی از:
- Measurement Error،
- Background Process،
- Thermal Event،
- Software Failure،
- یا رفتار واقعی سیستم
بوده است.
اگر Benchmark
چند بار اجرا شده
و فقط بهترین نتیجه
منتشر شود،
ممکن است Performance
واقعی سیستم
بیش از حد خوب
نمایش داده شود.
Methodology حرفه ای
باید مشخص کند
نتیجه نهایی
چگونه از Runهای مختلف
استخراج شده است.
اختلاف کوچک در Benchmark همیشه معنی دار است؟
خیر.
اگر اختلاف
میان دو CPU
در حد Noise
و Variance تست باشد،
نمی توان با اطمینان
گفت یکی واقعاً
سریع تر است.
برای مثال
اگر Variance تست
حدود چند درصد باشد،
اختلاف بسیار کوچک
ممکن است عملاً
Tie
محسوب شود.
Small Difference
+
Similar Measurement Variance
→
Possibly No Meaningful Difference
چرا نسخه Benchmark یا Application مهم است؟
Software
در طول زمان
تغییر می کند.
نسخه جدید
ممکن است:
- Compiler جدید داشته باشد،
- Optimization جدید اضافه کند،
- Thread Scheduling را تغییر دهد،
- از Instruction جدید استفاده کند،
- یا Algorithm متفاوتی داشته باشد.
بنابراین نتایج
نسخه های مختلف
یک Benchmark
الزاماً قابل مقایسه مستقیم
نیستند.
Compiler چگونه روی نتیجه CPU اثر می گذارد؟
در Workloadهای
Compile شده،
Compiler
می تواند نوع Code
تولید شده برای CPU
را تغییر دهد.
Optimization Level،
Vectorization،
Target Architecture
و Instruction Selection
می توانند نتیجه
را تغییر دهند.
Source Code
+
Different Compiler Decisions
→
Different Machine Code
→
Different Performance
آیا Optimization برای یک CPU خاص Benchmark را نامعتبر می کند؟
الزاماً خیر.
Software واقعی
نیز می تواند
برای Architectureهای مختلف
Optimization داشته باشد.
مسئله مهم
شفاف بودن شرایط
و منصفانه بودن
مقایسه است.
باید مشخص شود
آیا هر CPU
از مسیر Software
مناسب خودش
استفاده کرده است
یا خیر.
چرا Benchmark گیمینگ همیشه قدرت CPU را نشان نمی دهد؟
Game Performance
حاصل تعامل:
CPU
+
GPU
+
Game Engine
+
Memory
+
Driver
+
Settings
است.
اگر GPU
عامل محدود کننده باشد،
دو CPU با قدرت متفاوت
ممکن است Frame Rate
بسیار نزدیکی
ایجاد کنند.
برای آشکار کردن اختلاف CPU در Game چه می کنند؟
در بعضی تست های تحلیلی،
از GPU قدرتمند
و تنظیماتی استفاده می شود
که GPU Bottleneck
را کاهش دهند.
هدف این است
که محدودیت CPU
بیشتر دیده شود.
اما این روش
الزاماً نماینده
تنظیمات واقعی
همه کاربران نیست.
بنابراین بهتر است
هم Test تحلیلی CPU
و هم Test نزدیک
به شرایط واقعی
بررسی شود.
Benchmark پردازنده Server چه تفاوتی دارد؟
Server Benchmark
معمولاً باید
علاوه بر Performance خام،
مواردی مانند:
- Throughput،
- Tail Latency،
- Concurrent Users،
- Performance per Watt،
- Scalability،
- Memory Capacity،
- I/O Behavior،
- و Sustained Load
را بررسی کند.
Tail Latency چیست؟
میانگین Latency
همیشه تصویر کاملی
از Server
ارائه نمی دهد.
ممکن است بیشتر Requestها
سریع باشند،
اما تعداد کمی
بسیار کند پاسخ داده شوند.
برای همین
Percentileهایی مانند:
P95
/
P99
/
P99.9
می توانند
برای تحلیل
Tail Latency
استفاده شوند.
Benchmark پردازنده Workstation چگونه باید باشد؟
Workstation
باید با Software
مرتبط با کار واقعی
آزمایش شود.
برای مثال:
- CAD،
- Engineering Simulation،
- CPU Rendering،
- Compilation،
- Scientific Computing،
- Data Processing،
- و Content Creation.
یک Synthetic Score
به تنهایی
نمی تواند تمام
این Workloadها
را نمایندگی کند.
Performance per Watt چگونه اندازه گیری می شود؟
یکی از روش های ساده
این است که
Performance
نسبت به Power
مقایسه شود.
Performance per Watt
=
Performance
/
Average Power
اما روش اندازه گیری Power
باید مشخص باشد.
Package Power،
CPU Input Power
و Total System Power
یک چیز نیستند.
Energy to Complete چیست؟
فقط Power لحظه ای
مهم نیست.
اگر CPU سریع تر
یک Task
را تمام کند،
ممکن است با وجود
Power بالاتر،
Energy کل کمتری
مصرف کند.
Energy
=
Power
×
Time
بنابراین برای بعضی
Workloadها،
Energy to Complete
معیار مفیدتری
از Power تنهاست.
آیا Benchmark لپ تاپ با باتری و برق شهری یکسان است؟
الزاماً خیر.
Laptop
ممکن است هنگام
Battery Operation
Power Limit
و Frequency Behavior
متفاوتی داشته باشد.
بنابراین Test Method
باید مشخص کند
دستگاه:
Plugged In
or
On Battery
بوده است.
در سیستم استوک یا دست دوم Benchmark چه کمکی می کند؟
Benchmark
می تواند علاوه بر
مقایسه مدل CPU،
برای بررسی رفتار
خود سیستم نیز
مفید باشد.
اگر Performance دستگاه
به شکل غیرعادی
پایین تر از سیستم های مشابه باشد،
می توان مواردی مانند:
- Thermal Throttling،
- Power Configuration،
- Cooling Problem،
- Background Load،
- Firmware Setting،
- یا سایر مشکلات سیستم
را بررسی کرد.
این موضوع فقط
به لپ تاپ محدود نیست
و در Desktop،
Workstation،
Mini PC،
All-in-One
و Server استوک
نیز کاربرد دارد.
چگونه Benchmark گمراه کننده را تشخیص دهیم؟
قبل از اعتماد
به یک نمودار
یا Score،
چند سؤال بپرسید:
- مدل دقیق CPUها مشخص شده است؟
- نسخه Benchmark مشخص است؟
- Test Configuration منتشر شده است؟
- Power Setting مشخص است؟
- Cooling مشخص است؟
- تست چند بار اجرا شده است؟
- نتیجه میانگین است یا بهترین Run؟
- اختلاف از Variance تست بزرگ تر است؟
- Workload به کاربرد واقعی مرتبط است؟
- آیا یکی از سیستم ها Bottleneck دیگری دارد؟
- آیا Software Version یکسان است؟
- آیا نتیجه فقط یک Test انتخاب شده است؟
Cherry Picking در Benchmark چیست؟
Cherry Picking
یعنی از میان
تعداد زیادی Test،
فقط نتایجی انتخاب شوند
که یک محصول
را بهتر نشان می دهند.
برای مثال
ممکن است CPU A
در 15 Test
نتایج متفاوتی داشته باشد،
اما فقط دو Test
که در آنها برنده است
نمایش داده شوند.
برای جلوگیری از این مشکل
باید مجموعه ای
متنوع از Workloadهای
مرتبط بررسی شود.
نمودار Benchmark چگونه می تواند اختلاف را بزرگ تر از واقعیت نشان دهد؟
محور نمودار
می تواند
ادراک بصری
اختلاف را تغییر دهد.
فرض کنید:
CPU A = 100
CPU B = 105
اختلاف واقعی
فقط 5 درصد است.
اگر محور نمودار
از 95 شروع شود،
ستون CPU B
ممکن است چند برابر
بلندتر به نظر برسد.
بنابراین علاوه بر
شکل نمودار،
اعداد واقعی
را نیز بخوانید.
درصد اختلاف مهم تر است یا مقدار واقعی؟
هر دو.
20 درصد افزایش
می تواند بسیار مهم باشد،
اما باید ببینیم
این افزایش در عمل
چه مقدار زمان
یا Throughput
ایجاد می کند.
برای مثال
کاهش زمان یک Task
از:
10 Seconds
→
8 Seconds
با کاهش زمان
یک Workflow روزانه
از:
10 Hours
→
8 Hours
از نظر تاثیر عملی
یکسان نیست.
چرا تعداد Runها و پراکندگی نتیجه مهم است؟
فرض کنید CPU A
به طور متوسط
1 درصد
سریع تر از CPU B
باشد.
اگر خود Benchmark
بین Runهای مختلف
3 درصد تغییر کند،
نتیجه یک درصدی
ممکن است قابل اتکا نباشد.
هرچه اختلاف
نسبت به Noise
بزرگ تر باشد،
Confidence
در نتیجه
بیشتر می شود.
Reproducibility چیست؟
یک Benchmark خوب
باید تا حد معقول
قابل تکرار باشد.
یعنی اگر
شرایط مشابه
دوباره ایجاد شوند،
نتیجه باید
در محدوده ای منطقی
تکرار شود.
Good Methodology
→
Repeatable Results
→
Higher Confidence
تصور کنید
CPU A
و CPU B
در Test کوتاه
Performance نزدیکی دارند.
CPU A
برای حفظ Performance
به Power بیشتری
نیاز دارد.
اگر Cooling System
محدود باشد،
CPU A ممکن است
پس از چند دقیقه
Frequency خود را
کاهش دهد.
در نتیجه:
Short Benchmark:
CPU A > CPU B
Long Sustained Benchmark:
CPU B ≥ CPU A
به همین دلیل
Duration تست
بخشی از تعریف
Benchmark است.
زیرساخت فنی — وقتی دکمه Start Benchmark را می زنیم واقعاً چه اتفاقی می افتد؟
Benchmark
مجموعه ای از Instructionها
را برای CPU
ایجاد می کند.
Operating System
Threadهای Benchmark
را روی Coreهای موجود
Schedule می کند.
CPU
براساس Workload،
Temperature،
Power Budget
و Firmware Policy
Frequency مناسب
را انتخاب می کند.
Instructionها
از Front-End
وارد Pipeline
می شوند،
Decode
و Schedule
شده
و توسط Execution Unitها
اجرا می شوند.
Cache،
Memory System
و Interconnect
داده های لازم
را فراهم می کنند.
همزمان Sensors
شرایط:
Temperature
/
Power
/
Current
/
Frequency
را کنترل می کنند.
در نهایت Benchmark
یک Metric
مانند زمان،
Score
یا Throughput
تولید می کند.
Workload
→
OS Scheduler
→
CPU Execution
→
Cache / Memory / I/O
→
Power & Thermal Management
→
Completed Work
→
Measurement
→
Benchmark Result
بنابراین عدد نهایی
نتیجه یک زنجیره کامل
از Hardware
و Software است،
نه فقط مشخصات
روی جعبه CPU.
یک روش اصولی برای Benchmark CPU
- هدف Test را مشخص کنید.
- Workload مناسب را انتخاب کنید.
- مدل دقیق CPU و Platform را ثبت کنید.
- BIOS و Software Version را ثبت کنید.
- Power Configuration را مشخص کنید.
- Cooling Configuration را ثبت کنید.
- Memory Configuration را ثابت و ثبت کنید.
- Background Processهای غیرضروری را کنترل کنید.
- روش Warm-up را مشخص کنید.
- مدت Test را تعیین کنید.
- Benchmark را چند بار اجرا کنید.
- Mean، Median و Variance را در صورت نیاز بررسی کنید.
- Outlierها را بررسی کنید، نه اینکه خودکار حذف کنید.
- Temperature و Power Behavior را کنترل کنید.
- نتایج را همراه با Methodology منتشر کنید.
- Benchmarkهای Synthetic و Real-World را کنار هم ببینید.
- در نهایت نتیجه را فقط برای Workload مرتبط تفسیر کنید.
هنگام دیدن یک Benchmark آنلاین چه چیزهایی را بررسی کنیم؟
| سؤال | چرا مهم است؟ |
|---|---|
| مدل کامل CPU چیست؟ | از مقایسه SKU اشتباه جلوگیری می کند |
| Benchmark چه Workloadی دارد؟ | مشخص می کند نتیجه نماینده چه نوع Performance است |
| نسخه Software چیست؟ | نسخه های مختلف ممکن است نتایج متفاوتی داشته باشند |
| Power Setting چیست؟ | روی Frequency و Sustained Performance اثر دارد |
| Cooling چیست؟ | روی Thermal Headroom اثر دارد |
| تست چقدر طول کشیده؟ | Burst و Sustained Performance را از هم جدا می کند |
| چند Run انجام شده؟ | Repeatability را مشخص می کند |
| Variance چقدر است؟ | نشان می دهد اختلاف کوچک چقدر قابل اعتماد است |
| Metric چیست؟ | مشخص می کند عدد بیشتر یا کمتر بهتر است |
| آیا Bottleneck دیگری وجود دارد؟ | ممکن است Benchmark اصلاً توسط CPU محدود نشده باشد |
- اعتماد به یک Benchmark واحد.
- مقایسه نتایج نسخه های مختلف یک Benchmark.
- نادیده گرفتن Power Setting.
- نادیده گرفتن Cooling.
- مقایسه Benchmarkهای کوتاه و طولانی بدون توجه به Duration.
- انتخاب فقط بهترین Run.
- نادیده گرفتن Variance.
- حذف Outlier بدون بررسی علت.
- فرض اینکه اختلاف یک یا دو درصد همیشه معنی دار است.
- نادیده گرفتن Background Processها.
- نادیده گرفتن Operating System و Scheduler.
- نادیده گرفتن Software Version.
- مقایسه Score بدون شناخت Metric.
- اشتباه گرفتن Latency با Throughput.
- اشتباه گرفتن Power با Energy.
- مقایسه Performance per Watt با روش های متفاوت اندازه گیری Power.
- تعمیم Microbenchmark به Performance کل Application.
- Cherry Picking نتایج.
- اعتماد به ظاهر نمودار بدون خواندن اعداد واقعی.
- استفاده از Benchmark نامرتبط با Workload واقعی.
سوالات متداول درباره Benchmark CPU
Benchmark CPU چیست؟
روشی برای اندازه گیری
Performance پردازنده
در یک Workload
و شرایط مشخص است.
بهترین Benchmark CPU کدام است؟
Benchmark واحدی
برای همه کاربردها
بهترین نیست.
Test باید با Workload
مورد نظر مرتبط باشد.
Synthetic Benchmark معتبر است؟
بله،
اگر درست تفسیر شود.
اما نباید به تنهایی
نماینده تمام Applicationهای واقعی
در نظر گرفته شود.
چرا نتیجه یک CPU در سایت های مختلف متفاوت است؟
تفاوت Platform،
Cooling،
Power،
Software،
Firmware
و Test Method
می تواند نتیجه را تغییر دهد.
چند بار باید Benchmark اجرا شود؟
عدد ثابتی برای همه Testها
وجود ندارد،
اما تکرار باید به اندازه ای باشد
که Variance و Repeatability
قابل ارزیابی باشند.
Mean بهتر است یا Median؟
بستگی به توزیع داده دارد.
Mean اطلاعات مفیدی می دهد،
اما Median نسبت به Outlier
مقاوم تر است.
Benchmark کوتاه بهتر است یا طولانی؟
هرکدام سؤال متفاوتی
را پاسخ می دهند.
تست کوتاه Burst Performance
و تست طولانی Sustained Performance
را بهتر نشان می دهد.
اختلاف 1 درصدی بین دو CPU مهم است؟
الزاماً خیر.
باید Variance
و خطای Test
نیز بررسی شود.
آیا Benchmark می تواند برای بررسی سیستم استوک استفاده شود؟
بله.
اختلاف غیرعادی
با سیستم های مشابه
می تواند نشانه ای
برای بررسی Thermal،
Power
یا Configuration باشد.
Benchmark بیشتر بهتر است یا کمتر؟
به Metric بستگی دارد.
در Score معمولاً عدد بالاتر
و در زمان انجام Task
معمولاً عدد پایین تر بهتر است.
واژه های جدید این فصل برای واژه نامه نهایی کتاب
- Benchmark: آزمایش استاندارد برای اندازه گیری Performance.
- Methodology: روش و مجموعه قواعد اجرای Test.
- Synthetic Benchmark: Workload طراحی شده برای اندازه گیری کنترل شده.
- Real-World Benchmark: Test مبتنی بر Application یا Workflow واقعی.
- Microbenchmark: Test کوچک برای اندازه گیری یک رفتار مشخص.
- Latency: زمان لازم برای تکمیل عملیات یا پاسخ.
- Throughput: مقدار کار تکمیل شده در واحد زمان.
- Warm-up: اجرای مقدماتی پیش از Measurement اصلی.
- Variance: میزان پراکندگی نتایج.
- Mean: میانگین حسابی نتایج.
- Median: مقدار میانی مجموعه مرتب شده.
- Outlier: داده ای با فاصله غیرمعمول از سایر نتایج.
- Repeatability: توانایی ایجاد نتایج مشابه در تکرار یک Test.
- Reproducibility: امکان بازتولید نتیجه تحت شرایط مشابه.
- Burst Performance: Performance قابل دستیابی در مدت کوتاه.
- Sustained Performance: Performance قابل حفظ در زمان طولانی.
- Tail Latency: Latency مربوط به بخش کندتر توزیع پاسخ ها.
- Cherry Picking: انتخاب گزینشی نتایج مطلوب و نادیده گرفتن بقیه.
- Energy to Complete: انرژی کل لازم برای تکمیل یک Task.
خلاصه فصل
Benchmark
ابزار اندازه گیری است،
نه یک عدد جادویی
برای تعیین قدرت مطلق CPU.
هر نتیجه
فقط در چارچوب
Workload،
Platform،
Power،
Cooling،
Software
و Methodology
همان Test
معنا دارد.
Benchmark حرفه ای
باید قابل تکرار،
شفاف
و دارای Test Configuration
مشخص باشد.
تست های کوتاه
بیشتر Burst Performance
و تست های طولانی
Sustained Performance
را آشکار می کنند.
تکرار Test،
بررسی Variance،
Mean،
Median
و Outlier
کمک می کند
بفهمیم اختلاف مشاهده شده
واقعی است
یا بخشی از Noise.
Good Benchmark
=
Relevant Workload
+
Controlled Conditions
+
Repeated Measurements
+
Transparent Methodology
+
Correct Interpretation
Benchmark خوب قرار نیست فقط بگوید کدام CPU عدد بزرگ تری دارد؛
باید نشان دهد کدام پردازنده، در چه کاری، تحت چه شرایطی،
با چه توان و دمایی و با چه میزان پایداری عملکرد بهتری ارائه می کند.
سریع تر کردن یک قطعه فقط زمانی مفید است که همان قطعه واقعاً عامل محدودکننده سیستم باشد
Bottleneck چیست و چگونه بفهمیم CPU عامل محدودکننده Performance است؟
یکی از رایج ترین اصطلاحات
هنگام صحبت درباره Performance سیستم،
Bottleneck
یا گلوگاه است.
گاهی گفته می شود:
CPU Bottleneck
یا:
GPU Bottleneck
اما Bottleneck
یک ویژگی دائمی
برای یک قطعه نیست.
عامل محدودکننده
می تواند با تغییر:
- Software،
- Workload،
- Resolution،
- Settings،
- Data Set،
- تعداد Threadها،
- Power Limit،
- Temperature،
- و حتی مرحله اجرای همان برنامه
تغییر کند.
Bottleneck
=
Current Limiting Factor
در این فصل چه چیزهایی یاد می گیریم؟
- Bottleneck دقیقاً چیست.
- چرا هر سیستم همیشه نوعی محدودیت دارد.
- CPU Bottleneck چیست.
- چرا CPU Usage صد درصد شرط CPU Bottleneck نیست.
- چرا Usage پایین هم CPU Bottleneck را رد نمی کند.
- Single-Thread Bottleneck چیست.
- Multi-Thread Bottleneck چیست.
- GPU Limit چگونه از CPU Limit جدا می شود.
- Thermal Limit چیست.
- Power Limit چیست.
- Software Bottleneck چیست.
- I/O Wait چگونه روی CPU اثر می گذارد.
- چرا Bottleneck با Workload تغییر می کند.
- چگونه Bottleneck را با آزمایش پیدا کنیم.
- چرا Bottleneck Calculatorها همیشه قابل اعتماد نیستند.
Bottleneck دقیقاً چیست؟
در یک سیستم،
چند بخش مختلف
برای انجام Workload
با یکدیگر همکاری می کنند.
سرعت نهایی
می تواند توسط بخشی
محدود شود که در آن لحظه
ظرفیت کافی
برای پاسخ به تقاضای Workload
ندارد.
به این عامل:
Performance Bottleneck
گفته می شود.
به زبان ساده:
System Performance
→
Limited by the Current Slowest Relevant Stage
آیا هر سیستم Bottleneck دارد؟
از دید مهندسی،
هر Workload
در نهایت توسط
یک یا چند عامل
محدود می شود.
اگر هیچ محدودیتی
وجود نداشت،
Performance می توانست
بدون پایان
افزایش پیدا کند.
بنابراین وجود Bottleneck
الزاماً به معنی
بد بودن سیستم نیست.
سؤال مهم این است:
«عامل محدودکننده چیست
و آیا تغییر آن
برای کاربرد مورد نظر
ارزش دارد؟»
چرا Bottleneck ثابت نیست؟
Bottleneck
به شرایط اجرای Workload
وابسته است.
برای مثال،
یک سیستم ممکن است
هنگام یک عملیات
CPU-Limited
باشد،
اما چند ثانیه بعد
در مرحله دیگری
I/O-Limited شود.
Bottleneck
=
Function of
Workload
+
Software
+
Hardware
+
Configuration
+
Time
CPU Bottleneck چیست؟
CPU Bottleneck
زمانی رخ می دهد
که توان پردازشی
یا سرعت پاسخ CPU
عامل اصلی محدودکننده
Performance مورد اندازه گیری باشد.
در چنین شرایطی
افزایش توان سایر بخش ها
ممکن است Performance
را به شکل محسوسی
افزایش ندهد.
اما افزایش Performance CPU
می تواند نتیجه را
بهتر کند.
Faster CPU
→
Measurable Performance Gain
این یکی از نشانه های مهم
CPU-Limited بودن
Workload است.
آیا CPU Usage صد درصد یعنی CPU Bottleneck؟
نه همیشه.
CPU Usage بالا
نشان می دهد
منابع پردازنده
به شدت درگیر هستند،
اما برای تشخیص Bottleneck
باید رفتار کل Workload
بررسی شود.
ممکن است CPU
تقریباً به طور کامل
مشغول باشد،
اما Performance نهایی
توسط عامل دیگری
نیز محدود شود.
آیا CPU Usage پایین یعنی CPU Bottleneck نداریم؟
خیر.
این یکی از مهم ترین
اشتباهات در تحلیل CPU است.
فرض کنید CPU
دارای 16 Hardware Thread
باشد،
اما Application
فقط بتواند
از یک Thread اصلی
استفاده کند.
ممکن است
همان Thread
کاملاً اشباع شده باشد،
در حالی که بسیاری
از Coreها بیکارند.
در نتیجه Total CPU Usage
ممکن است پایین به نظر برسد،
اما Workload همچنان
CPU-Limited باشد.
Total CPU Usage
میانگینی از فعالیت
منابع پردازشی مختلف
ارائه می دهد.
اگر یک Thread حیاتی
به سقف Performance
یک Core برسد،
ممکن است همان Thread
کل Application
را محدود کند.
Low Total CPU Usage
≠
No CPU Bottleneck
Single-Thread Bottleneck چیست؟
بعضی Workloadها
دارای یک مسیر اصلی
یا Critical Thread
هستند.
اگر این Thread
نتواند سریع تر
اجرا شود،
افزایش تعداد Coreها
الزاماً Performance
را افزایش نمی دهد.
Critical Thread at Limit
→
Application Progress Limited
در چنین شرایطی
Per-Core Performance،
IPC،
Frequency
و Latency
اهمیت زیادی پیدا می کنند.
Multi-Thread CPU Bottleneck چیست؟
در Workloadهای
Parallel،
تعداد زیادی Thread
می توانند همزمان
CPU را درگیر کنند.
اگر بیشتر Coreهای قابل استفاده
مشغول باشند
و Workload
قابلیت Scaling داشته باشد،
افزایش منابع CPU
ممکن است Throughput
را افزایش دهد.
این حالت
در برخی:
- Renderها،
- Compileها،
- Encodeها،
- Simulationها،
- Data Processingها،
- و Server Workloadها
دیده می شود.
چرا اضافه کردن Core همیشه Bottleneck را برطرف نمی کند؟
Software
باید بتواند
Workload را میان Coreها
تقسیم کند.
بعضی قسمت های برنامه
قابل Parallel شدن هستند
و بعضی نیستند.
همچنین Synchronization،
Communication
و Shared Resourceها
می توانند Scaling
را محدود کنند.
More Cores
≠
Linear Performance Scaling
تفاوت CPU Bottleneck و GPU Bottleneck چیست؟
در Workloadهایی
که CPU و GPU
با یکدیگر همکاری می کنند،
هرکدام می توانند
عامل محدودکننده باشند.
اگر GPU
برای تکمیل کار خود
به زمان بیشتری نیاز داشته باشد
و CPU منتظر آن بماند،
افزایش Performance CPU
ممکن است تاثیر کمی داشته باشد.
در این حالت
Workload بیشتر:
GPU-Limited
است.
جزئیات معماری و Bottleneckهای GPU
متعلق به دانشنامه مستقل GPU هستند؛
در این فصل فقط رابطه آن
با محدودیت CPU
بررسی می شود.
CPU Bottleneck در Gaming چگونه ایجاد می شود؟
CPU در Game
وظایف مختلفی
بر عهده دارد.
بسته به Engine،
این وظایف می توانند شامل:
- Game Logic،
- Physics Preparation،
- Animation Processing،
- AI Logic،
- Draw Call Preparation،
- Asset Management،
- و هماهنگی Threadها
باشند.
اگر CPU نتواند
Frame بعدی را
به اندازه کافی سریع
آماده کند،
GPU ممکن است
منتظر CPU بماند.
CPU Prepares Work
↓
GPU Processes Work
↓
Frame Completed
اگر مرحله CPU
کندتر باشد:
CPU-Limited
و اگر مرحله GPU
کندتر باشد:
GPU-Limited
چرا تغییر Resolution می تواند Bottleneck را تغییر دهد؟
در بسیاری از Gameها
افزایش Resolution
بار پردازشی GPU
را افزایش می دهد.
اگر GPU
زمان بیشتری
برای تولید هر Frame
نیاز داشته باشد،
محدودیت CPU
ممکن است کمتر دیده شود.
برعکس،
کاهش بار GPU
می تواند اختلاف
میان CPUها
را آشکارتر کند.
بنابراین:
Same CPU + Same GPU
≠
Same Bottleneck at Every Setting
چرا CPU برای Frame Rate بالا مهم تر می شود؟
هرچه تعداد Frame
در ثانیه بیشتر شود،
CPU نیز باید
کار مربوط به هر Frame
را با فاصله زمانی
کوتاه تری آماده کند.
برای مثال،
بودجه زمانی نظری
برای هر Frame:
60 FPS
→
16.67 ms per Frame
120 FPS
→
8.33 ms per Frame
240 FPS
→
4.17 ms per Frame
بنابراین دستیابی
به Frame Rate بسیار بالا
می تواند فشار بیشتری
روی مسیرهای حساس
به CPU وارد کند.
CPU Bottleneck در CAD و نرم افزارهای مهندسی چگونه است؟
نرم افزارهای مهندسی
یک رفتار واحد ندارند.
بعضی عملیات
ممکن است بیشتر
به Performance یک Thread
وابسته باشند،
در حالی که عملیات دیگر
قابلیت Parallelism
بیشتری داشته باشند.
بنابراین عبارت:
«این نرم افزار CPU محور است»
به تنهایی
اطلاعات کافی
برای انتخاب پردازنده
ارائه نمی دهد.
باید Operation واقعی
مشخص شود.
CPU Bottleneck در Rendering چگونه است؟
اگر Render Engine
از CPU Rendering
استفاده کند
و بتواند Workload
را میان تعداد زیادی Core
تقسیم کند،
CPU می تواند
عامل اصلی محدودکننده باشد.
در چنین شرایطی
افزایش Multi-Core Throughput
می تواند زمان Render
را کاهش دهد.
اما اگر Render
روی GPU انجام شود،
تحلیل Bottleneck
متفاوت خواهد بود.
Bottleneck در Compilation چیست؟
Compilation
می تواند ترکیبی
از مراحل Parallel
و Serial باشد.
بعضی فایل ها
می توانند همزمان
Compile شوند،
اما مراحل دیگری
ممکن است Parallelism
محدودتری داشته باشند.
بنابراین Performance
ممکن است به ترکیبی از:
- Per-Core Performance،
- Core Count،
- Cache Behavior،
- و I/O
وابسته باشد.
اگر CPU منتظر Data باشد چه اتفاقی می افتد؟
CPU همیشه
محدود به قدرت محاسباتی
خودش نیست.
گاهی Processor
آماده انجام کار است،
اما Data مورد نیاز
هنوز در دسترس نیست.
در چنین شرایطی
افزایش Frequency
یا Core Count
ممکن است سود محدودی
ایجاد کند.
CPU Waiting for Data
→
Execution Resources Underused
جزئیات سیستم حافظه
و Storage
در دانشنامه های مستقل
بررسی می شوند.
Compute-Bound یعنی چه؟
Workload
زمانی Compute-Bound
نامیده می شود
که Performance آن
عمدتاً توسط ظرفیت
محاسباتی Processor
محدود شود.
در چنین شرایطی
CPU سریع تر
می تواند
Performance بیشتری
ایجاد کند.
Memory-Bound یعنی چه؟
اگر CPU
بخش قابل توجهی
از زمان خود را
منتظر دسترسی
به Data بماند،
Workload ممکن است
بیشتر توسط Memory System
محدود شده باشد.
در این حالت
افزایش توان محاسباتی CPU
الزاماً افزایش Performance
متناسبی ایجاد نمی کند.
جزئیات Bandwidth،
Latency،
Channel،
DRAM Architecture
و Timingها
به دانشنامه RAM
منتقل می شوند.
Software Bottleneck چیست؟
همیشه Hardware
عامل محدودکننده نیست.
Software ممکن است
نتواند از منابع Hardware
به خوبی استفاده کند.
برای مثال:
- Parallelism محدود،
- Lock Contention،
- Synchronization Overhead،
- Algorithm ناکارآمد،
- Thread Scheduling نامناسب،
- یا Code Path غیر بهینه
می توانند Performance
را محدود کنند.
آیا CPU سریع تر Software Bottleneck را حل می کند؟
گاهی تا حدی،
اما نه همیشه.
اگر برنامه
فقط یک Thread
ایجاد کند،
CPU با Per-Core Performance
بیشتر ممکن است
آن Thread را سریع تر کند.
اما اضافه کردن
تعداد زیادی Core
ممکن است تقریباً
هیچ تاثیری نداشته باشد.
اگر محدودیت
از Algorithm
یا Synchronization
باشد نیز
Hardware سریع تر
فقط بخشی از مشکل
را کاهش می دهد.
Thermal Bottleneck چیست؟
اگر CPU
به محدودیت دمایی
نزدیک شود،
سیستم مدیریت توان
ممکن است Frequency
یا Power
را کاهش دهد.
در نتیجه
CPU نمی تواند
Performance بالقوه خود
را حفظ کند.
Temperature Limit
→
Frequency / Power Adjustment
→
Lower Sustained Performance
Power Limit چگونه CPU را محدود می کند؟
حتی اگر Temperature
مناسب باشد،
CPU ممکن است
به Power Limit
تعیین شده
توسط Platform
برسد.
در این حالت
Processor نمی تواند
بدون عبور از
Power Budget
Frequency بیشتری
حفظ کند.
این محدودیت
در Laptop،
Mini PC،
All-in-One،
Desktop،
Workstation
و Server
می تواند وجود داشته باشد،
هرچند مقدار و سیاست آن
متفاوت است.
CPU می تواند
کاملاً خنک باشد
اما به Power Limit
برسد.
همچنین ممکن است
Power Limit هنوز
اجازه مصرف بیشتری بدهد،
اما Cooling
نتواند Heat
را دفع کند
و CPU به Thermal Limit
برسد.
Power Limited
≠
Thermal Limited
برای تشخیص درست
باید هر دو
جداگانه بررسی شوند.
Bottleneck در Laptop چرا پیچیده تر است؟
در Laptop
محدودیت های:
- Cooling،
- Power،
- Battery،
- Chassis،
- Noise Target،
- و Firmware Policy
می توانند
Performance CPU
را تغییر دهند.
بنابراین دو Laptop
با CPU یکسان
الزاماً رفتار
Performance یکسانی ندارند.
Bottleneck در Desktop چگونه بررسی می شود؟
Desktop
معمولاً فضای بیشتری
برای Cooling
و Power Delivery
دارد.
اما همچنان:
- Motherboard Configuration،
- Cooling،
- Power Limits،
- Software،
- و Workload
می توانند
عامل محدودکننده باشند.
Bottleneck در Workstation چیست؟
Workstation Workloadها
بسیار متنوع هستند.
یک مرحله
ممکن است
Single-Thread Limited
باشد،
مرحله بعد
Multi-Core Limited،
و مرحله دیگری
منتظر I/O
یا Accelerator باشد.
به همین دلیل
انتخاب CPU Workstation
باید براساس Workflow واقعی
انجام شود،
نه فقط یک Benchmark.
Bottleneck در Server چگونه متفاوت است؟
در Server
علاوه بر Performance
یک Task،
باید رفتار سیستم
تحت Concurrency بالا
نیز بررسی شود.
محدودیت می تواند
از:
- CPU Core Capacity،
- Synchronization،
- Memory Access،
- Network I/O،
- Storage I/O،
- Software Architecture،
- یا Queueing
ایجاد شود.
Queue چگونه نشانه Bottleneck می شود؟
اگر Work
سریع تر از توان پردازش
وارد سیستم شود،
Taskها ممکن است
در صف قرار بگیرند.
Arrival Rate
>
Processing Rate
→
Queue Growth
→
Higher Latency
رشد Queue
می تواند نشانه ای
از رسیدن سیستم
به Capacity Limit
باشد.
Utilization و Bottleneck چه تفاوتی دارند؟
Utilization
میزان استفاده
از یک Resource
را نشان می دهد.
Bottleneck
مشخص می کند
کدام عامل
Performance نهایی
را محدود کرده است.
این دو مفهوم
مرتبط هستند،
اما یکسان نیستند.
High Utilization
≠
Automatic Proof of Bottleneck
چگونه بفهمیم CPU واقعاً Bottleneck است؟
بهترین روش
فقط نگاه کردن
به یک درصد Usage نیست.
باید یک فرضیه
بسازیم
و آن را آزمایش کنیم.
سؤال اصلی:
«اگر ظرفیت CPU را تغییر دهیم،
آیا Metric مورد نظر
به شکل قابل اندازه گیری
تغییر می کند؟»
Observe Problem
↓
Identify Target Metric
↓
Measure CPU Behavior
↓
Change One Relevant Variable
↓
Repeat Test
↓
Compare Result
↓
Confirm or Reject CPU Bottleneck
تغییر Frequency چگونه به تشخیص کمک می کند؟
در یک آزمایش کنترل شده،
اگر افزایش Performance CPU
باعث افزایش قابل اندازه گیری
در Metric نهایی شود،
این می تواند نشانه ای
از حساسیت Workload
به CPU باشد.
اما این آزمایش
باید با دقت انجام شود،
زیرا تغییر Frequency
می تواند Power
و Thermal Behavior
را نیز تغییر دهد.
تغییر بار GPU چگونه به تشخیص CPU Limit کمک می کند؟
در Workloadهای مشترک
CPU و GPU،
اگر کاهش بار GPU
Performance را
به شکل محسوسی افزایش ندهد،
ممکن است عامل محدودکننده
در بخش دیگری باشد.
اگر Performance
با کاهش بار GPU
به شدت افزایش پیدا کند،
GPU Limit
محتمل تر است.
این فقط یک نشانه است
و باید همراه
با سایر Measurementها
تفسیر شود.
چرا Frame Time از FPS تنها اطلاعات بیشتری می دهد؟
Average FPS
میانگین Performance
را نشان می دهد،
اما ممکن است
وقفه های کوتاه
را پنهان کند.
Frame Time
مدت زمان تولید
هر Frame
را نشان می دهد.
بررسی تغییرات Frame Time
می تواند برای پیدا کردن
Stutter
و رفتار ناپایدار
مفید باشد.
FPS
≈
1000
/
Frame Time in ms
چرا Average Performance همیشه کافی نیست؟
تجربه واقعی کاربر
فقط به میانگین
وابسته نیست.
اگر Performance
گاهی برای مدت کوتاه
افت زیادی داشته باشد،
Average ممکن است
همچنان خوب به نظر برسد.
برای همین
در بعضی Workloadها
توزیع Latency
یا معیارهایی
برای رفتار بدترین بخش
نمونه ها
نیز بررسی می شوند.
Bottleneck Calculator چیست و چرا باید با احتیاط استفاده شود؟
بعضی وب سایت ها
با دریافت مدل CPU
و GPU
یک درصد
با عنوان Bottleneck
نمایش می دهند.
مشکل این است
که Bottleneck
یک درصد ثابت
برای ترکیب دو قطعه نیست.
همان سیستم
در دو Workload مختلف
می تواند Bottleneck
متفاوتی داشته باشد.
CPU + GPU
≠
One Universal Bottleneck Percentage
چنین عددی
بدون تعریف:
- Workload،
- Resolution،
- Settings،
- Target FPS،
- Software،
- Power،
- و Platform
معنای فنی دقیقی ندارد.
Bottleneck
باید اندازه گیری شود،
نه اینکه فقط
از نام دو قطعه
حدس زده شود.
Bottleneck چگونه در تصمیم ارتقا کمک می کند؟
هدف تحلیل Bottleneck
این نیست که
حتماً تمام محدودیت ها
حذف شوند.
هدف این است
بفهمیم ارتقای کدام بخش
بیشترین تاثیر
بر Workload واقعی
خواهد داشت.
اگر سیستم
GPU-Limited باشد،
ارتقای CPU
ممکن است سود کمی داشته باشد.
اگر Workload
Single-Thread CPU-Limited باشد،
افزایش Core Count
بدون افزایش Per-Core Performance
ممکن است موثر نباشد.
بنابراین:
Best Upgrade
=
Upgrade the Relevant Limiting Resource
سیستم Balanced یعنی سیستم بدون Bottleneck؟
خیر.
سیستم بدون هیچ محدودیتی
وجود ندارد.
Balanced System
یعنی منابع سیستم
متناسب با Workload
و هدف کاربر
انتخاب شده اند،
به طوری که هزینه زیادی
برای منابعی که استفاده نمی شوند
پرداخت نشده باشد.
تحلیل Bottleneck در سیستم استوک چه اهمیتی دارد؟
هنگام خرید
یک سیستم استوک،
نباید فقط
مدل CPU
را بررسی کرد.
ممکن است یک CPU
هنوز برای Workload مورد نظر
Performance کافی داشته باشد،
اما سیستم به علت:
- Cooling نامناسب،
- Power Configuration،
- Storage کند،
- محدودیت GPU،
- Software Configuration،
- یا سایر اجزای Platform
Performance مطلوب
ارائه ندهد.
این موضوع برای:
- لپ تاپ استوک،
- Desktop استوک،
- Workstation استوک،
- Mini PC،
- All-in-One،
- و Server دست دوم
صدق می کند.
زیرساخت فنی — گلوگاه چگونه در یک زنجیره پردازش شکل می گیرد؟
یک Workload واقعی
معمولاً یک عملیات
منفرد نیست.
Data
از چند مرحله
عبور می کند.
Input
↓
Software
↓
CPU Processing
↓
Data Access
↓
Optional Accelerator / GPU
↓
I/O
↓
Output
اگر یکی از مراحل
نتواند با سرعت
مراحل دیگر
هماهنگ شود،
Work ممکن است
پشت آن مرحله
منتظر بماند.
این انتظار
می تواند به صورت:
- Queue،
- Idle Time،
- Low Utilization در بخش دیگر،
- Higher Latency،
- Lower Throughput،
- یا Stutter
دیده شود.
نکته مهم این است
که گلوگاه
می تواند در طول اجرای
همان Workload
جابه جا شود.
Bottleneck at Time A
≠
Bottleneck at Time B
فرض کنید CPU فعلی
برای یک Workload
می تواند داده را
سریع تر از بخش بعدی
Pipeline آماده کند.
اگر CPU
دو برابر سریع تر شود،
بخش بعدی همچنان
با همان سرعت قبلی
کار خواهد کرد.
بنابراین Performance نهایی
ممکن است تقریباً
تغییر نکند.
Faster CPU
+
Non-CPU Bottleneck
→
Small or No Performance Gain
به همین دلیل
قبل از ارتقا
باید عامل محدودکننده
واقعی پیدا شود.
چک لیست تشخیص CPU Bottleneck
- Workload دقیق را مشخص کنید.
- Metric مورد نظر را تعیین کنید؛ زمان، FPS، Throughput یا Latency.
- Total CPU Usage را بررسی کنید، اما به آن اکتفا نکنید.
- فعالیت Coreها و Threadهای مهم را بررسی کنید.
- Frequency واقعی CPU را زیر Load مشاهده کنید.
- Temperature را بررسی کنید.
- Power Limit را بررسی کنید.
- Thermal Throttling را بررسی کنید.
- مشخص کنید CPU در حال محاسبه است یا منتظر Data.
- در Workload مشترک، رفتار GPU یا Accelerator را بررسی کنید.
- Background Processها را کنترل کنید.
- Workload را چند بار تکرار کنید.
- فقط یک متغیر را در هر آزمایش تغییر دهید.
- تغییر Metric نهایی را اندازه گیری کنید.
- اگر افزایش ظرفیت CPU نتیجه را بهتر کرد، CPU Limit محتمل تر است.
- اگر نتیجه تقریباً تغییر نکرد، عامل محدودکننده دیگری را بررسی کنید.
نشانه های احتمالی انواع محدودیت
| محدودیت احتمالی | نشانه قابل بررسی | آزمایش مفید |
|---|---|---|
| Single-Thread CPU Limit | یک Thread یا مسیر اصلی در سقف Performance | بررسی حساسیت Workload به Per-Core Performance |
| Multi-Core CPU Limit | استفاده گسترده از Coreها و Scaling مناسب | مقایسه با CPU دارای Throughput بیشتر |
| GPU Limit | CPU ظرفیت اضافه دارد و GPU عامل کندتر است | کاهش بار GPU و بررسی تغییر Performance |
| Thermal Limit | افت Frequency همزمان با افزایش Temperature | بررسی رفتار Sustained Load و Cooling |
| Power Limit | CPU به سقف Power مجاز می رسد | بررسی Telemetry و Power Configuration |
| Software Limit | Hardware آزاد است اما Performance Scaling نمی کند | بررسی Threading، Algorithm و Software Behavior |
| I/O Limit | CPU بخشی از زمان منتظر Data یا I/O است | اندازه گیری Wait و تغییر منبع I/O |
- فرض اینکه هر سیستم فقط یک Bottleneck ثابت دارد.
- استفاده از Total CPU Usage به عنوان تنها معیار.
- فرض اینکه CPU Usage پایین یعنی CPU Limit وجود ندارد.
- فرض اینکه CPU Usage صد درصد همیشه ثابت می کند CPU گلوگاه است.
- نادیده گرفتن Critical Thread.
- فرض اینکه Core بیشتر هر نوع CPU Bottleneck را حل می کند.
- نادیده گرفتن Software Scaling.
- نادیده گرفتن Synchronization و Lockها.
- اشتباه گرفتن Power Limit با Thermal Limit.
- نادیده گرفتن Cooling.
- نادیده گرفتن I/O Wait.
- فرض اینکه Bottleneck در تمام مراحل یک Workflow ثابت است.
- مقایسه CPU و GPU فقط براساس درصد Utilization.
- اعتماد کامل به Bottleneck Calculator.
- پذیرفتن یک درصد ثابت برای Bottleneck.
- ارتقای CPU بدون اندازه گیری عامل محدودکننده.
- فرض اینکه سیستم Balanced هیچ Bottleneckی ندارد.
- تغییر چند متغیر همزمان هنگام عیب یابی.
- نادیده گرفتن Frame Time یا Latency و تمرکز فقط بر Average.
- تعمیم نتیجه یک Benchmark به همه Workloadها.
سوالات متداول درباره CPU Bottleneck
CPU Bottleneck یعنی چه؟
یعنی Performance مورد نظر
در شرایط فعلی
عمدتاً توسط ظرفیت
یا سرعت CPU
محدود شده است.
آیا CPU باید صد درصد استفاده شود تا Bottleneck باشد؟
خیر.
ممکن است یک Thread حیاتی
محدود شده باشد
در حالی که سایر Coreها
استفاده کمی دارند.
CPU Usage صد درصد یعنی حتماً CPU Bottleneck داریم؟
الزاماً خیر.
باید Metric نهایی،
رفتار سایر منابع
و Workload
نیز بررسی شوند.
آیا Bottleneck بد است؟
وجود یک عامل محدودکننده
طبیعی است.
مسئله این است که
آیا این محدودیت
مانع رسیدن سیستم
به Performance مورد نیاز
می شود یا خیر.
آیا Core بیشتر CPU Bottleneck را حل می کند؟
فقط اگر Workload
بتواند از Coreهای بیشتر
استفاده کند.
در محدودیت Single-Thread
ممکن است تاثیر کمی داشته باشد.
چرا Bottleneck با Resolution تغییر می کند؟
چون تغییر Resolution
می تواند بار GPU
و زمان پردازش هر Frame
را تغییر دهد
و در نتیجه عامل محدودکننده
جابه جا شود.
Bottleneck Calculator قابل اعتماد است؟
برای تعیین یک درصد دقیق
و جهانی خیر.
Bottleneck به Workload
و شرایط اجرا وابسته است.
چگونه مطمئن شویم CPU گلوگاه است؟
با Measurement،
بررسی Threadها،
Frequency،
Power،
Temperature
و آزمایش کنترل شده
تغییر ظرفیت CPU.
آیا یک CPU در همه برنامه ها Bottleneck یکسانی ایجاد می کند؟
خیر.
Bottleneck وابسته
به Workload است.
برای خرید سیستم استوک بررسی Bottleneck مهم است؟
بله.
چون Performance سیستم
فقط به مدل CPU
وابسته نیست
و Platform،
Cooling،
Power
و سایر اجزا
نیز می توانند
محدودکننده باشند.
واژه های جدید این فصل برای واژه نامه نهایی کتاب
- Bottleneck: عامل محدودکننده Performance در شرایط و Workload مشخص.
- CPU-Limited: شرایطی که CPU عامل اصلی محدودکننده Performance است.
- GPU-Limited: شرایطی که GPU عامل اصلی محدودکننده Performance است.
- Compute-Bound: Workload محدودشده عمدتاً توسط ظرفیت محاسباتی.
- Memory-Bound: Workloadی که Performance آن به شدت توسط دسترسی به حافظه محدود می شود.
- Critical Thread: Threadی که سرعت پیشرفت Application به اجرای آن وابستگی زیادی دارد.
- Utilization: میزان استفاده از یک Resource.
- Queue: صف Workهایی که منتظر پردازش هستند.
- I/O Wait: زمانی که Execution منتظر تکمیل عملیات ورودی یا خروجی است.
- Thermal Limit: محدودیت ناشی از رسیدن به شرایط دمایی تعیین شده.
- Power Limit: محدودیت ناشی از سقف Power مجاز.
- Software Bottleneck: محدودیتی که از ساختار یا رفتار Software ایجاد می شود.
- Frame Time: زمان لازم برای تولید یک Frame.
- Balanced System: سیستمی که منابع آن متناسب با Workload و هدف طراحی انتخاب شده اند.
خلاصه فصل
Bottleneck
یک ویژگی ثابت
برای CPU یا سیستم نیست.
عامل محدودکننده
به Workload،
Software،
Configuration،
Power،
Thermal Conditions
و مرحله اجرای برنامه
وابسته است.
Total CPU Usage
به تنهایی
برای تشخیص CPU Bottleneck
کافی نیست.
یک Critical Thread
می تواند Application
را محدود کند،
حتی زمانی که
بخش بزرگی از CPU
بیکار است.
از سوی دیگر،
CPU Usage بالا
نیز به تنهایی
ثابت نمی کند
که CPU تنها
عامل محدودکننده است.
تشخیص صحیح
با Measurement
و آزمایش کنترل شده
انجام می شود.
Measure
→
Form Hypothesis
→
Change One Variable
→
Retest
→
Identify Limiting Factor
هدف از تحلیل Bottleneck پیدا کردن ضعیف ترین قطعه روی کاغذ نیست؛
هدف پیدا کردن عاملی است که در Workload واقعی، همین حالا Performance
مورد نیاز ما را محدود کرده است.
مشخصات روی کاغذ می گویند CPU چه توانایی هایی دارد؛ مانیتورینگ نشان می دهد در همین لحظه واقعاً چه کاری انجام می دهد
چگونه عملکرد واقعی CPU را مانیتور و تحلیل کنیم؟
برای تحلیل Performance پردازنده،
دانستن مدل CPU،
تعداد Core
و Maximum Frequency
کافی نیست.
باید ببینیم پردازنده
هنگام اجرای Workload واقعی
چگونه رفتار می کند.
برای این کار
از مجموعه ای از داده های
Monitoring
یا Telemetry
استفاده می کنیم.
CPU Telemetry
→
Usage
+
Frequency
+
Effective Clock
+
Temperature
+
Power
+
Limit Indicators
هیچ کدام از این اعداد
به تنهایی
تصویر کاملی از CPU
ارائه نمی دهند.
در این فصل چه چیزهایی یاد می گیریم؟
- CPU Monitoring چیست.
- Telemetry چیست.
- CPU Usage چگونه تفسیر می شود.
- Total Usage و Per-Core Usage چه تفاوتی دارند.
- CPU Clock چیست.
- Effective Clock چیست.
- چرا Clock گزارش شده همیشه Performance واقعی را نشان نمی دهد.
- Temperature چگونه تحلیل می شود.
- Package Power چیست.
- Power Limit چگونه شناسایی می شود.
- Thermal Throttling چیست.
- Current Limit چیست.
- چرا Sampling Interval مهم است.
- Average، Minimum و Maximum چه کاربردی دارند.
- چگونه رفتار CPU را زیر Load تحلیل کنیم.
- چگونه سیستم استوک را با Telemetry بررسی کنیم.
CPU Monitoring چیست؟
CPU Monitoring
یعنی مشاهده و ثبت
وضعیت عملیاتی پردازنده
هنگام اجرای سیستم.
به جای اینکه فقط
مشخصات اسمی CPU
را بخوانیم،
رفتار واقعی آن
را اندازه گیری می کنیم.
برای مثال:
- چه مقدار از CPU درگیر است؟
- کدام Coreها فعال هستند؟
- Frequency واقعی چقدر است؟
- CPU چه دمایی دارد؟
- چه مقدار Power مصرف می کند؟
- آیا به محدودیت حرارتی رسیده است؟
- آیا Power Limit فعال شده است؟
- آیا Performance در طول زمان افت می کند؟
Telemetry چیست؟
Telemetry
مجموعه داده هایی است
که درباره وضعیت
و رفتار Hardware
اندازه گیری یا گزارش می شوند.
این داده ها
ممکن است از:
- Hardware Sensorها،
- Performance Counterها،
- Firmware،
- Operating System،
- Driverها،
- یا Monitoring Software
دریافت شوند.
نکته مهم این است که
تمام مقادیر Telemetry
الزاماً به یک روش
اندازه گیری نمی شوند.
آیا همه اعداد Monitoring مستقیماً توسط Sensor اندازه گیری می شوند؟
خیر.
بعضی مقادیر
مستقیماً از Sensor
یا Registerهای Hardware
خوانده می شوند.
برخی دیگر
ممکن است توسط Software
از داده های مختلف
محاسبه یا تخمین زده شوند.
بنابراین هنگام مقایسه
دو Monitoring Tool
باید بدانیم
آیا هر دو واقعاً
یک Metric
را با یک روش
گزارش می کنند یا خیر.
CPU Usage دقیقاً چه چیزی را نشان می دهد؟
CPU Usage
تلاش می کند نشان دهد
چه مقدار از ظرفیت زمانی
پردازنده
در یک بازه مشخص
در حال انجام Work
بوده است.
اما تفسیر آن
همیشه به سادگی:
100%
=
Maximum CPU Performance
نیست.
Usage
باید همراه
با Frequency،
Core Activity،
Workload
و Limitها
بررسی شود.
Total CPU Usage چیست؟
Total CPU Usage
نمایی کلی
از فعالیت پردازنده
ارائه می دهد.
اگر CPU
تعداد زیادی
Logical Processor
داشته باشد،
Total Usage
می تواند فعالیت آنها
را در یک مقدار کلی
خلاصه کند.
این عدد
برای مشاهده سریع
وضعیت سیستم مفید است،
اما برای تحلیل دقیق
کافی نیست.
چرا Per-Core Usage مهم است؟
ممکن است Total CPU Usage
فقط 20 یا 30 درصد باشد،
اما یک یا چند Core
به شدت درگیر باشند.
این حالت
در Workloadهایی
با Parallelism محدود
اهمیت زیادی دارد.
Total CPU Usage = 25%
می تواند همزمان
با:
Critical Thread ≈ Fully Busy
رخ دهد.
Logical Processor Usage را چگونه تفسیر کنیم؟
سیستم عامل
معمولاً فعالیت
Logical Processorها
را نمایش می دهد.
Logical Processor
الزاماً معادل
یک Physical Core مستقل
نیست.
در پردازنده هایی
که SMT
یا فناوری مشابه دارند،
چند Logical Thread
می توانند منابع
یک Core فیزیکی
را به اشتراک بگذارند.
بنابراین نمودار Usage
باید با شناخت
Topology پردازنده
تفسیر شود.
CPU Clock در ابزارهای مانیتورینگ چیست؟
Monitoring Toolها
معمولاً مقدارهایی
برای Frequency
یا Clock
پردازنده نمایش می دهند.
این مقدار می تواند
نشان دهد CPU
در چه محدوده فرکانسی
فعالیت می کند.
اما باید بدانیم
Frequency گزارش شده
دقیقاً با چه روشی
محاسبه شده است.
یک عدد Clock بالا
الزاماً به معنی
اجرای مفید
با همان نرخ
در تمام بازه زمانی نیست.
Effective Clock چیست؟
Effective Clock
تلاش می کند
فعالیت موثر CPU
را در طول
یک بازه زمانی
بهتر نشان دهد.
CPU مدرن
دائماً می تواند
میان حالت های:
- فعال،
- Idle،
- Sleep،
- Boost،
- و Power-Saving
جابه جا شود.
بنابراین مشاهده
یک Clock لحظه ای
ممکن است تصویر کاملی
از مقدار کار موثر
انجام شده
ارائه نکند.
ممکن است ابزار
Clock بالایی
برای یک Core
گزارش کند،
اما Core
در تمام بازه Sampling
فعال نبوده باشد.
در این حالت
Effective Clock
می تواند مقدار پایین تری
نشان دهد.
Reported Clock
≠
Effective Work Rate
این تفاوت
هنگام بررسی
رفتار Idle،
Light Load
و Burst Workload
اهمیت زیادی دارد.
چرا Maximum Boost Clock را همیشه در Monitoring نمی بینیم؟
Maximum Boost
یک Frequency تضمین شده
برای تمام Coreها
و تمام شرایط نیست.
رسیدن به آن
می تواند به:
- تعداد Coreهای فعال،
- نوع Workload،
- Temperature،
- Power Budget،
- Current Limit،
- Firmware Policy،
- و Silicon Characteristics
وابسته باشد.
بنابراین مشاهده نکردن
Maximum Advertised Boost
در یک Multi-Core Workload
الزاماً نشانه مشکل نیست.
چرا نگاه کردن به یک لحظه از Clock کافی نیست؟
Frequency پردازنده
می تواند در مدت بسیار کوتاه
تغییر کند.
اگر Monitoring Tool
فقط در فواصل مشخص
مقدار را Sample کند،
ممکن است بعضی تغییرات
میان دو Sample
دیده نشوند.
بنابراین برای تحلیل
رفتار واقعی،
روند تغییرات در طول زمان
مهم تر از یک Snapshot
منفرد است.
Temperature CPU را چگونه تفسیر کنیم؟
Temperature
یکی از مهم ترین
Metricهای Monitoring است،
اما عدد دما
به تنهایی
مشخص نمی کند
CPU مشکل دارد یا خیر.
باید بدانیم:
- CPU در Idle است یا Load؟
- Workload کوتاه است یا طولانی؟
- Power Consumption چقدر است؟
- Frequency حفظ شده یا کاهش یافته؟
- Thermal Limit فعال شده یا خیر؟
- مدل و طراحی سیستم چیست؟
آیا دمای بالا همیشه به معنی Thermal Throttling است؟
خیر.
CPU می تواند
در دمای نسبتاً بالا
کار کند
بدون اینکه الزاماً
وارد Thermal Throttling
شده باشد.
برای تشخیص Throttling
باید علاوه بر Temperature،
Limit Indicatorها
و رفتار Frequency
بررسی شوند.
High Temperature
≠
Automatic Thermal Throttling
Thermal Throttling چیست؟
زمانی که CPU
برای رعایت محدودیت حرارتی
مجبور شود
Performance Operating Point
خود را کاهش دهد،
Thermal Throttling
رخ می دهد.
این کاهش می تواند
از طریق تغییر:
- Frequency،
- Voltage،
- Power،
- یا سایر سیاست های مدیریت Performance
انجام شود.
Thermal Limit Reached
→
Performance Adjustment
→
Heat Generation Reduced
CPU Package Power چیست؟
Package Power
مقداری است
که برای توصیف
توان مصرفی بخش های
داخل Package پردازنده
استفاده می شود.
تعریف دقیق آن
می تواند میان Platformها
و روش های Telemetry
متفاوت باشد.
Package Power
را نباید مستقیماً
با:
Total System Power
یکی دانست.
CPU Package Power
≠
Wall Power
≠
Total System Power
این سه Metric
می توانند اهداف
اندازه گیری متفاوتی
داشته باشند.
چگونه بفهمیم CPU به Power Limit رسیده است؟
بعضی پردازنده ها
و Monitoring Toolها
Indicatorهایی
برای محدودیت توان
ارائه می دهند.
اگر CPU
زیر Load سنگین
به Power Budget
تعیین شده برسد،
سیستم ممکن است
Frequency
را برای حفظ
محدودیت توان
تنظیم کند.
این اتفاق
حتی زمانی ممکن است رخ دهد
که Temperature
هنوز پایین تر
از Thermal Limit باشد.
Current Limit چیست؟
علاوه بر Power
و Temperature،
Platform
ممکن است محدودیت هایی
برای Current
داشته باشد.
اگر شرایط بار
به یکی از این Limitها
برسد،
رفتار Frequency
و Performance
می تواند تغییر کند.
بنابراین افت Clock
همیشه به معنی
داغ شدن CPU نیست.
| Limit | عامل اصلی | اثر احتمالی |
|---|---|---|
| Thermal Limit | Temperature | کاهش Operating Point برای کنترل Heat |
| Power Limit | Power Budget | محدود شدن Frequency یا Performance |
| Current Limit | Electrical Current | محدود شدن Operating Point |
| Software / OS Limit | Policy یا Workload | استفاده نشدن کامل از ظرفیت CPU |
| Workload Limit | Parallelism یا Dependency | Coreهای بیشتر الزاماً Performance را افزایش نمی دهند |
رابطه Power، Temperature و Clock چیست؟
این سه Metric
باید در کنار یکدیگر
بررسی شوند.
افزایش Workload
معمولاً می تواند
فعالیت CPU
و Power
را افزایش دهد.
افزایش Power
می تواند Heat بیشتری
تولید کند.
اگر Cooling
نتواند Heat
را با سرعت کافی
دفع کند،
Temperature افزایش می یابد.
Workload ↑
→
CPU Activity ↑
→
Power ↑
→
Heat ↑
→
Temperature ↑
سپس Firmware
و Hardware Control
تلاش می کنند
Operating Point
مناسب را حفظ کنند.
چرا CPU را باید در طول زمان مانیتور کنیم؟
رفتار CPU
در ثانیه های اول
Workload
ممکن است با رفتار آن
پس از چند دقیقه
متفاوت باشد.
در ابتدای Load
ممکن است:
- Temperature پایین باشد،
- Thermal Headroom زیاد باشد،
- Boost بالاتر باشد،
- و Power بیشتری برای مدت کوتاه در دسترس باشد.
پس از گرم شدن سیستم،
CPU ممکن است
به Operating Point
پایدار دیگری برسد.
Initial Performance
≠
Sustained Performance
Sampling Interval چیست؟
Monitoring Software
معمولاً Sensorها
را به صورت پیوسته
و بدون فاصله
نمایش نمی دهد.
در عوض،
در بازه های زمانی مشخص
داده ها را Sample می کند.
به فاصله میان
این نمونه برداری ها:
Sampling Interval
گفته می شود.
Sampling Interval چگونه نتیجه را تغییر می دهد؟
اگر Interval
بسیار طولانی باشد،
تغییرات کوتاه مدت
ممکن است دیده نشوند.
برای مثال
یک Spike کوتاه
در Temperature
یا Frequency
ممکن است
بین دو Sample
اتفاق بیفتد.
در مقابل،
Sampling بسیار سریع
می تواند حجم زیادی
از Data
تولید کند
و تحلیل را دشوارتر کند.
Current، Minimum، Maximum و Average چه تفاوتی دارند؟
| Metric | معنی | کاربرد |
|---|---|---|
| Current | مقدار فعلی یا آخرین Sample | مشاهده وضعیت همین لحظه |
| Minimum | کمترین مقدار ثبت شده | بررسی پایین ترین مقدار در دوره ثبت |
| Maximum | بیشترین مقدار ثبت شده | پیدا کردن Peak |
| Average | میانگین مقدار در بازه ثبت | بررسی رفتار کلی در طول زمان |
فرض کنید CPU
در یک تست طولانی
فقط برای لحظه ای
به Temperature بالایی
رسیده باشد.
نگاه کردن فقط
به ستون Maximum
ممکن است این تصور
را ایجاد کند
که CPU در تمام Test
با همان دما
کار کرده است.
برای تحلیل بهتر
باید روند زمانی،
Average،
Frequency،
Power
و Limit Indicatorها
نیز بررسی شوند.
چرا نمودار زمانی از یک عدد بهتر است؟
یک Snapshot
فقط وضعیت
یک لحظه را نشان می دهد.
اما Time-Series
می تواند رابطه میان:
- Load،
- Clock،
- Temperature،
- Power،
- و Performance
را در طول زمان
آشکار کند.
Time
→
Load ↑
→
Power ↑
→
Temperature ↑
→
Frequency Changes
چرا باید Metricها را با یکدیگر مرتبط کنیم؟
فرض کنید Frequency
ناگهان کاهش یافته است.
فقط از روی این اتفاق
نمی توان علت را فهمید.
باید همزمان بررسی کنیم:
- آیا Workload کاهش یافته؟
- آیا Temperature بالا رفته؟
- آیا Power Limit فعال شده؟
- آیا CPU وارد Idle State شده؟
- آیا Thread روی Core دیگری منتقل شده؟
تحلیل درست
از ارتباط میان Metricها
به دست می آید.
CPU در حالت Idle باید چه رفتاری داشته باشد؟
CPU مدرن
هنگام نبود Work
تلاش می کند
Energy Consumption
را کاهش دهد.
در نتیجه
ممکن است Coreها
وارد حالت های کم مصرف شوند
و Effective Activity
بسیار پایین بیاید.
وجود تغییرات کوتاه
در Usage
هنگام Idle
طبیعی است،
زیرا Operating System
و Background Serviceها
همچنان کارهای کوچکی
انجام می دهند.
CPU Usage غیرعادی در Idle چه معنایی دارد؟
اگر سیستم
بدون Workload مشخص
برای مدت قابل توجهی
CPU Usage بالایی داشته باشد،
باید Processهای فعال
بررسی شوند.
علت می تواند:
- Background Application،
- Operating System Update،
- Indexing،
- Security Scan،
- Driver Activity،
- یا Software Problem
باشد.
چگونه یک Workload تک هسته ای را مانیتور کنیم؟
در Workload
با Parallelism محدود،
Total Usage
ممکن است پایین باشد.
باید:
- Per-Core Usage،
- Critical Thread،
- Frequency Core فعال،
- Effective Clock،
- Temperature،
- و Performance Metric
بررسی شوند.
چگونه Workload چند هسته ای را مانیتور کنیم؟
در Multi-Core Workload
باید بررسی کنیم:
- چند Core واقعاً فعال هستند؟
- Load میان Coreها چگونه توزیع شده است؟
- All-Core Frequency چقدر است؟
- Package Power چگونه تغییر می کند؟
- Temperature به چه سطحی می رسد؟
- آیا Power یا Thermal Limit فعال می شود؟
- Performance در طول زمان پایدار می ماند یا خیر؟
مانیتورینگ CPUهای Hybrid چه تفاوتی دارد؟
در پردازنده هایی
با انواع مختلف Core،
فقط مشاهده Total Usage
اطلاعات کافی
ارائه نمی دهد.
باید مشخص شود
Threadهای مهم
روی کدام نوع Core
اجرا می شوند.
Scheduler
می تواند Work
را میان Coreها
جابه جا کند.
بنابراین Per-Core Monitoring
و شناخت Topology
اهمیت بیشتری پیدا می کند.
هنگام مانیتورینگ CPU لپ تاپ چه چیزهایی مهم تر هستند؟
در Laptop
Power
و Thermal Constraints
معمولاً نقش پررنگ تری دارند.
هنگام تست
بهتر است بررسی شود:
- دستگاه به برق متصل است یا Battery؟
- Power Mode چیست؟
- Temperature چگونه تغییر می کند؟
- Clock پس از گرم شدن دستگاه چه رفتاری دارد؟
- Package Power پایدار چقدر است؟
- Thermal Throttling رخ می دهد یا خیر؟
- Performance بعد از چند دقیقه افت می کند یا خیر؟
هنگام مانیتورینگ Desktop چه چیزهایی بررسی می شوند؟
در Desktop
Cooling
و Motherboard Configuration
می توانند
رفتار CPU
را تغییر دهند.
بنابراین علاوه بر
CPU Usage
باید:
- Clock،
- Effective Clock،
- Temperature،
- Power،
- Limit Indicators،
- و Sustained Performance
بررسی شوند.
در Workstation چه چیزی مهم است؟
Workstation
معمولاً برای Workloadهای
طولانی تر
استفاده می شود.
بنابراین Peak Clock
چند ثانیه اول
اهمیت کمتری
از Performance پایدار
دارد.
در Render،
Simulation،
Compilation
و پردازش های طولانی،
باید رفتار CPU
در چند دقیقه
یا حتی مدت طولانی تر
بررسی شود.
مانیتورینگ CPU در Server چگونه متفاوت است؟
در Server
فقط Peak Performance
مهم نیست.
باید Metricهایی مانند:
- CPU Utilization،
- Per-Core Load،
- Run Queue،
- Latency،
- Throughput،
- Power،
- Temperature،
- و Performance Stability
در طول زمان
بررسی شوند.
چگونه علت افت Performance بعد از چند دقیقه را پیدا کنیم؟
فرض کنید Benchmark
در ابتدا سریع است،
اما بعد از چند دقیقه
Performance کاهش می یابد.
باید همزمان
نمودارهای:
- Performance،
- Clock،
- Effective Clock،
- Temperature،
- Power،
- و Limit Indicators
بررسی شوند.
اگر:
Temperature ↑
→
Thermal Limit Active
→
Clock ↓
→
Performance ↓
مشاهده شود،
Thermal Constraint
یکی از علت های محتمل است.
اما اگر:
Temperature Acceptable
+
Power Limit Active
→
Clock ↓
→
Performance ↓
مشاهده شود،
محدودیت می تواند
بیشتر به Power Policy
مربوط باشد.
و اگر:
CPU Load ↓
→
Clock ↓
مشاهده شود،
کاهش Frequency
ممکن است کاملاً طبیعی باشد،
زیرا CPU دیگر
Work کافی
برای اجرا ندارد.
CPU مدرن
Frequency خود را
براساس نیاز Workload
تنظیم می کند.
اگر برنامه
منتظر Input،
Storage،
Network،
GPU
یا یک Dependency
باشد،
CPU ممکن است
Work کافی
برای حفظ Clock بالا
نداشته باشد.
در این شرایط
کاهش Clock
نتیجه مشکل CPU نیست؛
نتیجه کاهش تقاضا
برای پردازش است.
Low Clock
+
Low CPU Demand
=
Potentially Normal Behavior
مانیتورینگ برای بررسی سیستم استوک چه کاربردی دارد؟
در یک سیستم استوک،
مشخصات Hardware
فقط بخشی از بررسی است.
Monitoring
می تواند کمک کند
رفتار واقعی دستگاه
زیر Load
ارزیابی شود.
برای مثال می توان بررسی کرد:
- CPU زیر Load به Frequency مناسب می رسد یا خیر.
- Performance در طول زمان پایدار است یا خیر.
- Temperature رفتار غیرعادی دارد یا خیر.
- Thermal Throttling رخ می دهد یا خیر.
- Power Limit غیرمنتظره وجود دارد یا خیر.
- Cooling System توان دفع Heat را دارد یا خیر.
- Background Process غیرعادی CPU را درگیر کرده یا خیر.
این روش فقط
برای لپ تاپ استوک نیست
و برای:
- کامپیوتر رومیزی،
- Workstation،
- All-in-One،
- Mini PC،
- و Server استوک
نیز کاربرد دارد.
روش اصولی مانیتورینگ CPU
- سیستم را در شرایط مشخص قرار دهید.
- Background Processهای غیرضروری را کنترل کنید.
- Power Mode را ثبت کنید.
- Monitoring را قبل از شروع Workload فعال کنید.
- Idle Behavior را برای مدت کوتاهی ثبت کنید.
- Workload مشخص و قابل تکرار را اجرا کنید.
- Total CPU Usage را بررسی کنید.
- Per-Core Usage را بررسی کنید.
- Clock و Effective Clock را مقایسه کنید.
- Temperature را در طول زمان ثبت کنید.
- Package Power را بررسی کنید.
- Power، Thermal و Current Limitها را بررسی کنید.
- Performance Metric خود Workload را ثبت کنید.
- اجازه دهید Test به حالت پایدار برسد.
- افت یا تغییر Performance را با Telemetry تطبیق دهید.
- در صورت نیاز Test را چند بار تکرار کنید.
- فقط بعد از مشاهده رابطه میان داده ها درباره علت نتیجه گیری کنید.
مهم ترین Metricهای مانیتورینگ CPU
| Metric | چه چیزی نشان می دهد؟ | به تنهایی کافی است؟ |
|---|---|---|
| CPU Usage | میزان فعالیت کلی پردازنده | خیر |
| Per-Core Usage | توزیع Load میان Coreها | خیر |
| Clock | Frequency گزارش شده CPU | خیر |
| Effective Clock | فعالیت موثر در بازه زمانی | خیر |
| Temperature | وضعیت حرارتی | خیر |
| Package Power | توان مرتبط با Package CPU | خیر |
| Thermal Limit | رسیدن به محدودیت حرارتی | باید همراه Performance بررسی شود |
| Power Limit | رسیدن به محدودیت توان | باید همراه Clock و Load بررسی شود |
| Current Limit | محدودیت الکتریکی Platform | باید در Context بررسی شود |
| Workload Performance | نتیجه واقعی کار | باید با Telemetry مرتبط شود |
زیرساخت فنی — ابزار مانیتورینگ اطلاعات CPU را از کجا می آورد؟
CPU و Platform
دارای مجموعه ای
از Counterها،
Registerها
و Sensorها هستند.
این منابع
می توانند اطلاعاتی
درباره وضعیت عملیاتی
سیستم فراهم کنند.
Software
از طریق Interfaceهای
سیستم عامل،
Driver
یا دسترسی های مجاز
به Hardware
بخشی از این داده ها
را دریافت می کند.
CPU / Platform
↓
Sensors + Counters + Registers
↓
Firmware / OS / Driver
↓
Monitoring Software
↓
Sampling
↓
Display / Logging
بعضی داده ها
مستقیم گزارش می شوند،
بعضی تبدیل می شوند
و برخی Metricها
از چند مقدار دیگر
محاسبه می شوند.
به همین دلیل
دو ابزار مانیتورینگ
ممکن است برای یک عنوان
اعداد کمی متفاوت
نشان دهند.
این اختلاف
الزاماً به معنی
خراب بودن یکی
از ابزارها نیست.
- قضاوت فقط براساس Total CPU Usage.
- نادیده گرفتن Per-Core Usage.
- فرض اینکه 100 درصد Usage همیشه به معنی Maximum Performance است.
- فرض اینکه Usage پایین یعنی CPU Bottleneck وجود ندارد.
- اشتباه گرفتن Clock با Effective Clock.
- مقایسه Clock لحظه ای با Sustained Performance.
- انتظار Maximum Boost روی همه Coreها.
- قضاوت فقط براساس Maximum Temperature.
- فرض اینکه دمای بالا حتماً Thermal Throttling است.
- اشتباه گرفتن Power Limit با Thermal Limit.
- نادیده گرفتن Current Limit.
- یکی دانستن Package Power و Total System Power.
- نادیده گرفتن Sampling Interval.
- قضاوت براساس یک Snapshot.
- نادیده گرفتن روند زمانی داده ها.
- بررسی Sensorها بدون Performance Metric واقعی.
- تغییر چند متغیر همزمان هنگام عیب یابی.
- مقایسه دو سیستم با Power Mode متفاوت.
- نادیده گرفتن Battery Mode در Laptop.
- نتیجه گیری از یک Run بدون تکرار Test.
سوالات متداول درباره مانیتورینگ CPU
CPU Usage صد درصد یعنی پردازنده با حداکثر قدرت کار می کند؟
الزاماً خیر.
Frequency،
Power،
Temperature
و نوع Workload
نیز باید بررسی شوند.
چرا CPU Usage پایین است ولی برنامه کند اجرا می شود؟
ممکن است برنامه
توسط یک Critical Thread،
I/O،
Software Dependency
یا عامل دیگری
محدود شده باشد.
Effective Clock چیست؟
Metricی است
که تلاش می کند
فعالیت موثر CPU
را در بازه زمانی
بهتر از یک Clock لحظه ای
نشان دهد.
چرا Clock CPU دائماً تغییر می کند؟
CPU مدرن
Frequency خود را
براساس Load،
Power،
Temperature
و سیاست مدیریت انرژی
تنظیم می کند.
آیا دمای بالای CPU یعنی پردازنده Throttle شده است؟
خیر.
باید Thermal Limit Indicator
و رفتار Frequency
و Performance
نیز بررسی شوند.
Package Power همان مصرف برق کل سیستم است؟
خیر.
Package Power
فقط Metric مربوط
به محدوده تعریف شده
برای Package پردازنده است.
چرا Maximum Boost را در تست چند هسته ای نمی بینم؟
Maximum Boost
معمولاً به شرایط خاص،
تعداد Coreهای فعال،
Power
و Temperature
وابسته است
و لزوماً All-Core Frequency نیست.
برای بررسی CPU استوک فقط Temperature کافی است؟
خیر.
Usage،
Clock،
Effective Clock،
Power،
Limitها
و Performance پایدار
نیز باید بررسی شوند.
چرا دو برنامه مانیتورینگ اعداد متفاوتی نشان می دهند؟
ممکن است
Sampling Interval،
Data Source
یا روش محاسبه Metric
متفاوت باشد.
بهترین روش تشخیص افت Performance چیست؟
ثبت همزمان
Performance،
Usage،
Clock،
Effective Clock،
Temperature،
Power
و Limit Indicatorها
در طول زمان.
واژه های جدید این فصل برای واژه نامه نهایی کتاب
- Monitoring: مشاهده و ثبت رفتار عملیاتی سیستم.
- Telemetry: داده های اندازه گیری یا گزارش شده درباره وضعیت Hardware و Software.
- CPU Usage: معیاری برای میزان فعالیت پردازنده در یک بازه زمانی.
- Per-Core Usage: میزان فعالیت هر Core یا Logical Processor.
- Clock: Frequency گزارش شده برای فعالیت پردازنده.
- Effective Clock: Metricی برای نمایش نرخ موثر فعالیت CPU در طول زمان.
- Package Power: توان گزارش شده برای محدوده تعریف شده Package پردازنده.
- Thermal Throttling: کاهش Operating Point برای رعایت محدودیت حرارتی.
- Power Limit: سقف توان تعیین شده برای عملکرد پردازنده.
- Current Limit: محدودیت مرتبط با جریان الکتریکی.
- Sampling: نمونه برداری دوره ای از یک Metric.
- Sampling Interval: فاصله زمانی میان نمونه برداری ها.
- Snapshot: نمایش وضعیت در یک لحظه مشخص.
- Time-Series: مجموعه داده ثبت شده در طول زمان.
- Sensor: منبع اندازه گیری یک پارامتر فیزیکی یا عملیاتی.
- Performance Counter: شمارنده Hardware یا Software برای اندازه گیری رویدادهای اجرایی.
خلاصه فصل
Monitoring
پلی میان مشخصات نظری CPU
و رفتار واقعی آن
در سیستم است.
هیچ Metric منفردی
برای تحلیل کامل
CPU کافی نیست.
Usage
باید همراه
با Per-Core Activity،
Clock،
Effective Clock،
Temperature،
Power
و Limit Indicatorها
بررسی شود.
همچنین باید
Performance واقعی Workload
را در کنار Telemetry
قرار دهیم.
Telemetry without Workload Context
=
Incomplete Information
مهم تر از Peakهای لحظه ای،
رفتار CPU
در طول زمان است.
Load
+
Per-Core Usage
+
Effective Clock
+
Power
+
Temperature
+
Limit Indicators
+
Performance
→
Real CPU Behavior
برای فهمیدن اینکه یک پردازنده واقعاً چگونه کار می کند،
نباید دنبال یک عدد جادویی باشیم؛
باید رابطه میان بار پردازشی، فرکانس، توان، دما،
محدودیت ها و نتیجه واقعی Workload را در طول زمان ببینیم.
