أكتب هذا الدليل لحفظ تقدمي والسماح للآخرين بالمساهمة في زيادة أداء Linux إلى أبعد من ذلك ؛ بعد كل شيء ، كثيرون أفضل من واحد. يمكنك استخدامهم جميعًا أو عدد قليل منهم. اقرأ موضوعًا تمامًا قبل البدء .
أنا حاليًا في نوبارا ، لذلك قد تختلف بعض الخطوات من التوزيع إلى التوزيع.
ملاحظة: هذا الدليل ليس للمبتدئين الجدد في Linux ولكن يمكن استخدام عدد قليل منهم بأمان من قبلهم.
الآن ، يوافق الجميع على أن تجميع kernel الخاص بك هو أحد أفضل الخيارات للحصول على أسرع سرعة ممكنة. قد ترغب في الحصول على Google How to make custom kernel in <distro> للحصول على الحزم المطلوبة لتجميع النواة.
قم بتنزيل أحدث kernel أو أي شيء تريد. استخرجه سأفترض اسمًا عامًا من الآن على linux-xxx .
الخطوة التالية هي العثور على ملف config . في معظم الأوقات ، يمكنك الركض:
cp -v /boot/config- $( uname -r ) .config من داخل linux-xxx ، والتي يجب أن تعطي إخراج مثل:
' /boot/config-y.y.y-generic ' - > ' .config ' إذا فشل ، فيمكنك العثور على config in /proc/config.gz أو تشغيل Simple make listnewconfig أو make oldconfig (عادة ما يبدأ عملية طويلة ؛ حاول العثور على التهيئة في رمز مصدر التوزيعات أيضًا).
تحرير Makefile وتغيير EXTRAVERSION لإضافة شيء ما. على سبيل المثال ، "الانبساط = <yourname>".
(قد ترغب في رؤية المجموعة الفرعية التالية قبل القيام بذلك) الآن قم بتشغيل make xconfig . الآن يمكن هنا الكثير من التحسينات هنا ، يمكن إزالة العديد من الرموز والوحدات النمطية الميتة وتمكينها. دعنا نذهب إلى الطريق الآمن الآن.
- Processor type and features
- Processor family
- [ x ] Core2/newer XeonGeneric-x86-64 افتراضيا.الآن ، قد ترغب في تشغيل:
dmesg --level=err
dmesg --level=warn لمعرفة ما إذا كان يمكنك تمكين بعض الأعلام الإضافية للحصول على ميزات إضافية. على سبيل المثال ، psmouse serio1: elantech: The touchpad can support a better bus than the old PS/2 protocol. Make sure MOUSE_PS2_ELANTECH_SMBUS and MOUSE_ELAN_I2C_SMBUS are enabled to get a better touchpad experience. يمكن حلها عن طريق تمكين كل منهما.
أخيرًا ، تجميع النواة:
# sed -ri '/CONFIG_SYSTEM_TRUSTED_KEYS/s/=.+/=""/g' .config
make -j N CFLAGS= ' -march=native -O3 -flto -pipe ' CXXFLAGS= ' -march=native -O3 -flto -pipe '
make -j N CFLAGS= ' -march=native -O3 -flto -pipe ' CXXFLAGS= ' -march=native -O3 -flto -pipe ' modules
sudo make modules_install
sudo make install حيث N هو عدد cores التي لديك ، بدلاً من ذلك ، استخدم $(getconf _NPROCESSORS_ONLN) .
إذا فشلت أي خطوات ، قم make clean وابدأ من جديد.
جعلها افتراضيًا في Grub (أنا أستخدم Grub2 ، قد تختلف العملية الخاصة بك):
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grubby --set-default /boot/vmlinuz-x.x.x-x يمكنك العثور على vmlinuz-xxx-x في /boot/
الآن أعد تشغيل وتشغيل uname -r لرؤية نواةك.
هناك العديد من التصحيحات التي يمكنك استخدامها لزيادة الأداء أو لجعل الحياة أكثر بساطة.
هناك الكثير من التصحيحات المتاحة ، وسيتعين عليك العثور على من يناسبك بشكل أفضل. سأستخدم رقعة kernel Graysky2 هنا. قم بتنزيل الريبو بأكمله أو فقط الملف الذي تحتاجه. في حالتي ، لدي GCC 10 وأحدث نواة ، لذلك سأستخدم هذا.
انسخ ملف التصحيح المطلوب في جذر قاموس Linux المستخرج ؛ نفس المكان مثل .config .
patch -p1 < enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.8+.patch
يجب أن ترى ناتج مثل هذا:
patching file arch/x86/Kconfig.cpu
patching file arch/x86/Makefile
patching file arch/x86/Makefile_32.cpu
patching file arch/x86/include/asm/vermagic.hالآن ، يمكنك البدء من الخطوة 4 في الإعداد السابق وسترى:
- Processor type and features
- Processor family
- [x] Native optimizations autodetected by GCCهناك تصحيحات أخرى مثل الجدولة المتعلقة التي يمكنك التقدم بها. مرة أخرى ، حاول العثور على تصحيحاتك التي تناسب نظامك.
حاول أن تبقي آخر kernel العاملة ، أي ، على حد سواء اثنين من نواة (تلك التي تستخدمها والآخر السابق). ملاحظة: إن إزالة kernel قيد التشغيل حاليًا (المحدد بواسطة uname -r ) سيجعل نظامك غير قابل للملفاة.
هذه الإدخالات تحتاج إلى إزالة:
/boot/vmlinuz-x.x.x-x
/boot/initrd-x.x.x-x
/boot/System-map-x.x.x-x
/boot/config-x.x.x-x
/lib/modules/x.x.x-x/
/var/lib/initramfs/x.x.x-x/
/boot/loader/entries/ * x.x.x-x sudo grub2-mkconfig -o /boot/grub2/grub.cfg أو sudo update-grub2
sudo gedit /etc/fstab ، قم بتغييره لتبدو مثل هذا (هذا على فيدورا ، قد تختلف لك):
UUID= < do-not-change > / btrfs subvol=root,x-systemd.device-timeout=0,ssd,noatime,space_cache,commit=120,compress=zstd,discard=async,lazytime 0 0
UUID= < do-not-change > /boot ext4 defaults 1 2
UUID= < do-not-change > /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID= < do-not-change > /home btrfs subvol=home,x-systemd.device-timeout=0,ssd,noatime,space_cache,commit=120,compress=zstd,discard=async,lazytime 0 0اختياري:
nobarrier
خيار nobarrier آمن طالما لم تتوقع حدوث Powerloss المفاجئ أو كان مدعومًا بالبطارية.
على جهاز يحتوي على ذاكرة التخزين المؤقت للكتابة المدعومة من البطارية ، لن يؤدي خيار Nobarrier إلى فساد نظام الملفات حيث من المفترض أن تصل الكتل المعلقة إلى التخزين الدائم. رجل 5 BTRFS
sudo systemctl daemon-reload
sudo systemctl enable fstrim.timer
هام: عادةً ما أحب تعطيل mitigations ، ولكن مرة أخرى ، أنا في وحدة المعالجة المركزية القائمة على AMD وليس لديّ Meltdown فقط Spectre ، لا أقوم بتشغيل برنامج نصي غير معروف ، وحتى إذا اضطررت إلى استخدام الحاويات و Firefox مع noscript وبعض الإضافات الأمنية الأخرى. ومع ذلك ، إذا فهمت المخاوف الأمنية ، يمكنك تعطيلها ورؤية دفعة كبيرة في الأداء.
sudo grubby --args "mitigations=off nowatchdog processor.ignore_ppc=1 amdgpu.ppfeaturemask=0xffffffff ec_sys.write_support=1 split_lock_detect=off" --update-kernel=ALLأو
sudo gedit /etc/default/grub
ستجد سطر GRUB_CMDLINE_LINUX=" ... rhgb quiet Chanswing إلى ( ... يدل على معلمات أخرى):
GRUB_CMDLINE_LINUX= " ... rhgb quiet mitigations=off nowatchdog processor.ignore_ppc=1 split_lock_detect=off " أيضًا ، تحرير GRUB_TIMEOUT=5 إلى GRUB_TIMEOUT=1.
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
أو
sudo grub2-mkconfig -o /etc/grub2.cfg
بعد إعادة التشغيل ، يمكنك تشغيل cat /proc/cmdline لرؤية خيارات التمهيد الخاصة بك.
لقد تحسنت آخر قرصنا الأخير ، لكن دعنا نجرب شيئًا أكثر.
إزالة تطبيقات بدء التشغيل ؛ يمكنني استخدام gnome-tweaks لتجربة تشبه واجهة المستخدم الرسومية.
قم بتشغيل ما يلي للعثور على ما هي الخدمة التي تأخذ أطول:
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain قد تختلف هذه من نظام إلى آخر وتوزيع على التوزيع ؛ في حالتي (Fedora) ، قمت بتعطيل dnf-makecache.service. التي استغرقت حوالي 32s . للقيام بذلك:
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl disable dnf-makecache.service
sudo systemctl disable dnf-makecache.timer
sudo gsettings set org.gnome.software download-updates falseقد ترغب في Google في كل خدمة تفكر فيها في تعطيلها وما تفعله ؛ في حالتي ، يقوم فقط بتحديث ذاكرة التخزين المؤقت DNF ، والتي عادة ما أحب القيام بها يدويًا.
إذا كان لديك 8 جيجابايت أو أكثر من ذاكرة الوصول العشوائي ، فقد تستفيد منه ؛ خلاف ذلك ، اتركه كما هو.
لرؤية swappiness الحالية ، أدخل cat /proc/sys/vm/swappiness ؛ يجب أن تطبع 60 ؛ نريد أن نجعلها 10.
sudo gedit /etc/sysctl.conf
أدخل vm.swappiness=10 وإعادة التشغيل ؛ الآن الخطوة 1 يجب أن تطبع 10.
scaling_governor إلى performance لا تقم بتغييره إلى performance على وحدات المعالجة المركزية المستندة إلى Ryzen ، حيث يبدو أنني (يبدو أنني أحصل على أداء أفضل على AC ، ولكن مرة أخرى ، لا يبدو أن performance يسمح لـ Turbo Boost في بعض الحالات) بأداءها ، باستخدام ondemand . أو schedutil أفضل (يميل أكثر نحو schedutil بمجرد إصلاحه).
قم بتشغيل cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor لرؤية حاكمك الحالي.
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
على الأرجح لن يستمر هذا الإعداد خلال الحذاء التالي ؛ أحب تغييره يدويًا بدلاً من تقديم خدمة SystemD (أنا جهاز كمبيوتر محمول ، ويصبح ساخنًا). قد ترغب في الحصول على Google كيفية جعلها ثابتة لتوزيعاتك إذا أردت أو:
echo ' GOVERNOR="performance" ' | sudo tee /etc/default/cpufrequtils
sudo systemctl disable schedutil الافتراضي هو schedutil ؛ يمكنك رؤية الآخرين هنا.
ملاحظة : يمكنك أيضًا تغيير الافتراضي أثناء تجميع kernel.
يمكنك العثور على أدوات رفع تردد التشغيل الخاصة بـ GPU (S) ، ولكن للتأكد من عدم قمع بطاقة الرسومات الخاصة بك بواسطة نظام التشغيل (خاصة AMD):
التحقق مما إذا كان auto :
cat /sys/class/drm/card0/device/power_dpm_force_performance_level
cat /sys/class/drm/card1/device/power_dpm_force_performance_levelتحقق من معلمات GPU بواسطة:
sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info
sudo cat /sys/kernel/debug/dri/1/amdgpu_pm_infoالآن اضبط كل شيء على ارتفاع:
sudo su
echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level
echo high > /sys/class/drm/card1/device/power_dpm_force_performance_level يمكنك تغييرها مرة أخرى إلى auto إذا كان نظام السخرية.
Archwiki/تحسين الأداء
تعطيل Cool'n'Quiet أو speedstep أو PowerNow! من BIOS (سوف تسبب الحرارة على أجهزة الكمبيوتر المحمولة ، تمكينها فقط أثناء الألعاب)
تحقق من ميزات BIOS الأخرى أيضًا ؛ تختلف من نظام إلى آخر ولكن ينبغي أن يكون لديهم دفعة كبيرة في الأداء
باستخدام X بدلاً من Wayland (قد تختلف لعبة اللعبة)
باستخدام Opengl الخلفية في الألعاب بدلاً من Vulkun (قد تختلف لعبة اللعبة)
لا تتردد في فتح مشكلة أو تحرير Readme بنفسك.
مرخصة تحت أي من هذين: