حل مشكلة 100% CPU Load على السيرفر

x32x01
  • بواسطة x32x01 ||
لو دخلت على السيرفر ولقيت:
  • CPU = 100%
  • Load Average عالي جدًا
  • السيرفر تقيل فجأة
  • الموقع بيقع أو بيرد ببطء
ومتأكد إن مفيش ترافيك طبيعي يبرر ده 👀
يبقى غالبًا عندك مشكلة تقنية لازم تتحل فورًا ⚠️

وأهم نصيحة قبل أي حاجة: ❌ متجريش تزود Resources
✅ افهم السبب الأول
يلا نشوف السيناريوهات الأكثر شيوعًا 👇



أول خطوة: ادخل SSH واعرف مين السبب 👨‍💻​

ادخل على السيرفر بـ SSH وشغل الأوامر دي: top أو: htop
ولو عايز تشوف العمليات حسب استهلاك المعالج:
Bash:
ps aux --sort=-%cpu | head
هتلاقي Process معين هو اللي عامل Load عالي.
ومن هنا نبدأ نحلل 👇



1️⃣ احتمال وجود Crypto Miner مخفي ⛏️💀​

لو لقيت Process غريب باسمه مش معروف أو شغال من مسار مش منطقي زي:
Code:
/tmp/.xyz/miner
فده بنسبة كبيرة Crypto Miner Malware.

تعمل ايه؟​

  • اقفل الـ Process فورًا: kill -9 PID
  • اعرف مكانه: ls -lah /proc/PID/exe
  • راجع Logs علشان تعرف دخل منين (ثغرة؟ كلمة مرور ضعيفة؟).
⚠️ دي أخطر حالة.



2️⃣ Crawler غشيم عامل Loop جوه الموقع 🤖​

ممكن Bot بيعمل Crawl سريع جدًا لكل الصفحات.
هتلاحظ:
  • Load جاي من PHP أو Python
  • ومعاه ضغط على Web Server زي:
    • Nginx
    • Apache
    • IIS

اعرف منين؟​

راجع Access Logs:
Code:
tail -f /var/log/nginx/access.log
لو لقيت IP بيعمل آلاف Requests في ثواني 👀
يبقى ده Bot غشيم.

الحل:​

  • Limit max connections per IP
  • Limit max requests per connection
مثال في Nginx:
Code:
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;
limit_req zone=one burst=10 nodelay;



3️⃣ احتمال DDOS Attack 🚨​

لو لقيت:
  • IP واحد أو Range IPs
  • Requests ضخمة جدًا في وقت قصير
  • استهلاك عالي جدًا للـ Network
راجع:
Code:
netstat -ant | grep :80 | wc -l
أو:
Code:
ss -s

الحل:​

  • Rate limiting
  • Firewall rules
  • Cloudflare أو WAF
  • Fail2Ban



4️⃣ خلل برمجي مسبب ضغط على Database 🗄️​

أحيانًا المشكلة مش هجوم… المشكلة في الكود نفسه.
مثال:
SQL:
SELECT * FROM huge_table;
بدون WHERE وبدون LIMIT ومفيش Cache 👀
لو الموقع مش مفعّل:
  • Redis Cache
  • Memcached
  • Dynamic Page Cache
فكل زيارة هتضغط على الـ Database.

الحل:​

  • فعل Caching
  • راجع الإضافات لو CMS
  • اقفل Plugins مؤقتًا للتجربة



5️⃣ مفيش Indexes على الجداول الكبيرة 📊​

لو قاعدة البيانات كبيرة ومفيش Indexes مظبوطة:
الاستعلامات هتبقى بطيئة جدًا.
افتح MySQL وشوف:
SQL:
EXPLAIN SELECT * FROM users WHERE email='test@example.com';
لو لقيت type = ALL يبقى مفيش Index 😬
الحل:
SQL:
CREATE INDEX idx_email ON users(email);



6️⃣ Background Process في Infinity Loop 🔁​

ممكن Cron Job أو Script شغال في Loop لا نهائي.
شوف: crontab -l
أو راجع Services شغالة دايمًا.
لو لقيت Script بيستهلك CPU باستمرار
راجع الكود وشوف فين الـ while(true) الغلط.



7️⃣ ضغط عالي على Virtual Memory 🧠​

لو الـ RAM مليانة والسيرفر بدأ يستخدم Swap فالـ CPU هيعاني جدًا.
شوف: free -m
ولو Swap عالي يبقى لازم:
  • تقلل Processes
  • تزبط Memory limits
  • تراجع التطبيقات الشغالة



أهم نصيحة 💡​

ناس كتير أول ما تشوف Load عالي تقول:
نزود RAM
نزود CPU
نعمل Upgrade للسيرفر
وده غلط 90% من الوقت.

لأنك لو عندك:
  • Malware
  • DDOS
  • Bug برمجي
  • Query غلط
زيادة Resources مش هتحل السبب… هتأجل الانفجار بس 😅



الخلاصة 👑​

لو السيرفر عامل 100% CPU Load فجأة:
1️⃣ راجع الـ Processes
2️⃣ افحص الـ Logs
3️⃣ شوف هل Malware ولا Bot ولا DDOS
4️⃣ راجع الكود وقاعدة البيانات
5️⃣ متزودش Resources قبل ما تفهم السبب​
السيرفر دايمًا بيقولك فين المشكلة…
بس لازم تعرف تقرأه صح 👨‍💻🔥
 
المواضيع ذات الصلة
x32x01
الردود
0
المشاهدات
1K
x32x01
x32x01
x32x01
الردود
0
المشاهدات
49
x32x01
x32x01
x32x01
الردود
0
المشاهدات
384
x32x01
x32x01
x32x01
الردود
0
المشاهدات
984
x32x01
x32x01
x32x01
الردود
0
المشاهدات
896
x32x01
x32x01
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟
إحصائيات المنتدى
المواضيع
2,509
المشاركات
2,702
أعضاء أكتب كود
577
أخر عضو
سراب
عودة
أعلى