اگر VPS شما بهتازگی کند شده، سایتها با تأخیر باز میشوند، اتصال SSH قطع و وصل میشود یا اجرای دستورات زمان زیادی میبرد، احتمالاً یکی از منابع اصلی سرور با مشکل مواجه شده است.
کندی VPS همیشه به معنی ضعیف بودن سرور نیست. گاهی یک پردازش، مصرف بیش از حد RAM، پر شدن فضای دیسک، عملیات سنگین روی هارد یا حتی مشکلات شبکه باعث میشود عملکرد سرور بهشدت کاهش پیدا کند.
در این آموزش یاد میگیریم چگونه مرحلهبهمرحله مشخص کنیم مشکل از CPU، RAM، Disk یا Network است و بعد چه کاری برای رفع آن انجام دهیم.
1. ابتدا مشخص کنید مشکل واقعاً از VPS است
قبل از تغییر تنظیمات یا ارتقای سرور، بهتر است وضعیت منابع را بررسی کنیم.
اگر از Linux مانند Ubuntu یا Debian استفاده میکنید، ابتدا با SSH وارد VPS شوید و دستور زیر را اجرا کنید:
uptime
خروجی ممکن است چیزی شبیه این باشد:
09:30:12 up 15 days, 4:21, 2 users, load average: 5.20, 4.80, 4.30
مهمترین قسمت، عبارت:
load average
است.
این مقدار نشان میدهد چه میزان کار در صف پردازنده قرار گرفته است.
اگر VPS شما یک هسته CPU داشته باشد و Load به شکل مداوم بالاتر از 1 باشد، احتمال وجود فشار روی CPU یا I/O وجود دارد.
در سرورهای چند هستهای باید Load را با تعداد هستهها مقایسه کنید.
برای مشاهده تعداد هستههای CPU:
nproc
مثلاً اگر خروجی:
4
باشد، VPS شما چهار هسته دارد.
2. بررسی مصرف CPU
یکی از رایجترین دلایل کند شدن VPS، مصرف بالای CPU است.
برای مشاهده پردازشهای فعال، دستور زیر را اجرا کنید:
top
یا اگر روی سرور نصب باشد:
htop
در htop میتوانید پردازشهایی که بیشترین CPU را مصرف میکنند مشاهده کنید.
برای مثال:
PID USER CPU% MEM%
2451 mysql 85.2 12.4
3122 www-data 35.1 8.2
در این مثال MySQL بیشترین CPU را مصرف میکند.
پیدا کردن پردازشهای پرمصرف
برای نمایش پردازشهایی که بیشترین CPU را مصرف میکنند:
ps aux --sort=-%cpu | head
این دستور معمولاً سریعترین راه برای پیدا کردن عامل مصرف بالای CPU است.
اگر یک پردازش برای مدت طولانی CPU زیادی مصرف میکند، باید بررسی کنید آن پردازش متعلق به چه سرویس یا برنامهای است.
3. اگر CPU روی 100 درصد است چه کنیم؟
اول نباید بلافاصله پردازش را Kill کنید.
ابتدا نام برنامه و PID آن را پیدا کنید.
مثلاً:
ps aux --sort=-%cpu | head -10
سپس بررسی کنید پردازش مربوط به چه برنامهای است.
اگر یک برنامه مشخص باعث مصرف بالا شده باشد، میتوانید لاگ آن سرویس را بررسی کنید.
برای سرویسهای systemd:
journalctl -u نام-سرویس
مثلاً:
journalctl -u nginx
یا:
journalctl -u mysql
همچنین بهتر است بررسی کنید آیا افزایش مصرف CPU دائمی است یا فقط در یک بازه زمانی اتفاق میافتد.
4. بررسی RAM
گاهی CPU وضعیت مناسبی دارد اما VPS به دلیل کمبود RAM بسیار کند میشود.
برای بررسی RAM:
free -h
مثلاً:
total used free shared buff/cache available
Mem: 4Gi 3.7Gi 120Mi 100Mi 200Mi 250Mi
Swap: 1Gi 900Mi 124Mi
مهمترین مقدار:
available
است.
اگر مقدار Available بسیار کم باشد، سرور ممکن است تحت فشار حافظه قرار گرفته باشد.
5. Swap چیست و چرا مهم است؟
Linux در صورت کمبود RAM میتواند بخشی از اطلاعات را روی Disk منتقل کند.
این فضا معمولاً با نام:
Swap
شناخته میشود.
برای بررسی Swap:
swapon --show
اگر هیچ خروجی مشاهده نکردید، ممکن است Swap روی VPS فعال نباشد.
همچنین میتوانید با دستور زیر وضعیت RAM و Swap را ببینید:
free -h
فعال شدن Swap میتواند در بعضی شرایط از Crash کردن برنامهها به دلیل کمبود RAM جلوگیری کند، اما نباید آن را جایگزین RAM واقعی در نظر گرفت.
اگر سرور دائماً در حال استفاده شدید از Swap باشد، ممکن است عملکرد آن بهشدت کاهش پیدا کند؛ چون Disk معمولاً بسیار کندتر از RAM است.
6. پیدا کردن برنامهای که RAM زیادی مصرف میکند
دستور زیر پردازشها را بر اساس مصرف RAM مرتب میکند:
ps aux --sort=-%mem | head -10
مثلاً ممکن است مشاهده کنید:
mysql 25%
php-fpm 18%
node 15%
در این شرایط باید بررسی کنید آیا مصرف حافظه طبیعی است یا یک سرویس دچار Memory Leak شده است.
7. بررسی Disk
گاهی مشکل اصلی نه CPU است و نه RAM؛ بلکه Disk باعث کند شدن VPS شده است.
اول فضای ذخیرهسازی را بررسی کنید:
df -h
مثلاً:
Filesystem Size Used Avail Use%
/dev/vda1 50G 48G 2G 96%
اگر فضای Disk تقریباً پر شده باشد، بسیاری از سرویسها ممکن است با مشکل مواجه شوند.
برای مثال:
- MySQL ممکن است نتواند داده جدید بنویسد.
- Logها ممکن است با خطا مواجه شوند.
- برنامهها نتوانند فایل موقت ایجاد کنند.
- سیستمعامل عملکرد مناسبی نداشته باشد.
8. پیدا کردن فایلهای بزرگ
اگر فضای Disk کم است، ابتدا مشخص کنید چه چیزی فضای زیادی اشغال کرده است.
برای بررسی پوشههای اصلی:
du -h --max-depth=1 / | sort -h
برای بررسی /var:
du -h --max-depth=1 /var | sort -h
یکی از موارد رایج، Logهای بسیار بزرگ است.
مثلاً:
/var/log
را بررسی کنید.
du -sh /var/log/*
اگر یک Log حجم بسیار زیادی دارد، باید علت ایجاد مداوم آن را پیدا کنید، نه اینکه بدون بررسی صرفاً فایل را حذف کنید.
9. بررسی سرعت و فشار Disk
ممکن است فضای کافی داشته باشید اما Disk بسیار کند باشد.
برای بررسی I/O میتوانید از ابزارهایی مانند iostat استفاده کنید.
در Ubuntu یا Debian ممکن است لازم باشد ابتدا بسته sysstat را نصب کنید:
sudo apt install sysstat
سپس:
iostat -xz 1
این دستور اطلاعاتی درباره وضعیت I/O دیسک ارائه میدهد.
یکی از مقادیر مهم:
%util
است.
اگر Disk برای مدت طولانی درگیر باشد، ممکن است عملیات I/O به یکی از عوامل اصلی کندی تبدیل شده باشد.
10. تفاوت CPU بالا با Disk I/O بالا
این دو مشکل گاهی با یکدیگر اشتباه گرفته میشوند.
CPU بالا
معمولاً زمانی مشاهده میشود که پردازنده درگیر اجرای عملیات محاسباتی زیادی باشد.
مثلاً:
- پردازش سنگین PHP
- برنامه Node.js
- رمزنگاری
- پردازش تصویر
- Queryهای سنگین
- پردازشهای پسزمینه
Disk I/O بالا
در این حالت CPU ممکن است حتی کاملاً پر نباشد، اما سرور به دلیل خواندن و نوشتن زیاد روی Disk کند میشود.
علل رایج:
- Database
- Logهای زیاد
- Backup
- File processing
- Swap
- تعداد زیاد درخواستهای همزمان
11. بررسی Network
اگر منابع CPU، RAM و Disk طبیعی هستند اما سایت یا سرویس همچنان کند است، شبکه را بررسی کنید.
ابتدا اتصال اینترنت را آزمایش کنید:
ping -c 4 1.1.1.1
اگر Ping مناسب است، اتصال شبکه در سطح پایه برقرار است؛ اما این تست بهتنهایی کیفیت واقعی شبکه را مشخص نمیکند.
برای بررسی DNS:
ping -c 4 google.com
اگر IP قابل دسترسی است اما نام دامنه مشکل دارد، احتمال دارد مسئله مربوط به DNS باشد.
12. بررسی مصرف پهنای باند
گاهی VPS به دلیل مصرف بالای Network کند میشود.
برای بررسی ترافیک میتوانید از ابزارهایی مانند:
iftop
استفاده کنید.
در صورت نصب نبودن:
sudo apt install iftop
سپس:
sudo iftop
این ابزار ارتباطات شبکه و مصرف پهنای باند را نمایش میدهد.
ابزار دیگری که میتوانید استفاده کنید:
nload
13. بررسی اتصالهای زیاد
تعداد بسیار زیاد Connectionها نیز میتواند باعث ایجاد مشکل شود.
برای مشاهده Connectionها:
ss -s
برای مشاهده اتصالهای TCP:
ss -tan
اگر تعداد Connectionها غیرعادی زیاد است، باید بررسی کنید چه سرویسی باعث ایجاد آنها شده است.
برای مثال:
- Web Server
- Database
- API
- Bot
- سرویسهای داخلی
- حملات یا درخواستهای غیرعادی
14. بررسی Nginx یا Apache
اگر VPS برای میزبانی سایت استفاده میشود، Web Server یکی از اولین مواردی است که باید بررسی شود.
برای Nginx:
systemctl status nginx
برای Apache:
systemctl status apache2
همچنین وضعیت Logها را بررسی کنید.
Nginx:
tail -f /var/log/nginx/access.log
و:
tail -f /var/log/nginx/error.log
Apache:
tail -f /var/log/apache2/access.log
و:
tail -f /var/log/apache2/error.log
اگر تعداد زیادی درخواست غیرعادی مشاهده کردید، باید منبع آنها را بررسی کنید.
15. بررسی MySQL یا MariaDB
اگر VPS یک سایت PHP و MySQL دارد، Database میتواند یکی از عوامل اصلی کندی باشد.
وضعیت MySQL:
systemctl status mysql
برای مشاهده وضعیت کلی:
mysqladmin status
همچنین میتوانید Queryهای در حال اجرا را بررسی کنید:
SHOW PROCESSLIST;
اگر Queryهای زیادی در وضعیت انتظار یا اجرای طولانی هستند، ممکن است مشکل از Database باشد.
در چنین شرایطی باید Queryهای سنگین، Indexها و ساختار جداول بررسی شوند.
16. بررسی PHP-FPM
در سایتهای PHP، PHP-FPM نیز میتواند باعث مصرف بالای CPU یا RAM شود.
برای مشاهده وضعیت:
systemctl status php8.2-fpm
البته نسخه PHP ممکن است متفاوت باشد.
برای پیدا کردن نسخه PHP:
php -v
اگر تعداد زیادی PHP Worker فعال باشد و RAM کافی وجود نداشته باشد، VPS ممکن است با کمبود حافظه مواجه شود.
17. بررسی پردازشهای پسزمینه
گاهی عامل کندی یک سرویس اصلی نیست، بلکه یک Cron Job یا برنامه پسزمینه است.
Cronهای کاربر را بررسی کنید:
crontab -l
Cronهای سیستم نیز میتوانند در مسیرهای زیر قرار داشته باشند:
/etc/cron.d/
/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.weekly/
Backupهای خودکار، اسکریپتهای پردازش فایل یا Jobهای زمانبندیشده ممکن است در ساعت خاصی منابع زیادی مصرف کنند.
18. بررسی Load Average به شکل صحیح
فرض کنید سرور شما 4 هسته CPU دارد و Load به این شکل است:
load average: 0.50, 0.70, 0.80
این وضعیت معمولاً نشاندهنده فشار بالایی نیست.
اما اگر مشاهده کنید:
load average: 8.50, 9.20, 10.10
باید علت Load بالا را بررسی کنید.
نکته مهم این است که Load Average فقط به CPU محدود نمیشود و میتواند تحت تأثیر کارهای منتظر I/O نیز قرار بگیرد.
بنابراین برای پیدا کردن علت واقعی باید CPU، RAM و Disk I/O را در کنار هم بررسی کنید.
19. یک روش سریع برای پیدا کردن عامل اصلی
اگر VPS ناگهان کند شده، این مراحل را به ترتیب انجام دهید:
مرحله اول: CPU
top
سپس:
ps aux --sort=-%cpu | head -10
مرحله دوم: RAM
free -h
سپس:
ps aux --sort=-%mem | head -10
مرحله سوم: Disk
df -h
و:
du -h --max-depth=1 /var | sort -h
مرحله چهارم: Disk I/O
iostat -xz 1
مرحله پنجم: Network
ss -s
و در صورت نیاز:
iftop
مرحله ششم: سرویسها
systemctl --type=service --state=running
سپس سرویسهایی که بیشترین منابع را مصرف میکنند بررسی کنید.
20. اگر CPU، RAM و Disk همگی خوب هستند اما VPS کند است
در این شرایط چند احتمال دیگر وجود دارد.
محدودیت منابع توسط شرکت VPS
برخی VPSها منابع خود را به صورت اشتراکی ارائه میکنند. ممکن است روی کاغذ CPU مشخصی داشته باشید اما در زمانهای خاص عملکرد پردازنده یا Disk کاهش پیدا کند.
مشکل شبکه دیتاسنتر
ممکن است خود VPS مشکلی نداشته باشد و مسیر ارتباطی بین کاربر و دیتاسنتر دچار مشکل شده باشد.
مشکل DNS
اگر فقط باز شدن دامنه کند است، DNS را بررسی کنید.
مشکل برنامه
گاهی VPS کاملاً سالم است اما خود برنامه، سایت یا Database باعث کندی شده است.
حملات یا ترافیک غیرعادی
افزایش ناگهانی درخواستها میتواند منابع VPS را مصرف کند.
21. کارهایی که نباید بدون بررسی انجام دهید
وقتی VPS کند میشود، بعضی افراد سریعاً شروع به حذف فایلها یا Kill کردن پردازشها میکنند.
این کار میتواند مشکل را بدتر کند.
قبل از حذف فایلها بررسی کنید چه چیزی آنها را ایجاد کرده است.
قبل از Kill کردن یک پردازش نیز مطمئن شوید که آن پردازش مربوط به سرویس مهمی نیست.
همچنین نصب تعداد زیادی ابزار Monitoring بدون نیاز میتواند خودش مقداری از منابع سرور را مصرف کند.
22. چه زمانی VPS را ارتقا دهیم؟
اگر بعد از بررسی مشخص شد که منابع واقعاً برای workload شما کافی نیستند، ارتقای VPS میتواند منطقی باشد.
برای مثال:
- RAM دائماً نزدیک سقف است.
- CPU در بیشتر ساعات روز تحت فشار است.
- Disk I/O دائماً بالاست.
- پهنای باند محدود شده است.
- تعداد کاربران افزایش پیدا کرده است.
اما اگر مشکل ناشی از یک Query اشتباه، Memory Leak، Cron Job یا تنظیمات نادرست باشد، ارتقای VPS ممکن است فقط مشکل را موقتاً پنهان کند.
جمعبندی
کند شدن VPS را نباید فقط با افزایش منابع حل کرد. ابتدا باید مشخص شود کدام منبع یا سرویس باعث ایجاد مشکل شده است.
برای یک بررسی سریع میتوانید این دستورات را اجرا کنید:
uptime
top
free -h
df -h
iostat -xz 1
ss -s
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
با ترکیب این اطلاعات میتوان مشخص کرد مشکل بیشتر به CPU، RAM، Disk I/O، فضای ذخیرهسازی، Network یا یک سرویس خاص مربوط است.
مهمترین نکته این است که قبل از ارتقای VPS، ابتدا علت واقعی کندی را پیدا کنید. در بسیاری از موارد، اصلاح یک سرویس، Query، Cron Job، تنظیمات Web Server یا مشکل Disk میتواند عملکرد سرور را بدون افزایش هزینه بهبود دهد.
💬 دیدگاهها 0
هنوز دیدگاهی ثبت نشده است. اولین نفری باشید که نظر میدهید!
✍️ دیدگاه خود را بنویسید