我正在撰寫本指南,以節省我的進度,並讓其他人進一步提高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 (可能會改變遊戲)
隨意開一個問題或自己編輯讀書文件。
根據其中的任何一個獲得許可: