كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux

عند استخدام Linux، قد تواجه بعض المشاكل في الأداء بسبب العمليات التي تستهلك الكثير من الموارد. لحسن الحظ، يقدم سطر الأوامر في Linux مجموعة من الأدوات التي يمكنها مساعدتك في تحديد العمليات التي تؤثر على أداء النظام. باستخدام أوامر مثل top, htop, و ps، يمكنك عرض العمليات الجارية وتحليل استهلاك الذاكرة والمعالج. في هذه المقالة، سنستعرض كيفية استخدام هذه الأدوات بفعالية لاكتشاف العمليات التي تستنزف الموارد، مما يساعدك في تحسين أداء النظام وحل المشكلات بشكل أسرع.

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

النقاط الرئيسية

  • تتطلب جميع العمليات على Linux دورات RAM وCPU، مما قد يؤدي إلى المنافسة على هذه الموارد.
  • تساعد أدوات مثل free وtop وhtop في تحديد مستهلكي الذاكرة واستخدام CPU العالي.
  • استخدم أوامر مثل ps وtop لتحديد العمليات المخالفة وإيقافها واستعادة أداء النظام.

تحتاج كل قطعة من التعليمات البرمجية التي تعمل داخل جهاز الكمبيوتر الذي يعمل بنظام Linux إلى دورات RAM وCPU. تؤدي العملية التي تستغرق أكثر من حصتها العادلة إلى إبطاء العمليات الأخرى. إليك كيفية العثور على الجناة.

عملية موازنة العمليات والموارد

دورات RAM وCPU هي موارد محدودة. عندما يتم تنفيذ تعليمات برمجية لبرنامج، يتم تشكيل عملية. جنبًا إلى جنب مع عمليات نظام التشغيل، هناك العمليات التي تدير بيئة سطح المكتب الخاصة بك، وأي أوامر أو تطبيقات تقوم بتشغيلها. كل هذه تتطلب وقت CPU وRAM.

يتعين على Linux وCPU إدارة تخصيص RAM وموازنة وجدولة عبء عمل CPU عبر النوى والخيوط، للتأكد من حصول جميع العمليات على حصة.

من المفترض كتابة التطبيقات للتأكد من أنها لا تحتكر جهازك، ولكن في بعض الأحيان تسوء الأمور، وقد تحاول العمليات الاستيلاء على كل ذاكرة الوصول العشوائي لديك واحتكار وحدة المعالجة المركزية لديك.

اقرأ أيضا:  لقد جعلت أصدقائي يعتقدون أنني مخترق لنظام Linux باستخدام هذه الأوامر الخمسة الممتعة

في هذه الحالة، تحتاج إلى أن تكون قادرًا على تحديد عملية المدرج.

التحقيق في الاستخدام المرتفع لذاكرة الوصول العشوائي

يستخدم Linux ذاكرة الوصول العشوائي المجانية كذاكرة تخزين مؤقتة. على الرغم من أنه قد يبدو أن ذاكرة الوصول العشوائي لديك كلها قيد الاستخدام، إلا أن هذا ربما يكون انطباعًا خاطئًا. إذا لزم الأمر، يتم إسقاط العناصر من ذاكرة التخزين المؤقت لتخصيص ذاكرة الوصول العشوائي للعمليات العادية.

أمر free
يمنحك أمر free نظرة عامة سريعة على استخدام الذاكرة. يجعل الخيار -h (البشري) الناتج أسهل في القراءة.

لقد قمت بتشغيل الأمر ثلاث مرات في نافذة طرفية. في نافذة طرفية أخرى، قمت بتشغيل برنامج طلب كميات كبيرة من ذاكرة الوصول العشوائي.

free -h
free -h
free -h

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

تنخفض ذاكرة الوصول العشوائي المجانية بمعدل مثير للقلق. نحتاج إلى تحديد العملية أو العمليات التي تقف وراء ذلك.

قراءة /proc/meminfo

تستخرج أدوات مثل top وhtop معلومات الذاكرة الخاصة بها من الملف الوهمي /proc/meminfo. ولأن /proc/meminfo يتصرف مثل الملف، فيمكننا استخدام أدوات مساعدة شائعة مثل cat وless للنظر في محتوياته.

less /proc/meminfo

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

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

استخدام الأمر vmstat للعثور على مستهلِكي الذاكرة

يمكن أن يمنحنا الأمر vmstat عرضًا لاستخدام الذاكرة الافتراضية بمرور الوقت.

لرؤية أربع مجموعات من النتائج، بفاصل خمس ثوانٍ، مع عرض القيم بالميجابايت، يمكننا استخدام هذا الأمر:

vmstat 5 4 -S M

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

استخدام top وhtop للعثور على مستنزفي الذاكرة

يوفر كل من top وhtop لوحة معلومات ديناميكية لمعلومات النظام، مع جدول عملية يعرض سطرًا واحدًا من المعلومات لكل عملية.

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

لفرز جدول العملية حسب استخدام ذاكرة الوصول العشوائي (RAM)، اضغط على Shift+M.

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

تم تشغيل برنامج يسمى gobble مرتين. وهو يستخدم ثلثي ذاكرة الوصول العشوائي. سنقوم بإيقاف هاتين العمليتين.

اضغط على k لبدء وظيفة الإيقاف.

اقرأ أيضا:  شرح الطوابع الزمنية لملفات Linux لـ : atime وmtime وctime

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

في الأعلى، نحتاج إلى توفير معرف العملية التي نرغب في قتلها. بشكل افتراضي، ستستخدم وظيفة القتل معرف العملية في السطر العلوي. نظرًا لأننا قمنا بفرز الجدول حسب استخدام ذاكرة الوصول العشوائي (RAM)، فهذا هو المعرف الذي نريد استخدامه، لذا يمكننا فقط الضغط على Enter.

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

يُطلب منا تحديد الإشارة التي يجب أن نرسلها إلى العملية. SIGKILL هي الإشارة رقم تسعة. نحتاج إلى إدخال الرقم تسعة، ثم الضغط على Enter مرة أخرى.

إذا كررنا هذه العملية مرتين، فسيتم إنهاء كلا مثيلي برنامج gobble.

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

في htop، الأمر مشابه جدًا. انقل شريط التمييز إلى العملية التي تريد قتلها. اضغط على k لبدء عملية القتل. تظهر قائمة بالإشارات على يسار النافذة.

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

انقل شريط التمييز الصغير إلى إدخال SIGKILL 9، ثم اضغط على Enter.

استخدام الأمر ps للعثور على مستنزفي الذاكرة

يعطينا الأمر ps معرف العملية، ويمكنه أيضًا أن يعطينا معرف العملية الأصلية. إذا كان لديك الكثير من العمليات التي تستهلك الذاكرة والتي تم تشغيلها بواسطة نفس العملية الأصلية، فإن قتل العملية الأصلية يقتل عملياتها الفرعية أيضًا.

سنستخدم خيار -e (كل عملية)، وخياري -o (تنسيق الإخراج المحدد من قبل المستخدم). في إخراجنا نطلب:

  • pid: معرف العملية.
  • ppid: معرف العملية الأصلية.
  • comm: اسم الأمر.
  • %mem: النسبة المئوية لذاكرة الوصول العشوائي التي تستخدمها هذه العملية.
  • rss: حجم المجموعة المقيمة. هذه هي الذاكرة الفعلية غير المبدلة التي استخدمتها العملية، بالكيلوبايت. لاحظ أن هذا لا يحسب الذاكرة المحجوزة التي لم يتم استخدامها بالفعل، ولا يحسب الذاكرة الافتراضية. بالنسبة للمهمة المطروحة، فهذا مؤشر جيد تمامًا.
  • %cpu: هذا هو وقت وحدة المعالجة المركزية الذي استغرقته العملية حتى الآن، مقسومًا على الوقت الذي استغرقته العملية في التشغيل.
    نقوم بالفرز حسب الذاكرة. تعني علامة الطرح الفرز العكسي. يمكننا الحصول على أسوأ 10 أخطاء عن طريق توجيه النتائج عبر head.
ps -e -o pid,ppid,comm,%mem,rss,%cpu --sort=-%mem | head -10

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

التحقيق في الاستخدام المرتفع لوحدة المعالجة المركزية

إن إجراء تعقب مستنزفي وحدة المعالجة المركزية يشبه إلى حد كبير الإجراءات التي ناقشناها فيما يتعلق بمستنزفي الذاكرة. نحتاج إلى تحديد العملية أو العمليات المخالفة، والحصول على معرف العملية الخاصة بها.

اقرأ أيضا:  كيفية إلغاء تثبيت البرامج باستخدام سطر الأوامر في Linux

استخدام top وhtop للعثور على مستنزفي وحدة المعالجة المركزية

يمكننا استخدام top وhtop بنفس الطريقة تقريبًا التي استخدمناها لتعقب العمليات التي تستهلك الذاكرة. بشكل افتراضي، يقوم top وhtop بفرز جداول العمليات الخاصة بهما حسب عمود %CPU. إذا قمت بتغيير عمود الفرز، فيمكنك الضغط على Shift+P (للمعالج) لاستعادة الفرز حسب %CPU.

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

هناك عملية تسمى استنزاف وقت وحدة المعالجة المركزية بالكامل تقريبًا. بعد تحديد الجاني، يمكننا الضغط على k لاستدعاء وظيفة قتل العملية.

استخدام الأمر mpstat لمراقبة استخدام وحدة المعالجة المركزية

يجب أن تكون حريصًا عند قتل العمليات. يجب ترك بعضها، وخاصة عمليات النظام، كما هي. يمنحك الأمر mpstat لقطة لاستخدام وحدة المعالجة المركزية لعمليات المستخدم والنظام.

ستحتاج إلى تثبيت mpstat على Fedora وManjaro، ولكنه مثبت بالفعل على جهاز الكمبيوتر الخاص بنا الذي يعمل بنظام Ubuntu.

على Fedora، تحتاج إلى كتابة:

sudo dnf install sysstat

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

في Manjaro، الأمر هو:

sudo pacman -S sysstat

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

سنستخدم الخيار -P all (كل المعالجات)، ونطلب التقارير كل ثانيتين، بإجمالي خمسة تقارير.

mpstat -P all 2 5

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

يمكننا أن نرى أن الحمل على وحدة المعالجة المركزية يأتي من جانب المستخدم، وليس من جانب النظام. الصف السادس هو متوسط ​​التقارير الخمسة التي طلبناها.

استخدام ps للعثور على العمليات التي تستهلك وحدة المعالجة المركزية
يمكننا استخدام ps للبحث عن العمليات التي تستهلك وحدة المعالجة المركزية أيضًا. من خلال تعديل بسيط على الأمر السابق، يمكننا الفرز حسب وحدة المعالجة المركزية.

ps -e -o pid,ppid,comm,%mem,rss,%cpu --sort=-%cpu | head -10

كيف تجد العمليات التي تستهلك الموارد في سطر أوامر Linux - %categories

إن الإدخال الخاص بـ ps هو علامة خاطئة، فنحن نعلم أنه تم تشغيله لجزء من الثانية فقط. في السطر الثاني، يمكننا رؤية معرف العملية التي تحتكر وحدة المعالجة المركزية. وباستخدام هذه المعلومات، يمكننا استخدام top أو htop، أو الأمر kill، لإنهاء العملية.

القليل من التنظيف

في معظم الأحيان، سيعمل جهاز الكمبيوتر الذي يعمل بنظام Linux بشكل جيد، مع تشغيل جميع العمليات ضمن حدود مقبولة. إذا لاحظت أن جهاز الكمبيوتر الخاص بك أصبح بطيئًا، فقم بفحصه باستخدام هذه الأدوات. قد تجد أن هناك عملية تستهلك الذاكرة أو وحدة المعالجة المركزية بشكل مفرط.

من خلال الأدوات والطرق التي تم استعراضها في هذا المقال، يمكنك بسهولة العثور على العمليات التي تستهلك الموارد في Linux واتخاذ الإجراءات اللازمة لتحسين أداء النظام. تعد إدارة العمليات في Linux من المهام الأساسية للمستخدمين الذين يتعاملون مع أنظمة معقدة. باستخدام هذه الأدوات المتاحة في سطر الأوامر، يمكنك ضمان الحفاظ على استقرار وسرعة النظام.

قد يعجبك ايضا