ورود ثبت نام

راهنمای کامل و کاربردی برای بررسی مصرف cpu، ram disk

تیم فرتاک سرور
1405/7/24 3 بازدید آموزش
راهنمای کامل و کاربردی برای بررسی مصرف cpu، ram disk

راهنمای کامل و کاربردی برای بررسی مصرف cpu، ram disk

کندی یا قطع موقت سرویس اغلب ناشی از مصرف نادرست منابع است. این راهنما به‌صورت سیستماتیک و عملیاتی روش‌های بررسی مصرف cpu، ram disk را در کنترل پنل و از طریق دسترسی خط فرمان تشریح می‌کند تا بتوانید علت را سریع‌تر شناسایی و رفع کنید.

چرا بررسی مصرف cpu، ram disk حیاتی است؟

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

ابزارها و نماهای کاربردی (کنترل پنل و خط فرمان)

پنل میزبانی اغلب نمایی فوری از روندها ارائه می‌دهد، اما برای تحلیل دقیق به ابزارهای خط فرمان و مانیتورینگ سیستمی نیاز است. ابزارهای پایه و خروجی‌های مفید عبارتند از:

  • داشبورد کنترل پنل: نگاهی کلی از مصرف لحظه‌ای و روندهای تاریخی برای CPU و دیسک.
  • دستورات خط فرمان: top, htop (در صورت نصب), ps, free -m, df -h, du -sh, vmstat, iostat, sar.
  • ابزارهای لاگ: جستجوی الگوهای خطا و درخواست‌های زمان‌بر در فایل‌های access و error.
  • فهرست باز فایل‌ها: lsof و بررسی inode با df -i.
  • اسکریپت‌ها یا جمع‌آوری‌کننده‌ها برای ثبت منظم وضعیت، که تحلیل روند را ممکن می‌سازند.

چک‌لیست سریع برای شروع بررسی

  1. مشاهده داشبورد و مقایسه بازه‌های زمانی (آخرین 24 تا 72 ساعت) برای شناسایی پیک‌ها.
  2. اجرای top یا ps aux --sort=-%mem برای شناسایی پردازش‌های پرتراکم.
  3. بررسی فضای دیسک با df -h و پوشه‌های بزرگ با du -sh *.
  4. بررسی df -i برای یافتن کاهش inode و مشکلات ناشی از تعداد زیاد فایل‌های کوچک.
  5. بازبینی لاگ‌ها (error/access) برای یافتن درخواست‌های پرتکرار یا ارورهای زمان‌دار.
  6. کنترل زمان‌بندی‌های خودکار مانند کرون که ممکن است بار مقطعی ایجاد کنند.

گام‌های عملی سیستماتیک برای بررسی مصرف

برای اجرای یک بررسی مؤثر، از این روند مرحله‌به‌مرحله پیروی کنید. در طول مراحل، به عبارت بررسی مصرف cpu، ram disk بازخواهیم گشت تا تمرکز حفظ شود.

۱) شروع با داشبورد و داده‌های تاریخی

نمودارها نقاط اوج و افت را نشان می‌دهند. اگر پیک‌هایی تکرارشونده دیدید، زمان وقوع دقیق را یادداشت کنید تا با داده‌های لاگ و کرون مقایسه کنید. اگر پنل اجازهٔ دانلود CSV می‌دهد، داده‌ها را برای تحلیل تاریخی ذخیره کنید.

۲) بررسی لحظه‌ای و ذخیره خروجی

در بازه پیک، خروجی ابزارها را ذخیره کنید تا بعداً مقایسه کنید. نمونه‌ای از دستورات و ذخیره خروجی:

top -b -n 1 > /tmp/top-snapshot.txt
ps aux --sort=-%mem | head -n 20 > /tmp/top-mem.txt
free -m > /tmp/mem.txt
df -h > /tmp/df.txt

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

۳) بررسی فضای دیسک، inode و ساختار لاگ

فضای دیسک پر یا کمتر از حد انتظار بودن inode می‌تواند منجر به خطاهای نوشتن شود. از موارد زیر استفاده کنید:

  • df -i برای بررسی inode.
  • du -sh /var/* | sort -h برای یافتن دایرکتوری‌های بزرگ.
  • جستجو برای فایل‌های لاگ قدیمی یا پشتیبان‌هایی که قابل حذف یا فشرده‌سازی هستند.

۴) تحلیل لاگ و شناسایی درخواست‌های سنگین

مقایسه زمان‌های اوج در لاگ وب و پنل با کمک ابزارهای متنی مانند grep, awk یا sed به شما الگوها را نشان می‌دهد. مثال سریع برای یافتن صفحات با بیشترین زمان پاسخ:

awk '{print $7, $9, $NF}' access.log | sort | uniq -c | sort -rn | head -n 20

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

مثال عملی: تشخیص علت کندی و رفع آن

مثال فرضی: پس از مشاهده پیک‌های دوره‌ای CPU، این روند را طی کنید:

  1. در زمان پیک top اجرا کنید و PIDهای پردازشگر را ثبت کنید.
  2. با ps -p PID -o pid,cmd,%mem,%cpu جزئیات پردازش را بیابید.
  3. لاگ اپلیکیشن را برای همان بازه زمانی بررسی کنید تا روتین‌های زمان‌بر مشخص شوند.
  4. اگر حافظه به‌سرعت تخلیه می‌شود، با pmap PID نقشه حافظه را بررسی کنید و در صورت نشتی حافظه، سرویس را ریستارت کنترل‌شده کنید.
  5. برای دیسک پر، بزرگ‌ترین دایرکتوری‌ها را با du شناسایی و فایل‌های قدیمی را فشرده یا حذف نمایید.

اگر پس از این اقدامات مشکل همچنان باقی ماند، ثبت داده به‌صورت زمان‌بندی‌شده برای حداقل 72 ساعت کمک می‌کند الگوها را واضح‌تر ببیند.

معیارها، آستانه‌ها و اقدام‌های پیشنهادی

معیار آستانه هشدار نمونه اقدام سریع
مصرف CPU بیش از 80٪ برای بیش از 5 دقیقه شناسایی پروسه‌ها، محدودسازی یا زمان‌بندی مجدد وظایف سنگین
حافظه (RAM) استفاده بیش از 85٪ و swap فعال شدن سنگین بررسی نشتی حافظه، ریست کنترل‌شده سرویس‌ها، افزایش RAM یا swap
فضای دیسک بیش از 90٪ یا کاهش شدید inode پاک‌سازی لاگ‌ها، فشرده‌سازی بکاپ‌ها، حذف فایل‌های موقت

اسکریپت نمونه برای جمع‌آوری روزانه

این اسکریپت ساده هر ساعت اطلاعات پایه را ثبت می‌کند و می‌تواند به کرون اضافه شود. (در بخش اسکریپت، به دقت مسیرها و مجوزها را تنظیم کنید):

# /usr/local/bin/collect-resources.sh
mkdir -p /var/log/resource-snapshots
DATE=$(date +"%F-%H%M")
top -b -n 1 > /var/log/resource-snapshots/top-$DATE.txt
free -m > /var/log/resource-snapshots/free-$DATE.txt
df -h > /var/log/resource-snapshots/df-$DATE.txt

افزودن به کرون برای اجرا هر ساعت:

0 * * * * root /usr/local/bin/collect-resources.sh

این نمونه پایه‌ای است؛ در محیط‌های تولیدی بهتر است فایل‌ها به یک سیستم آنالیز مرکزی ارسال و فشرده‌سازی و نگهداری کنترل‌شده داشته باشند.

راهکارهای کوتاه‌مدت، میان‌مدت و بلندمدت

  • کوتاه‌مدت: پاک‌سازی لاگ، محدود کردن workerها، راه‌اندازی مجدد سرویس در ساعات کم ترافیک.
  • میان‌مدت: اعمال کش مناسب، ایندکس‌گذاری پایگاه‌داده، بهینه‌سازی کوئری‌ها و بررسی پیکربندی سرویس‌ها.
  • بلندمدت: مانیتورینگ مستمر، تعریف هشدارهای خودکار و سیاست نگهداری لاگ و بکاپ برای جلوگیری از پُر شدن ناگهانی دیسک.

الگوهای رایج و سناریوهای تشخیصی

سناریو ۱: افزایش ناگهانی CPU در ساعت مشخص

اگر پیک CPU در ساعات مشخصی تکرار می‌شود، احتمالاً کرون یا تسک زمان‌بندی‌شده عامل است. بررسی کرون‌تَب‌ها و لاگ‌های زمان‌بندی‌شده اولین گام است.

سناریو ۲: استفاده زیاد از حافظه و فعال شدن swap

نشتی حافظه در یک فرآیند ممکن است باعث افزایش استفاده RAM و فعال شدن swap شود؛ در این حالت با بررسی ps و pmap فرآیند خاطی را بیابید و سپس به رفع کد یا راه‌اندازی مجدد کنترل‌شده بپردازید.

سناریو ۳: دیسک پر اما فضای آزاد نشان داده می‌شود

گاهی فایل حذف شده اما هنوز توسط فرآیندی باز نگه داشته شده است؛ در این حالت lsof | grep deleted می‌تواند فایل‌های باز حذف‌شده را نشان دهد و با ریستارت فرآیند مربوطه فضا بازیابی می‌شود.

پرسش‌های متداول (FAQ)

چقدر زمان لازم است تا علت کندی مشخص شود؟

بسته به پیچیدگی مشکل، از چند دقیقه برای موارد ساده تا چند روز برای الگوهای تکرارشونده زمان لازم است. ثبت داده و تحلیل تاریخی روند تشخیص را تسریع می‌کند.

آیا همیشه نیاز به افزودن منابع سخت‌افزاری است؟

خیر. بسیاری از مشکلات با بهینه‌سازی کد، کش و پاک‌سازی دیسک حل می‌شود. قبل از هر ارتقا، حتماً یک بررسی مصرف cpu، ram disk انجام دهید و براساس داده تصمیم بگیرید.

اگر به داشبورد دسترسی ندارم چگونه پیش بروم؟

از SSH استفاده کنید و داده‌های پایه را با دستورات یادشده جمع‌آوری نمایید یا از تیم پشتیبانی درخواست گزارش زمان‌بندی‌شده کنید.

منابع و مراجع

مستندات دستوراتی که معرفی شده‌اند، توضیحات گزینه‌ها و خروجی را دقیق‌تر شرح می‌دهند. برای اطلاعات بیشتر درباره دستور df می‌توانید به مستند رسمی مراجعه کنید: راهنمای دستور df.

جمع‌بندی

بررسی منظم و سیستماتیک بررسی مصرف cpu، ram disk از طریق داشبورد و ابزارهای خط فرمان، همراه با ثبت داده دوره‌ای، به شما امکان می‌دهد علت کندی را سریع‌تر شناسایی و اقدام مناسب را اجرا کنید. تعریف آستانه‌های هشدار، سیاست نگهداری لاگ و اسکریپت‌های جمع‌آوری معیارها از مهم‌ترین گام‌ها برای حفظ پایداری سرویس‌ها هستند.

برچسب‌ها: 302