我正在撰写本指南,以节省我的进度,并让其他人进一步提高Linux性能。毕竟,许多人比一个更好。您可以使用所有这些或仅使用其中的几个。开始之前,请全面阅读主题。
我目前正在诺贝拉(Nobara)上,所以一些步骤可能因发行版而异。
注意:本指南不适合Linux新手,但其中一些可以由他们安全地使用。
到现在为止,每个人都同意,编译内核是获得最快速度的最佳选择之一。您可能需要在Google上How to make custom kernel in <distro>来获取编译内核所需的包装。
下载最新的内核或任何您喜欢的东西。提取它;从现在开始,我将在linux-xxx上假设一个通用名称。
下一步是查找config文件。大多数时候,您可以运行:
cp -v /boot/config- $( uname -r ) .config从linux-xxx内部,应该给出类似的输出:
' /boot/config-y.y.y-generic ' - > ' .config '如果失败,您可以在/proc/config.gz中找到config或简单运行的make listnewconfig或make oldconfig (通常会启动一个长途过程;也尝试在distro源代码中找到配置)。
编辑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您可以在/boot/中找到您的vmlinuz-xxx-x
现在重新启动并运行uname -r查看您的内核。
您可以使用几个补丁来提高性能或使生活更简单。
有很多可用的补丁,您必须找到最适合自己的东西。我将在这里使用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您可以申请其他补丁,例如计划。同样,尝试找到适合您系统的补丁。
尝试保持最后一个工作的内核,即,至少有两个内核(您正在使用的内核和前一个内核)。注意:删除当前正在运行的内核(由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 ,将其更改为看起来像这样的东西(这是在Fedora上,您的可能会有所不同):
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
只要您没想到突然发生Powerloss会发生或贴上电池贴, nobarrier选项是安全的。
在具有挥发电池支持的写下缓存的设备上,Nobarrier选项不会导致文件系统损坏,因为待处理的块应该使其成为永久存储。男人5 btrfs
sudo systemctl daemon-reload
sudo systemctl enable fstrim.timer
重要的是:我通常喜欢禁用mitigations ,但是再说一次,我在基于AMD的CPU上,不仅Meltdown了,我不运行未知的Spectre ,即使我必须使用,我也使用noscript容器和Firefox,以及其他一些安全性附加组件。尽管如此,如果您了解安全问题,则可以将其禁用并看到大幅提高性能。
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将其更改为( ...表示其他参数):
GRUB_CMDLINE_LINUX= " ... rhgb quiet mitigations=off nowatchdog processor.ignore_ppc=1 split_lock_detect=off "另外,编辑GRUB_TIMEOUT=5 to GRUB_TIMEOUT=1.
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
或者
sudo grub2-mkconfig -o /etc/grub2.cfg
重新启动后,您可以运行cat /proc/cmdline以查看启动选项。
我们的最后一个调整有点改进了它,但让我们尝试更多。
删除启动应用程序;我使用gnome-tweaks进行类似GUI的体验。
运行以下内容以查找最长的服务:
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您可能想搜索您考虑禁用及其所做的每项服务;就我而言,它只是更新DNF缓存,我通常喜欢手动进行。
如果您有8GB或更多的RAM,则可能会从中受益;否则,将其视为原样。
要查看当前的交换,请输入cat /proc/sys/vm/swappiness ;它应该打印60 ;我们想让它10。
sudo gedit /etc/sysctl.conf
输入vm.swappiness=10并重新启动;现在步骤1应该打印10。
scaling_governor更改为performance不要将其更改为基于Ryzen的CPU的performance (我似乎在AC上会得到更好的性能,但是在某些情况下,在某些情况下, performance似乎不允许涡轮增压)损害其性能,并使用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 ;您可以在这里看到其他人。
注意:您还可以在内核编译期间更改默认值。
您可以找到特定于GPU的超频工具,但是要确保您的图形卡不会被OS(尤其是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 (可能会改变游戏)
随意开一个问题或自己编辑读书文件。
根据其中的任何一个获得许可: