حل مشكلة 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
المشاهدات
342
x32x01
x32x01
x32x01
الردود
0
المشاهدات
1K
x32x01
x32x01
x32x01
الردود
0
المشاهدات
768
x32x01
x32x01
x32x01
الردود
0
المشاهدات
220
x32x01
x32x01
x32x01
  • x32x01
الردود
0
المشاهدات
413
x32x01
x32x01
الوسوم : الوسوم
cpu load crypto miner ddos attack htop linux server load average mysql queries nginx rate limiting ssh ضغط المعالج
الدخول أو التسجيل السريع
نسيت كلمة مرورك؟

آخر المشاركات

إحصائيات المنتدى
المواضيع
2,368
المشاركات
2,581
أعضاء أكتب كود
572
أخر عضو
abdel
عودة
أعلى