Ich schreibe diesen Leitfaden, um meinen Fortschritt zu retten und andere dazu beizutragen, die Linux -Leistung noch weiter zu steigern. Immerhin sind viele besser als eins. Sie können alle oder nur einige von ihnen verwenden. Lesen Sie vor dem Start ein Thema vollständig .
Ich bin derzeit auf Nobara, daher können einige Schritte von Distribose zu Distribution variieren.
Hinweis: Dieser Leitfaden gilt nicht für Anfänger, die neu unter Linux sind, aber einige von ihnen können von ihnen sicher verwendet werden.
Inzwischen sind sich alle einig, dass das Kompilieren Ihres Kernels eine der besten Optionen ist, um die schnellstmögliche Geschwindigkeit zu erzielen. Möglicherweise möchten Sie googeln How to make custom kernel in <distro> um die für die Kompilierung des Kernels erforderlichen Pakete zu erhalten.
Laden Sie den neuesten Kernel oder was auch immer Sie mögen. Extrahieren Sie es; Ich werde von nun an einen generischen Namen unter linux-xxx annehmen.
Der nächste Schritt besteht darin, die config zu finden. Meistens können Sie rennen:
cp -v /boot/config- $( uname -r ) .config Von innen linux-xxx , was eine Ausgabe ergeben sollte wie:
' /boot/config-y.y.y-generic ' - > ' .config ' Wenn es fehlschlägt, finden Sie config in /proc/config.gz oder einfach run make listnewconfig oder make oldconfig (es startet normalerweise einen langen Vorgang; Versuchen Sie auch, Ihre Konfiguration in Ihrem Distribonquellencode zu finden).
Bearbeiten Sie Makefile und ändern Sie EXTRAVERSION , um etwas hinzuzufügen. Zum Beispiel "Extraversion = <Urname>".
(Vielleicht möchten Sie den nächsten Subtopic sehen, bevor Sie dies tun.) make xconfig . Jetzt sind hier viele Optimierungen möglich, viele tote Codes und Module können entfernt und aktiviert werden. Lass uns vorerst die sichere Straße gehen.
- Processor type and features
- Processor family
- [ x ] Core2/newer XeonGeneric-x86-64 gewesen sein sollen.Jetzt möchten Sie vielleicht rennen:
dmesg --level=err
dmesg --level=warn Um zu sehen, ob Sie einige zusätzliche Flags für zusätzliche Funktionen aktivieren können. Zum Beispiel 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. kann gelöst werden, indem beide aktiviert werden.
Zum Schluss den Kernel zusammenstellen:
# 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 Wenn N die Anzahl der cores ist, die Sie haben, verwenden Sie alternativ $(getconf _NPROCESSORS_ONLN) .
Wenn Schritte fehlschlagen, make clean und beginnen Sie von vorne.
Wenn Sie es standardmäßig in Grub ausstellen (ich verwende GRUB2, kann Ihr Prozess variieren):
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grubby --set-default /boot/vmlinuz-x.x.x-x Sie finden Ihre vmlinuz-xxx-x in /boot/
Starten Sie nun neu und führen Sie uname -r durch, um Ihren Kernel zu sehen.
Es gibt mehrere Patches, die Sie verwenden können, um die Leistung zu steigern oder das Leben zu vereinfachen.
Es stehen viele Patches zur Verfügung, und Sie müssen diejenigen finden, die am besten zu Ihnen passt. Ich werde hier den Graysky2 -Kernel -Patch verwenden. Laden Sie das gesamte Repo oder nur die Datei herunter, die Sie benötigen. In meinem Fall habe ich GCC 10 und den neuesten Kernel, also werde ich das verwenden.
Kopieren Sie die gewünschte Patch -Datei in das Root des extrahierten Linux -Wörterbuchs. Gleicher Ort wie .config .
patch -p1 < enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.8+.patch
Sie sollten eine solche Ausgabe sehen:
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.hJetzt können Sie im vorherigen Setup von Schritt 4 beginnen und sehen:
- Processor type and features
- Processor family
- [x] Native optimizations autodetected by GCCEs gibt andere Patches wie die Planung, die Sie bewerben können. Versuchen Sie erneut, Ihre Patches zu finden, die zu Ihrem System passen.
Versuchen Sie, den letzten funktionierenden Kernel zu halten, dh mindestens zwei Kerne (die Sie verwenden und die vorherige). Hinweis: Das Entfernen des aktuell ausgeführten Kernels (bestimmt durch uname -r ) macht Ihr System nicht starten.
Diese Einträge müssen entfernt werden:
/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 oder sudo update-grub2
sudo gedit /etc/fstab , ändere es so ungefähr so (dies ist auf Fedora, deine könnte variieren):
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 0Optional:
nobarrier
Die Option nobarrier ist sicher, solange Sie nicht erwartet haben, dass ein plötzliches Power-Loss stattfindet, oder hat batteriebrückte.
Auf einem Gerät mit einem volatilen, batteriebebragten Schreibcache führt die Option Nobarrier nicht zu einer Beschädigung des Dateisystems, da die anstehenden Blöcke den dauerhaften Speicher schaffen sollen. Mann 5 Btrfs
sudo systemctl daemon-reload
sudo systemctl enable fstrim.timer
WICHTIG: Normalerweise mag ich es, mitigations zu deaktivieren, aber andererseits bin ich auf AMD -basierter CPU und habe kein Meltdown Spectre , ich führe kein unbekanntes Skript aus, und selbst wenn ich es muss, verwende ich Container und Firefox mit noscript und einigen anderen Sicherheits-Add-Ons. Wenn Sie jedoch die Sicherheitsbedenken verstehen, können Sie sie deaktivieren und einen erheblichen Leistungsschub sehen.
sudo grubby --args "mitigations=off nowatchdog processor.ignore_ppc=1 amdgpu.ppfeaturemask=0xffffffff ec_sys.write_support=1 split_lock_detect=off" --update-kernel=ALLODER
sudo gedit /etc/default/grub
Sie finden eine Zeile GRUB_CMDLINE_LINUX=" ... rhgb quiet ändern sie in ( ... bedeutet andere Parameter):
GRUB_CMDLINE_LINUX= " ... rhgb quiet mitigations=off nowatchdog processor.ignore_ppc=1 split_lock_detect=off " Bearbeiten Sie auch GRUB_TIMEOUT=5 bis GRUB_TIMEOUT=1.
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
ODER
sudo grub2-mkconfig -o /etc/grub2.cfg
Nach dem Neustart können Sie cat /proc/cmdline ausführen, um Ihre Startoptionen anzuzeigen.
Unser letzter Tweak hat es irgendwie verbessert, aber versuchen wir etwas mehr.
Startanwendungen entfernen; Ich benutze gnome-tweaks für eine GUI-ähnliche Erfahrung.
Führen Sie Folgendes aus, um herauszufinden, welcher Service am längsten dauert:
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain Diese können von System zu System und Distribution zu Distribose variieren. In meinem Fall (Fedora) habe ich dnf-makecache.service. Das dauerte rund 32s . Um dies zu tun:
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 falseMöglicherweise möchten Sie jeden Dienst googeln, den Sie über Deaktivieren denken und was es tut. In meinem Fall aktualisiert es nur den DNF -Cache, den ich normalerweise gerne manuell mache.
Wenn Sie 8 GB oder mehr RAM haben, können Sie davon profitieren. Ansonsten lassen Sie es so wie es ist.
Um den aktuellen Wauch zu sehen, betreten Sie cat /proc/sys/vm/swappiness . es sollte 60 drucken; Wir wollen es 10 machen.
sudo gedit /etc/sysctl.conf
Geben Sie vm.swappiness=10 ein und starten Sie neu; Jetzt sollte Schritt 1 10 drucken.
scaling_governor in performance Ändern Sie es nicht in performance auf Ryzen -basierten CPUs, da dies könnte (ich scheine eine bessere Leistung auf der AC zu erzielen, aber performance scheint in einigen Fällen nicht zulässt, dass Turbo -Boost ihre Leistung unter Verwendung von ondemand nicht zulässt. oder schedutil ist besser (mehr zu schedutil , sobald es repariert wird).
Führen Sie cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor aus, um Ihren aktuellen Gouverneur zu sehen.
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Diese Einstellung bleibt höchstwahrscheinlich während des nächsten Starts nicht bestehen. Ich mag es, es manuell zu ändern, anstatt einen Systemd -Service zu erstellen (ich bin ein Laptop, und es wird heiß). Möglicherweise möchten Sie googeln, wie Sie es für Ihre Distribution anhaltend machen können, wenn Sie möchten oder:
echo ' GOVERNOR="performance" ' | sudo tee /etc/default/cpufrequtils
sudo systemctl disable schedutil Der Standard ist schedutil ; Sie können andere hier sehen.
Hinweis : Sie können auch die Standardeinstellung während der Kernel -Kompilierung ändern.
Sie finden Übertakten, die für Ihre GPU (s) spezifisch sind, um sicherzustellen, dass Ihre Grafikkarte nicht vom Betriebssystem (insbesondere AMD) unterdrückt wird:
Überprüfen Sie, ob es auto ist:
cat /sys/class/drm/card0/device/power_dpm_force_performance_level
cat /sys/class/drm/card1/device/power_dpm_force_performance_levelÜberprüfen Sie die Parameter der GPU nach:
sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info
sudo cat /sys/kernel/debug/dri/1/amdgpu_pm_infoStellen Sie jetzt alles auf hoch:
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 Sie können sie wieder in auto ändern, wenn Ihr System überhitzt.
Archwiki/Verbesserung der Leistung
Deaktivieren Sie Cool'n'Quiet oder speedstep oder PowerNow! Von BIOS (ermöglicht die Wärme auf Laptops, ermöglicht es nur während des Spielens)
Überprüfen Sie auch andere BIOS -Funktionen. Sie variieren von System zu System, sollten aber einen erheblichen Leistungsschub haben
Verwenden von X anstelle von Wayland (kann das Spiel zu Spiel variieren)
Verwenden von Opengl -Backend in Spielen anstelle von Vulkun (kann das Spiel zu Spiel variieren)
Fühlen Sie sich frei, ein Problem zu eröffnen oder die Readme selbst zu bearbeiten.
Unter einem von diesen lizenziert: