Improving performance (العربية)/Boot process (العربية)
تحسين الأداء لإقلاع النظام يؤدي إلى خفض أوقات الانتظار لمرحلة الإقلاع ووسيلة لمعرفة المزيد عن كيفية تفاعل بعض ملفات النظام والبرامج النصية مع بعضها البعض. هذا المقال يحاول تجميع الطرق عن كيفية تحسين الأداء لإقلاع لنظام آرتش لينكس .
تحديد الاختناقات (عنق الزجاجة)
يمكن استخدام الأمر systemd-analyze
لعرض بيانات عن أوقات إقلاع الخدمات ، إضافة إلى خريطة svg لعرض انتظار الوحدات لتبعياتها . انظر systemd-analyze(1) لمزيد من التفاصيل.
تصريف نواة مخصصة
إن تصريف نواة مخصصة سوف يخفض من زمن الإقلاع وحجم الذاكرة المستخدمة . اقرأ المزيد عن تصريف النواة.
البدء المبكر للخدمات
أحد الميزات المحورية ل systemd هي D-Bus وتنشيط المقبس . هذا يؤدي إلى بدء الخدمات عندما يتم الوصول إليها أولا وعموما ذلك أمر جيد، على كل حال إذا كنت تعرف أن هذه الخدمة (مثل UPower[archived page]) سوف تبدأ دوما أثناء الإقلاع ، حينئذ سيكون الزمن الإجمالي للإقلاع أقل إذا تم إقلاع هذه الخدمة بشكل مبكر على قدر الإمكان. ذلك يمكن إنجازه ( إذا كان ملف هذه الخدمة معد لذلك ، في معظم الأحوال يكون كذلك) عن طريق تنفيذ :
# systemctl enable upower
ذلك سيؤدي إلى بدء UPower بسرعة قدر الإمكان ، بدون التسبب في تسابق مع المقبس أو تفعيل D-Bus.
التشغيل على مراحل
بعض تطبيقات العتاد staggered spin-up, تتسبب في جعل نظام التشغيل يفحص واجهات موصلات ATA بشكل تسلسلي ، والتي تشغل برامج التشغيل واحدا بعد واحد ، وتقلل من استهلاك الطاقة. وذلك يبطئ من سرعة الإقلاع، على الرغم من أن معظم اﻷجهزة المستهلكة لا تقدم أي فائدة على الإطلاق، حيث إن المشغلات ستعمل مباشرة عند تشغيل زر الطاقة. للتأكد من كون SSS قيد التشغيل نفذ الأمر:
# dmesg | grep SSS
إذا كانت غير مستخدمة أثناء الإقلاع، فلن يظهر أي خرج للأمر.
ولوقف عملها أضف المدخلة libahci.ignore_sss=1
ل kernel line في ملف الإقلاع.
وصل نظام الملفات
شكرا للخطاف fsck
الخاص بالبرنامج mkinitcpio ، يمكنك تجنب التكلفة الباهظة لعملية تكرار إعادة وصل قسم الجذر بتغيير المدخلة ro
إلى rw
في سطر النواة وحذفها من ملف /etc/fstab
من خيارات قسم الجذر.
يمكن ضبط الخيارات ب rootflags=mount options...
على سطر ال kernel.
يمكنك أيضا حذف أنظمة ملفات API من ملف /etc/fstab
, حيث يقوم المخدم systemd بتوصيلها ذاتها، انظر pacman -Ql systemd | grep '\.mount$'
لمعرفة القائمة. من غير الشائع للمستخدمين أن يكون لديهم مدخلة /tmp تم ترحيلها من sysvinit ، ولكن قد يلاحظ من اﻷمر بأعلاه أن المخدم systemd اعتنى بذلك فعلا. ولذا عليك أن تقوم بحذفها بشكل آمن.
نظم الملفات اﻷخرى مثل /home
يمكن وصلها على وحدات وصل مختارة. إضافة المدخلات noauto,x-systemd.automount
سوف يخفف عمليات الوصول لهذا القسم ، وسوف يقوم بعمل فحص fsck ووصله عند أو تشغيل، ويقلل من عدد نظم الملفات التي يجب عمل فحص وربط fsck/mount أثناء عملية الإقلاع.
/home
هو autofs
, والذي سيتم تجاهله من قِبل mlocate افتراضيا. سرعة الوصل التلقائي لقسم /home
ربما لن تزيد عن ثانية أو ثانيتين، اعتمادا على نظامك، لذا ربما لا تحتاج هذه الحيلة لكل هذا العناء.نظام ملفات الذاكرة اﻷولي Initramfs
كما أشرنا من قبل ، يمكن تقليل وقت الإقلاع عن طريق تخسيس النواة ، مما يقلل من كمية البيانات التي يجب أن يتم تحميلها. وذلك أيضا حقيقي بالنسبة ل initramfs لديك (الناتج من الأمر mkinitcpio ) ، حيث إنه يتم تحميله مباشرة بعد النواة ، وكن مهتما بترتيب نظام ملفاتك الجذر ووصلك له. للإقلاع ، ما هو مطلوب فعلا قليل جدا ويشمل موصلات التخزين ، أجهزة الكتل ، ونظم الملفات . قام المطور Falconindy (Dave Reisner) مرغما بعمل درس تعليمي مختصر عن كيفية تحقيق ذلك على مدونته.
خرج قليل أثناء الإقلاع
قم بتغيير المدخلة verbose
إلى quiet
في سطر ال kernel الموجود في محمل الإقلاع، ولا سيما مع أقراص الحالة الصلبة SSD، يعتبر اﻷداء البطيء ل TTY هو بالفعل عنق زجاجة، ولذا فإن تقليل الخرج يعني إقلاعا أسرع.
مصادر إضافية
- مدير الخدمات systemd
- e4rat
- udev
- Daemon
- برنامج mkinitcpio
- تعظيم أداء النظام
- Bootchart-أداة مساعدة لجمع وتنميط بيانات عملية الإقلاع
- Kexec أداة لإعادة التشغيل بشكل فائق السرعة دون انتظار انتهاء لكافة عمليات الإقلاع الخاصة بنظام BIOS