- PerfMon امکان اندازهگیری بلادرنگ و ثبت طولانیمدت را با شمارندههای دقیق و قابل تنظیم فراهم میکند.
- مجموعههای جمعآوریکننده و Logman، ضبطهای تکراری و اتوماسیون روی سرورها را تسهیل میکنند.
- آستانههای حافظه، پردازنده، دیسک و شبکه به شناسایی گلوگاهها و نشتیها کمک میکنند.
- مانیتور قابلیت اطمینان با نشان دادن خرابیها و مشکلات سازگاری، تجزیه و تحلیل را تکمیل میکند.

PerfMon (عملکرد مانیتور) است ابزار نهایی برای نظارت در ویندوزPerfMon: به شما امکان میدهد معیارهای عملکرد پردازنده، حافظه، دیسک، شبکه و فرآیندهای خاص را به صورت بلادرنگ، بلندمدت مشاهده و تجزیه و تحلیل کنید. برخلاف Task Manager، PerfMon در فواصل منظم نمونهبرداری میکند و گزارشهایی را در دیسک ثبت میکند، که آن را برای شناسایی مشکلاتی که تنها پس از ساعتها اجرا ظاهر میشوند، مانند سرریز حافظه یا نشت منابع در سرویسها و برنامهها، ایدهآل میکند.
در این مقاله ما به شما نشان می دهیم نحوه استفاده از PerfMon از انتخاب و درک شمارندههای مناسب و تنظیم نمونهبرداری و مقیاسبندی نمودار گرفته تا ایجاد مجموعههای جمعآوریکننده داده برای ثبت معیارها در فایل (BLG/CSV.
PerfMon چیست و چه زمانی باید از آن استفاده کرد؟
مانیتور عملکرد (PerfMon) نمایشگر و ضبطکنندهی شمارندهی پیشفرض ویندوز است.معیارها را به شکل نمودارها و دادههای خام بهدستآمده از شمارندههای سیستم و برنامه (مثلاً از .NET CLR یا یک فرآیند خاص) ارائه میدهد. بزرگترین مزیت آن نسبت به ابزارهای «سریع» مانند مدیر وظیفه این است که میتوانید آن را برای ساعتها یا روزها، با نمونههای دورهای، برای تشخیص روندهای واقعی (قلهها، خطوط پایه، رشد پایدار) فعال نگه دارید.
PerfMon برای تشخیص رشد حافظه، نشتیهای هندل یا تردو با اجرای تستهای خاص، اجزای مشکلساز را ایزوله کنید. به عنوان مثال، اگر به نشت حافظه مشکوک هستید، شمارندههایی مانند Private Bytes، Handle Count و Thread Count را برای فرآیند آسیبدیده، به همراه شمارندههای حافظه .NET CLR مانند # Bytes در تمام Heapها و اندازه Gen 2 heap برای برنامههای .NET فعال خواهید کرد تا ببینید آیا رشد در طول یا خارج از GC رخ میدهد یا خیر.

راههای باز کردن PerfMon و حالتهای تخصصی
میتوانید PerfMon را باز کنید از منوی استارت، عبارت «performance» یا «perfmon» را جستجو کنید و آن را به عنوان مدیر سیستم اجرا کنید. وقتی میخواهید لاگ ایجاد کنید یا از کامپیوترهای راه دور پرسوجو کنید.
اگر ترجیح می دهید خط فرمان (Win+R یا CMD)، حالتهای مستقیم بسیار مفیدی با سینتکس زیر دارید:
perfmon </res|report|rel|sys>
هر گزینه چه کاری انجام میدهد؟
- /گوشت گاو برای باز کردن نمای منابع
- /گزارش برای اجرای مجموعه جمعآوریکنندهی عیبیابی سیستم و مشاهدهی گزارش.
- /رِیل برای باز کردن مانیتور قابلیت اطمینان.
- / sys برای رفتن مستقیم به مانیتور عملکرد کلاسیک.
مشاورهاگر میخواهید قابلیت اطمینان تجهیزات را بررسی کنید، پرمون / رل این یک میانبر مستقیم به پایداری و تاریخچه اشکالات است.
مانیتور قابلیت اطمینان همچنین در Control Panel > System and Security > Security and Maintenance قرار دارد. میانبر دیگر: عبارت "reliab" را در قسمت جستجوی منوی Start تایپ کنید و "View reliability history" را انتخاب کنید. رویدادهای مهم، هشدارها و اطلاعات را بر اساس روز یا هفته مشاهده خواهید کرد، با دسترسی به جزییات فنی از خرابیهای برنامهها و درایورها.
تجسم بلادرنگ: جمع و درک شمارندهها
برای دیدن یک نمودار زنده، «مانیتور عملکرد» را در درخت سمت چپ باز کنید. اگر شمارندههای از پیش بارگذاری شده وجود دارد و میخواهید شروع به پاکسازی کنید، آنها را در جدول زیر انتخاب کنید و فشار دهید سوپر سپس، در ناحیه نمودار، کلیک راست کرده و گزینه Add Counters… را انتخاب کنید تا کادر محاورهای شامل تمام دستههای موجود باز شود.
انتخاب کنید دسته مورد نظر، شمارنده و نمونه شیء (مثلاً، فرآیند شما). برای تشخیص حافظه و منابع در یک برنامه خاص، این شمارندههای کلید را از گروه اضافه کنید روند y حافظه CLR دات نت در صورت لزوم:
- فرآیند \ بایتهای خصوصی: حافظه خصوصی اختصاص داده شده توسط فرآیند (با دیگران به اشتراک گذاشته نشده است). رشد پایدار نشان دهنده مصرف واقعی حافظه مجازی خود فرآیند است.
- تعداد دسته فرآیند: تعداد هندلهای باز. افزایش مداوم اغلب نشاندهندهی نشت منابع (نشستها، اشیاء سیستم) است.
- تعداد نخهای پردازششده: تعداد رشتههای فعال در فرآیند. افزایش غیرمنتظره ممکن است نشاندهنده مشکلات همزمانی یا رشتههای ناتمام باشد.
- حافظه CLR.NET \ تعداد بایتها در تمام هیپها: کل حافظه برای اشیاء .NET. اگر بدون تثبیت افزایش یابد، فشار GC و ارجاعات منتشر نشده را بررسی کنید.
- حافظه CLR.NET \ اندازه هیپ نسل دوم: اندازه هیپ نسل دوم (اقلام با عمر طولانی). رشد مداوم نشان دهنده اقلام با عمر طولانی جمعآوری نشده است.
نمودار را با نگاهی انتقادی تفسیر کنیداگر متوجه شدید که Private Bytes به طور پیوسته در حال افزایش است در حالی که # Bytes در تمام Heapها و اندازه Gen 2 Heap ثابت مانده است، این رشد در Heap .NET نیست، بلکه در حافظه/ذخایر بومی فرآیند است. این الگو معمولاً نشاندهنده نشتی خارج از GC است (مثلاً بافرها یا هندلهای فریز نشده).

نمودار را تنظیم کنید: مقیاس، فاصله و مدت زمان
PerfMon اجازه میدهد قابلیت مشاهده هر شمارنده و دوره تاریخی که میبینید را تنظیم کنید. مطبوعات Ctrl + Shift + A برای انتخاب همه شمارندههای موجود در لیست زیر، کلیک راست کرده و گزینه مقیاسبندی شمارندههای انتخابشده، بنابراین همه آنها بدون اینکه یکی بقیه را "مسطح" کند، قابل مشاهده خواهند بود.
باز کن ویژگیهای نمودار کلیک راست > Properties… و نرخ نمونهبرداری را در تب General تنظیم کنید. برای مثال، هر 10 ثانیه نمونهبرداری کنید و مدت زمان را روی 10000 تنظیم کنید تا تقریباً 2,5 ساعت را در نما پوشش دهد. هرچه پدیده طولانیتر باشد، نرخ نمونهبرداری باید فاصله بیشتری داشته باشد تا از فایلهای حجیم و بارگذاری بیش از حد رایانه شما جلوگیری شود.
نکته اضافیPerfMon ویژگیها و متدهای ActiveX را در اختیار شما قرار میدهد و به شما این امکان را میدهد که آن را از سایر ابزارهای توسعه ادغام یا کنترل کنید و حتی در صورت نیاز، آن را به عنوان یک کنترل در برنامه خود جاسازی کنید.
خودکارسازی با Logman: ایجاد، شروع و توقف
Logman.exe یک ابزار خط فرمان برای ایجاد و مدیریت مجموعههای شمارنده است.یک خط فرمان (command prompt) با دسترسی ادمین باز کنید و دستوری مشابه دستور زیر را برای ایجاد یک مجموعه بزرگ نظارت مداوم با یک فایل دایرهای اجرا کنید:
Logman.exe create counter Avamar -o "c:\\perflogs\\Emc-avamar.blg" -f bincirc -v mmddhhmm -max 250 -c "\\LogicalDisk(*)\\*" "\\Memory\\*" "\\Network Interface(*)\\*" "\\Paging File(*)\\*" "\\PhysicalDisk(*)\\*" "\\Processor(*)\\*" "\\Process(*)\\*" "\\Redirector\\*" "\\Server\\*" "\\System\\*" -si 00:00:05
به شروع و توقف ضبط، موارد استفاده:
Logman.exe start Avamar
Logman.exe stop Avamar
نکات دستوری: -f bincirc یک لاگ دودویی دایرهای ایجاد میکند (-max اندازه را به مگابایت محدود میکند)، -si فاصله نمونهبرداری را تعریف میکند، و -c شمارندهها را به صورت عمده برای اشیاء و نمونههای آنها اضافه میکند. هنگام اسکریپتنویسی یا خروجی گرفتن از پیکربندی، از مسیرهای نقل قول شده و کاراکترهای \ استفاده کنید.
چه زمانی از لاگمن استفاده کنیم؟ برای ایده آل است جمعآوری دادههای راه دور روی سرورها، تشخیص خودکار یا استانداردسازی ضبطها در چندین ماشین. میتوانید آن را با Task Scheduler زمانبندی کنید و فایلها را بدون دخالت بچرخانید.

شمارندهها و آستانههای مفید برای هر زیرسیستم
حافظه: ظرفیت واقعی، فشار پیجینگ و میزان تخلیه مخزن سیستم را رصد میکند. این شمارندهها و دستورالعملها به تفکیک علائم از علل کمک میکنند:
- حافظه \ % بایتهای متعهد در حال استفادهدرصد حافظه اختصاص داده شده بیش از حد مجاز. اگر به طور مداوم از 80٪ تجاوز کند، اندازه فایل پیجینگ و میزان استفاده واقعی را بررسی کنید.
- حافظه \ مگابایت موجودحافظه فیزیکی آزاد. بررسی کنید که آیا کمتر از ۵٪ از حافظه رم مرتباً خالی میشود (و کمتر از ۱٪ حیاتی است).
- حافظه \ بایتهای ثبتشده: کل بایتهای ثبتشده. نباید به شدت تغییر کند؛ تغییرات مکرر میتواند منجر به گسترش فایل صفحه شود.
- حافظه \ استخر بایتهای غیر صفحهبندی شده: مخزن بدون صفحه (اشیایی که نمیتوان آنها را روی دیسک خالی کرد). اشباع مداوم (> 80٪) آنها با رویدادهایی مانند سال ۲۰۱۹ (خاتمه یافتن استخر بدون صفحهبندی) مرتبط هستند.
- حافظه \ بایتهای صفحهبندی شدهی استخر: : مخزن پیجد. مقادیر پایدار > 70٪ از حداکثر، خطر وقوع رویداد 2020 (خاتمه مخزن پیجد) را نشان میدهد.
پردازنده: به دنبال بارهای پایدار و سیگنالهای ورودی/خروجی سنگین یا درایورهای پر سر و صدا باشید.
- اطلاعات پردازنده \ % زمان پردازنده (همه موارد): بیش از ۹۰٪ پایداری روی یک پردازنده یا بیش از ۸۰٪ پایداری روی چند پردازنده، نشاندهندهی اضافه بار پردازنده است.
- پردازنده \ % زمان ممتاز: زمان حالت هسته. اگر به طور مداوم بیش از 30٪ در سرورهای برنامه/وب باشد، ممکن است نشان دهنده بار کاری بیش از حد درایور یا سیستم باشد.
- زمان وقفه پردازنده \ % y زمان DPC: > ۲۵٪ به فعالیت شدید دستگاه (کارت شبکه، دیسک و غیره) اشاره میکنند.
- سیستم \ سوئیچهای زمینه/ثانیه y پردازنده \ وقفهها/ثانیه: برای مشاهده فشار تغییر زمینه و فعالیت وقفه مفید است.
قرمز: به سلامت کارت شبکه و کیفیت ارتباط اشاره دارد.
- رابط شبکه\بستههای دریافتی دور ریخته شدند: باید نزدیک به صفر باقی بماند؛ افزایش مقادیر معمولاً نشان دهندهی بافرها/سختافزارهای ناکافی است.
- خطاهای دریافت بستههای رابط شبکه: : خطاها > ۲ پایدار هستند و نیاز به بررسی لینکها/کابلها/درایورها دارند.
دیسکو: اشباع، تأخیر و ظرفیت را اندازهگیری میکند.
- PhysicalDisk \ % زمان بیکاری: درصد زمان بیکاری. پایین بودن مداوم نشان دهندهی مشغول بودن دیسک است؛ این پارامتر به خوبی ظرفیت باقی مانده را نشان میدهد.
- دیسک فیزیکی \ میانگین ثانیه/خواندن دیسک y میانگین سرعت نوشتن بر روی دیسک (ثانیه): تأخیر متوسط. مراجع معمول (دستورالعملها): خواندن عالی < 8 میلیثانیه، قابل قبول < 12 میلیثانیه، متوسط < 20 میلیثانیه، ضعیف > 20 میلیثانیه؛ نوشتن عالی < 1 میلیثانیه، خوب < 2 میلیثانیه، متوسط < 4 میلیثانیه، ضعیف > 4 میلیثانیه.
- PhysicalDisk \ میانگین طول صف دیسک: میانگین دنبالهها. مقادیر زیر ۲× معمولاً معقول هستند.
- PhysicalDisk \ تقسیم IO/Sec: ورودی/خروجیها به دلیل قطعه قطعه شدن یا اندازه بلوک ناکافی تقسیم میشوند. هر چه کمتر، بهتر.
- LogicalDisk \ % فضای آزادهمیشه بیش از ۱۵٪ (توصیه میشود ≥ ۲۵٪) از حجمهای منطقی سیستم را آزاد بگذارید.
اشیاء دیسک: فیزیکی در مقابل منطقی.
- دیسک فیزیکی دسترسی به تمام پارتیشنهای یک دستگاه فیزیکی را اضافه میکند (سختافزار را شناسایی میکند).
- دیسک منطقی یک پارتیشن یا نقطه اتصال خاص را اندازهگیری میکند. با دیسکهای پویا، یک حجم منطقی میتواند چندین دیسک فیزیکی را در بر بگیرد و شمارندههای آن، کل را منعکس میکنند.
روندبرای مرتبط کردن منابع با رفتار یک برنامه خاص، monitor فرآیند \ % زمان پردازنده, بایت های خصوصی, بایت های مجازی y مجموعه کاری. شمارش دسته اگر به نشتی استخر مشکوک هستید، این نکته کلیدی است؛ رشد دسته ها اغلب با افزایش غیرطبیعی در ... ازدواج میکنند. استخر بدون صفحه/صفحه.
مانیتور قابلیت اطمینان: بررسی خرابیها و سازگاری
مانیتور قابلیت اطمینان ویندوز، پایداری و رویدادها را بر اساس روز یا هفته خلاصه میکند.، طبقه بندی بحرانی، هشدار و اطلاعاتاز هر ستون، میتوانید «مشاهده جزئیات فنی» را باز کنید تا ماژولها، کد و امضاهای دیجیتال فایلهای باینری مربوطه را بررسی کنید.
- مثال عملیورودیهایی مانند svchost.exe_MapsBroker یا سایر برنامههای خراب را خواهید یافت. گاهی اوقات ماژول گزارش شده (مثلاً Kernelbase.dll) متعلق به هسته ویندوز است و توسط مایکروسافت امضا شده است، که نشان میدهد علت اصلی مشکل هسته نیست، بلکه برنامه یا افزونهای است که در فضای کاربری شما اجرا میشود.
- وقتی یک برنامه قدیمی از کار میافتد چه باید کرد؟اگر با مشکلات رابط کاربری یا عملکرد مواجه شدید، عیبیاب سازگاری را اجرا کنید و حالت سازگاری (مثلاً ویندوز ۷) را فعال کنید و مقیاسبندی DPI بالا را غیرفعال کنید. نشان داده شده است که این تنظیم، مشکلات خرابی در نرمافزارهای قدیمی را برطرف میکند.
- یافتههای پایداری را با PerfMon مرتبط میکندتاریخچه خرابی را با گزارشهای شمارنده ترکیب میکند تا ببیند آیا بایتهای خصوصی، تعداد هندلها یا تأخیر دیسک قبل از خرابی بالا بودهاند یا خیر. این همبستگی به شما یک سرنخ برای استخراج میدهد.
- بسته شدن عملیبا PerfMon و Reliability Monitor میتوانید از علائم (خرابی، کندی) تا علت (نشت حافظه، گلوگاه دیسک، ۱۰۰٪ CPU، خطاهای شبکه) را تشخیص دهید، که توسط شمارندهها و آستانههایی که به وضوح شما را راهنمایی میکنند، پشتیبانی میشود.
اگر شما نیاز دارید راهنمای سریع برای شروع کارPerfMon را باز کنید، شمارندههایی برای فرآیند هدف (بایتهای خصوصی، درصد زمان پردازنده و غیره) اضافه کنید، نمونهبرداری و مدت زمان را برای پوشش پنجرهای که مشکل در آن رخ میدهد تنظیم کنید، با یک Collector Set در فایل ثبت وقایع کنید، و در صورت لزوم، با Logman روی سرورها یا محیطهای آزمایشی که نیاز به اجرا برای ساعتها دارند، خودکارسازی کنید.
ویراستار متخصص در مسائل فناوری و اینترنت با بیش از ده سال تجربه در رسانه های مختلف دیجیتال. من به عنوان ویراستار و تولید کننده محتوا برای شرکت های تجارت الکترونیک، ارتباطات، بازاریابی آنلاین و تبلیغات کار کرده ام. من همچنین در وب سایت های اقتصاد، دارایی و سایر بخش ها نوشته ام. کار من نیز علاقه من است. اکنون، از طریق مقالات من در Tecnobits، سعی می کنم تمام اخبار و فرصت های جدیدی را که دنیای فناوری هر روز برای بهبود زندگی مان به ما ارائه می دهد، کشف کنم.