راهنمای جامع عیب‌یابی داشبورد سلامت سامانه

این مستند مرجع اصلی واحد پشتیبانی برای تشخیص اختلالات سامانه از روی اعداد لحظه‌ای داشبورد است.

این مستند مرجع اصلی واحد پشتیبانی برای تشخیص اختلالات سامانه از روی اعداد لحظه‌ای داشبورد است.

 

۱. مدیریت تِردها و نبض پاسخگویی (Threading)

در این بخش، تفاوت بین فعالیت دات‌ نت و وضعیت پروسه در ویندوز مشخص می‌شود.

  • الف) تِردهای در دسترس (Available Worker & IO Threads)
    • تفسیر: ظرفیتِ خالی سرور برای قبول کلیک جدید (Worker) و انتظار برای دیتابیس (IO).
    • نرمال: اعداد بالای ۵۰۰.
    • بحرانی (نزدیک به صفر): سایت "هنگ" کرده و درخواست‌ها در صف می‌مانند.
    • راهکار: اگر CPU پایین ولی این عدد صفر است، یعنی کدها به صورت غیر async نوشته شده‌اند و تِردها را اسیر کرده‌اند.
  • ب) تِردهای کل پروسه (Total Process Threads)
    • تفسیر: تعداد کل تِردهایی که ویندوز به برنامه اختصاص داده است (شامل بخش‌های سیستمی و فرعی).
    • نرمال: بین ۷۰ تا ۱۵۰ تِرد (بسته به تعداد کاربران).
    • بحرانی: رشد مداوم و رسیدن به اعداد بالای ۵۰۰ بدون بازگشت.
    • راهکار: این نشانه Thread Leak (نشت تِرد) است. باید App Pool ریست شود و تیم توسعه کدهایی که تِرد جدید می‌سازند را بررسی کند.

 

پارامتر

مفهوم ساده

وضعیت بحرانی

علت احتمالی

Available Worker

ظرفیت برای کلیک کاربران

زیر ۵۰

ترافیک بسیار بالا یا قفل شدن کدها

Available I/O

ظرفیت برای انتظار دیتابیس/فایل

زیر ۲۰

کندی شدید هارد یا قفل شدن دیتابیس

Active I/O

تعداد درخواست‌های معلق در صف

رشد ناگهانی

دیتابیس پاسخ نمی‌دهد

 

۲. تحلیل گلوگاه دیسک و انتظار دیتابیس (Wait Stats)

در این بخش، شما بر اساس تقسیم Total Wait Time بر Wait Count به میانگین زمان انتظار (Avg Wait) می‌رسید.

  • تفسیر: این عدد نشان می‌دهد دیتابیس برای هر بار خواندن/نوشتن از روی هارد چقدر معطل می‌شود.
  • نرمال (زیر ۱۰ms): هارد در سلامت کامل است و کوئری‌ها سریع اجرا می‌شوند.
  • هشدار (۲۰ms - ۵۰ms): هارد تحت فشار است یا تعداد فایل‌های حجیم در پوشه SFile بالاست.
  • بحرانی (بالای ۱۰۰ms): کاربر هنگام کار با سامانه، مکث‌های چند ثانیه‌ای حس می‌کند.
    • اقدام فوری: بررسی سلامت SSD سرور و اجرای عملیات Rebuild Index برای کاهش فشار روی دیسک.

 

۳. پردازنده و حافظه (منابع اصلی)

  • الف) پردازنده (CPU Usage)
    • نرمال (۱۰٪ - ۶۰٪): نوسان طبیعی است.
    • بحرانی (بالای ۹۰٪): احتمال وجود کوئری‌های بدون ایندکس یا حلقه‌های بی‌نهایت در کد.
  • ب) حافظه موقت (Memory Usage)
    • نرمال: پایداری در طول روز (مثلاً ۲ تا ۴ گیگابایت).
    • بحرانی: رسیدن به سقف رم سرور. سیستم شروع به استفاده از هارد به جای رم می‌کند (Paging) که سرعت را به شدت کاهش می‌دهد.

 

۴. دیتابیس و ذخیرهسازی فایل (Infrastructure)

  • اتصالات فعال (Active Connections):
    • بحرانی: رسیدن به عدد ۱۰۰ (سقف Pool). کاربر با خطای "Connection Timeout" مواجه می‌شود.
  • حجم پوشه SFile (Storage Size):
    • بحرانی (بالای ۹۰٪ اشغال): خطر توقف کامل سامانه به دلیل عدم توانایی در نوشتن لاگ یا آپلود فایل جدید.
    • اقدام: پاکسازی فایل‌های Temp و آرشیو کردن لاگ‌های قدیمی.

 

۵. پایداری سیستم (Uptime)

  • تفسیر: زمان طی شده از آخرین شروع به کار پروسه.
  • نکته: اگر Uptime کمتر از چند ساعت است و کسی ریستارت دستی انجام نداده، یعنی سامانه به دلیل Crash یا نشت شدید حافظه توسط IIS بازنشانی (Recycle) شده است.

 

خلاصه اقدامات اضطراری برای پشتیبان

پارامتر قرمز

علت احتمالی

اقدام فوری

Available Threads ≈ 0

قفل شدن تِردها (Starvation)

ریست App Pool در IIS

Avg Wait > 100ms

گلوگاه سخت‌افزاری دیسک

اطلاع به واحد سخت‌افزار / Rebuild Index

Total Threads > 500

نشت تِرد (Thread Leak)

ریست App Pool / گزارش به تیم توسعه

SFile Size > 90%

کمبود فضای هارد

پاکسازی پوشه Temp و Logهای قدیمی

 

توصیه به واحد پشتیبانی: همیشه در هنگام گزارش مشکلات، اعداد ActiveWorker، AvailableWorker و TotalProcessThreads را به صورت همزمان اعلام کنید تا تیم فنی بتواند تفاوت بین "ترافیک بالا" و "نشت تِرد" را تشخیص دهد.

نکته امنیتی دیتابیس: برای نمایش آمارهای حیاتی (Wait Stats) و (Active Connections) در داشبورد، یوزرِ دیتابیسِ اپلیکیشن حتماً باید مجوز VIEW SERVER PERFORMANCE STATE را در دیتابیس master داشته باشد. در غیر این صورت، بخش پایش گلوگاه دیسک غیرفعال خواهد بود.

 

فایل ها
  • فایل pdf راهنمای جامع عیب‌یابی داشبورد سلامت سامانه
  • راهنمای جامع عیب‌یابی داشبورد سلامت سامانه
  • دوشنبه ۲۵ اسفند ۱۴۰۴ - ۱۲:۰۸

    تعداد بازدید : 120