جعل التمهيد في نظام Linux أسرع عن طريق تعطيل الخدمات غير الضرورية

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

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

جعل التمهيد في نظام Linux أسرع عن طريق تعطيل الخدمات غير الضرورية - لينكس

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

تحليل الوقت الذي تستغرقه كل خدمة ليتم تحميلها

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

افتح محاكي Terminal وأدخل هذا الأمر:

systemd-analyze

جعل التمهيد في نظام Linux أسرع عن طريق تعطيل الخدمات غير الضرورية - لينكس

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

جعل التمهيد في نظام Linux أسرع عن طريق تعطيل الخدمات غير الضرورية - لينكس

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

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

systemd-analyze critical-chain graphical.target

جعل التمهيد في نظام Linux أسرع عن طريق تعطيل الخدمات غير الضرورية - لينكس

هذا يدل على أن واجهة المستخدم الرسومية تم تحميلها في 2.126 ثانية. لا يمثل هذا حسابًا للوقت المطلوب لتحميل أدوات سطح المكتب المساعدة. لتمكين / تعطيل هذه ، شغّل مدير بدء تشغيل بيئة سطح المكتب.

أخيرًا ، ربما يكون الأمر الأكثر فائدة لغرض هذا البرنامج التعليمي هو:

systemd-analyze blame

جعل التمهيد في نظام Linux أسرع عن طريق تعطيل الخدمات غير الضرورية - لينكس

يمكنك التنقل في القائمة باستخدام مفاتيح الأسهم أو PAGE UP و PAGE DOWN. اضغط q للخروج.

استخدم systemctl لتعطيل الخدمات الغير الضرورية

كما ترى في الصورة السابقة ، تستغرق خدمة snapd 1.295 ثانية للتحميل. على SSD ، وهذا لا يكاد يذكر. ولكن على القرص الصلب ، فإن هذه الأنواع من المرات قد تكون بأوامر من عدة ثوان ، وسوف تضيف الكثير في النهاية. أيضا ، على SSD يتم تحميل العديد من الأشياء بالتوازي بكفاءة لا تصدق. على القرص الصلب HDD، من الصعب جدًا تحميل الخدمات بشكل متوازٍ. يجب أن تنتقل رؤوس القراءة التي تطفو على أطباق القرص من قطاع إلى آخر ، لذلك من المستحيل قراءة البيانات بشكل متوازٍ.

لتبسيط ذلك ، تخيل ذلك: إذا كنت ترى على SSD خمسة خدمات تتطلب وقتًا واحدًا للتشغيل ، فمن المحتمل أن يكون إجمالي الوقت المطلوب لتحميل كل هذه الخدمات أقل من 1.2 ثانية. إذا كنت تشاهد ، على القرص الثابت ، نفس الخدمات الخمسة في ثانية واحدة ، فمن المحتمل أن يكون إجمالي وقت التحميل أعلى من خمس ثوانٍ.

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

sudo systemctl disable snapd.service

ولكن ، إذا قمت بإعادة التشغيل ، ستلاحظ أن snap الخفي لا يزال قيد التشغيل. ذلك لأن التبعيات الأخرى قد تشغله ، حتى لو كان معطلاً. حاول أن ترى ما قد يكون:

systemd-analyze blame | grep snap
جعل التمهيد في نظام Linux أسرع عن طريق تعطيل الخدمات غير الضرورية - لينكس

snapd.seeded.service و snapd.socket هم الجناة هنا. يمكن أن تؤدي خدمة الطفل إلى إطلاق خدمة الأم الخاصة بها. عندما تقوم بتعطيل واحد ، فأنت فقط تخبره بعدم البدء تلقائياً في التمهيد بنفسه. ولكن هناك طريقة قوية لتجاوز هذه المشكلة.

استخدم systemctl من أجل إخفاء خدمة

sudo systemctl mask snapd.service

هذا بشكل أساسي يجعل ملف الخدمة null بحيث أن التطبيقات لا تجد طريقة لبدء الخدمة.

في معظم الحالات ، ليس الأمر معقدًا لتعطيل الخدمة. تم اختيار هذا المثال ليوضح لك كيفية التعامل مع سيناريوهات أكثر صعوبة. في هذه الحالة ، يجب تعطيل snapd.seeded.service و snapd.socket أو إخفاؤها أيضًا.

يوضح ما يلي وقت التمهيد المحسّن.

جعل التمهيد في نظام Linux أسرع عن طريق تعطيل الخدمات غير الضرورية - لينكس

الخلاصة

من 4.078 ، تم تقليل وقت التشغيل إلى 3.452 ثانية ، وهو ما يمثل انخفاضًا بنسبة ~ 15٪ تقريبًا. ليس سيئا للغاية ، مع الأخذ بعين الاعتبار خدمة واحدة فقط ، وهذا على SSD. على القرص الصلب ، يكون من الأسهل الحصول على نتائج أكثر أهمية.

في هذا المثال بالذات ، يمكن تعطيل المزيد من الخدمات باستخدام أمر مثل:

sudo systemctl mask avahi-daemon.service ModemManager.service thermald.service pppd-dns.service.

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

المصدر
زر الذهاب إلى الأعلى