مشكلة اتصال SSH: لا يمكن الاتصال بالخادم — الحل
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
اكتشاف وحل تسربات الذاكرة على خوادم Linux، تحديد العملية التي تستهلك RAM، وتطبيق حلول قصيرة وطويلة المدى.
يحدث تسرب الذاكرة عندما يفشل تطبيق في تحرير الذاكرة التي استخدمها بشكل صحيح، مما يتسبب في زيادة مستمرة في استخدام RAM بمرور الوقت. في نهاية المطاف، ينفد الذاكرة من النظام، ويمتلئ مساحة التبادل، ويتباطأ الخادم أو يتعطل.
علامات نموذجية لتسرب الذاكرة:
free -h تتناقص تدريجياً# حالة الذاكرة العامة
free -h
# معلومات الذاكرة التفصيلية
cat /proc/meminfo
# سجلات OOM-killer
dmesg | grep -i 'oom\|killed process\|out of memory'
# الترتيب حسب استخدام الذاكرة
ps aux --sort=-%mem | head -20
# المراقبة في الوقت الفعلي مع top
top
# اضغط 'M' للترتيب حسب الذاكرة
# تحليل ذاكرة أكثر تفصيلاً مع smem
sudo apt install smem -y
smem -r -k | head -20
# إيجاد PID عملية معينة
pgrep -f app_name
# تسجيل استخدام الذاكرة كل 30 ثانية
while true; do
echo "$(date): $(cat /proc/PID/status | grep VmRSS)"
sleep 30
done
# تعيين حد ذاكرة Node.js
node --max-old-space-size=512 app.js
# إعادة تشغيل تلقائي مع PM2 عند الوصول لحد الذاكرة
pm2 start app.js --max-memory-restart 500M
# /etc/php/8.x/fpm/pool.d/www.conf
# pm.max_requests = 500
# memory_limit = 256M
# مسح ذاكرة التخزين المؤقت للصفحات (آمن)
sync && echo 1 > /proc/sys/vm/drop_caches
# إعادة تشغيل الخدمة
sudo systemctl restart service_name
# حد الذاكرة مع systemd
# [Service]
# MemoryMax=512M
# إنشاء ملف تبادل
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
لحل تسربات الذاكرة، حدد أولاً باستخدام ps aux وsmem أي عملية تستهلك الذاكرة، ثم أكد التسرب بمراقبة النمو بمرور الوقت. على المدى القصير، أعد تشغيل الخدمة المتسربة وطبق حد الذاكرة مع systemd. للإصلاح الدائم، افحص الكود المصدري للتطبيق باستخدام أدوات مثل Valgrind أو heapdump أو jmap.
الاستخدام العالي للذاكرة قد يكون طبيعياً. في تسرب الذاكرة، يزداد استخدام RAM باستمرار ولا ينخفض أبداً. إذا عاد للطبيعي بعد إعادة تشغيل الخادم، فهناك تسرب.
OOM-killer هو آلية في نواة Linux تقتل تلقائياً العملية الأكثر استهلاكاً للذاكرة لإنقاذ النظام عند نفاد الذاكرة. استخدم 'dmesg | grep oom' لمعرفة أي عملية تم قتلها.
مسح ذاكرة التخزين المؤقت للصفحات (echo 1) آمن بشكل عام، لكنه يزيد مؤقتاً من I/O القرص. تجنب استخدامه في أوقات الذروة في بيئة الإنتاج.
الإصلاح الدائم يتطلب فحص الكود المصدري للتطبيق. استخدم أدوات مثل Valgrind أو heapdump أو jmap. على المدى القصير، طبق حد MemoryMax مع systemd.
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
دليل حل مشاكل اتصال RDP: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ RDP وخطوات استكشاف الأخطاء وإصلاحها.
دليل اختبار الشبكة باستخدام WinMTR وLinux MTR، إنشاء قاعدة فلترة ICMP وإرسال النتائج لفريق الدعم. تشخيص فقدان الحزم والتأخير في الشبكة.