المدونة

دروس وأدلة وأخبار المنتج.

الأدلة

أصبح خادمي بطيئًا: كيف تفحص RAM وCPU والقرص

2 نوفمبر 2026 5 د للقراءة
مشاركة هذه المقالة

إذا أصبح خادمك بطيئًا فانظر في ثلاثة أشياء: RAM وCPU والقرص. اتصل ونفّذ ثلاثة أوامر: free -h للذاكرة وtop للمعالج وdf -h للقرص. والذي يمتلئ منها هو عنق الزجاجة. وإذا بدت الثلاثة سليمة فالمشكلة عادةً في التطبيق نفسه.

ابدأ بالحمل

متوسط الحمل (load average) هو متوسط عدد العمليات التي تنتظر CPU أو القرص. والأرقام الثلاثة الأولى في المخرجات أدناه هي المتوسطات في آخر 1 و5 و15 دقيقة. قارنها بعدد أنوية الخادم لديك:

cat /proc/loadavg

nproc

إذا بقي الحمل أعلى من عدد الأنوية طويلًا فالخادم لا يواكب عمله.

RAM: free -h

free -h

أهم عمود هو available. فإذا كان صغيرًا جدًا وكان صف Swap يمتلئ فقد نفدت RAM. وحين تنفد الذاكرة تقتل النواة إحدى العمليات الأكثر استهلاكًا للذاكرة (OOM killer). وإغلاق قاعدة بيانات أو تطبيق ويب من تلقاء نفسه علامة شائعة على ذلك. تحقق هكذا:

sudo dmesg -T | grep -i -E "out of memory|killed process"

CPU: top

top

في الشاشة التي تُفتح، يرتّب المفتاح P العمليات بحسب استخدام CPU ويرتّبها المفتاح M بحسب استخدام الذاكرة. واضغط q للخروج. وفي سطر CPU في الأعلى انظر إلى ما يلي:

  • us: حصة عمليات المستخدم. إذا كانت مرتفعة فهناك تطبيق يلتهم CPU.
  • wa: الوقت المقضي في انتظار إدخال القرص وإخراجه. إذا كان مرتفعًا فالمشكلة ليست في CPU بل في القرص.
  • st: الوقت "المسروق" من الخادم الافتراضي، أي الوقت الذي منحته طبقة المحاكاة الافتراضية للمعالج لجهة أخرى. إذا ظل مرتفعًا فقد لا تكون المشكلة داخل خادمك. في هذه الحالة تواصل مع الدعم.

القرص: df -h

df -h

df -i

يعرض الأمر الأول المساحة المستخدمة، ويعرض الثاني حد عدد الملفات (inodes). وحين يمتلئ القرص تمامًا لا تستطيع قواعد البيانات والتطبيقات الكتابة، فيبطؤ الخادم أو تظهر أخطاء. اعرف ما الذي يشغل المساحة:

sudo du -xh / --max-depth=1 2>/dev/null | sort -h | tail -n 8

إذا كبرت سجلات النظام فيمكنك تصغيرها بالأمر sudo journalctl --vacuum-size=200M. وإن كنت تستخدم Docker فإن docker system df يعرض المساحة التي تشغلها الصور والحاويات، وdocker stats --no-stream يعرض مقدار CPU والذاكرة الذي تستخدمه كل حاوية.

العَرَض والسبب المحتمل والحل

العَرَضالسبب المحتملما العمل
الصفحات بطيئة بين حين وآخر، وavailable منخفض، وswap ممتلئRAM غير كافيةأوقف الخدمات التي لا تحتاج إليها وقلّص إعدادات ذاكرة التطبيق (مثل عدد عمال PHP-FPM أو ذاكرة قاعدة البيانات). وإن لم يكفِ فارفع حجم الخادم.
تُغلق خدمة من تلقاء نفسها، وتظهر "killed process" في مخرجات dmesgنفدت الذاكرة وتدخل OOM killerأضف RAM أو قلّل استخدام الذاكرة.
عملية واحدة في top تشغل نواة كاملة باستمرارعملية عالقة أو إضافة معيبة أو حلقةاعثر على العملية، ثم أصلح التطبيق أو الإضافة وراءها أو عطّله.
الحمل مرتفع، وCPU خامل، وwa مرتفعالقرص هو ما يُنتظر (كتابة كثيفة أو swap)انظر إلى العمودين si وso في vmstat 1 5. وإذا كان swap مستخدمًا فأضف RAM.
df -h أو df -i ممتلئنفدت مساحة القرص أو inodesنظّف الملفات الكبيرة والسجلات. وإن بقي يمتلئ فارفع الحجم.
st يبقى مرتفعًاقد تكون المشكلة خارج خادمكتواصل مع الدعم.

في Seturack سرعة قرص كل خادم محدودة: قراءة مستمرة بسرعة 500 MB/s و20,000 IOPS، وكتابة بسرعة 200 MB/s و8,000 IOPS. فإذا بلغت قيمك في مخرجات iostat -x 1 5 هذه الأرقام فحمل القرص هو ما يبطئك. قلّل العمل بالتخزين المؤقت أو وزّعه على الزمن. وإن لم يكن iostat موجودًا فثبّته بالأمر sudo apt install -y sysstat.

متى يفيد swap؟

يستخدم swap القرص بدل RAM. يتيح للخادم تجاوز قفزات الذاكرة القصيرة دون OOM killer، لكنه ليس بسرعة RAM. فإذا بقي si وso في مخرجات vmstat 1 5 أعلى من الصفر فالخادم يكتب إلى swap باستمرار. والحل هو RAM لا swap. وإذا لم يكن لديك swap (لا يطبع swapon --show شيئًا) وأردت تخفيف القفزات فيمكنك إضافة ملف swap بحجم 2 GB. وهذه الأوامر لنظام ملفات ext4:

sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile

sudo mkswap /swapfile && sudo swapon /swapfile

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

إذا بدت الموارد سليمة

إذا بدت RAM وCPU والقرص مريحة، فتحقق من اسم العملية الأولى في top:

  • إذا كانت php-fpm أو apache2 أو nginx في الأعلى فالمشكلة عادةً في الموقع نفسه: إضافة ثقيلة أو غياب التخزين المؤقت أو قفزة مفاجئة في الزوار.
  • إذا كانت mysqld أو mariadbd في الأعلى فهناك استعلامات بطيئة. فعّل سجل الاستعلامات البطيئة في قاعدة البيانات وانظر أي الاستعلامات تطول.
  • إذا ظلت عملية لا تعرفها تلتهم CPU فقد يكون الخادم مخترقًا. غيّر كلمات مرورك، وافحص الجلسات المفتوحة ومخرجات sudo ss -tulpn، وأعد تثبيت الخادم بنظام نظيف إن لزم.

متى ترفع الحجم

الترتيب هو: اضبط أولًا، ثم أضف التخزين المؤقت، ثم أوقف العمل غير اللازم. فإذا بقي الحمل مرتفعًا بعد ذلك فارفع حجم الخادم. في اللوحة افتح تبويب الحجم لخادمك، وحرّك المنزلقات إلى الحجم الجديد وأكّد. وبعد الدفع يعيد الخادم تشغيل نفسه مرة واحدة ويعود بالحجم الجديد. يبقى عنوان IP وبياناتك كما هي، وتدفع فقط الفرق عن الأيام المتبقية. ويمكنك تكبير RAM وvCore والقرص كلًّا على حدة، فترفع فقط ما ينقصك. رفع الحجم يكبّر القرص، أما خفضه فلا يصغّره. وللتفاصيل راجع مقالة تغيير الحجم.

إذا لم يستجب الخادم إطلاقًا بسبب الحمل فقد لا يتصل SSH. في هذه الحالة افتح وحدة تحكم VNC من اللوحة، أو أعد تشغيل الخادم من اللوحة.

التعليقات0

لا توجد تعليقات بعد

كن أول من يشارك رأيه.

الانضمام إلى النقاش

يرجى تسجيل الدخول أو إنشاء حساب لترك تعليق.

لا تفوت أي مقالة

تلق أحدث الشروحات والأدلة وأخبار منتجاتنا في بريدك الوارد.

تم اشتراكك في نشرتنا البريدية.