Saya menulis panduan ini untuk menyimpan kemajuan saya dan membiarkan orang lain berkontribusi pada peningkatan kinerja Linux lebih jauh; Bagaimanapun, banyak yang lebih baik dari satu. Anda dapat menggunakan semuanya atau hanya beberapa dari mereka. Baca topik sepenuhnya sebelum memulai .
Saat ini saya berada di Nobara, jadi beberapa langkah dapat bervariasi dari distro ke distro.
Catatan: Panduan ini bukan untuk pemula yang baru mengenal Linux tetapi beberapa di antaranya dapat digunakan dengan aman oleh mereka.
Sekarang, semua orang setuju bahwa menyusun kernel Anda adalah salah satu pilihan terbaik untuk mendapatkan kecepatan tercepat. Anda mungkin ingin google How to make custom kernel in <distro> untuk mendapatkan paket yang diperlukan untuk mengkompilasi kernel.
Unduh kernel terbaru atau apa pun yang Anda suka. Ekstraknya; Saya akan menganggap nama generik mulai sekarang di linux-xxx .
Langkah selanjutnya adalah menemukan file config . Sebagian besar waktu, Anda dapat menjalankan:
cp -v /boot/config- $( uname -r ) .config Dari dalam linux-xxx , yang seharusnya memberikan output seperti:
' /boot/config-y.y.y-generic ' - > ' .config ' Jika gagal, Anda dapat menemukan konfigurasi di /proc/config.gz atau run sederhana make listnewconfig atau make oldconfig (biasanya memulai proses yang panjang; coba temukan konfigurasi Anda di kode sumber distro Anda juga).
Edit Makefile dan ubah EXTRAVERSION untuk menambahkan sesuatu. Misalnya, "extraversion = <fuername>".
(Anda mungkin ingin melihat subtopik berikutnya sebelum melakukan ini) sekarang jalankan make xconfig . Sekarang banyak optimisasi di sini, banyak kode dan modul mati dapat dihapus dan diaktifkan. Ayo jalan yang aman untuk saat ini.
- Processor type and features
- Processor family
- [ x ] Core2/newer XeonGeneric-x86-64 secara default.Sekarang, Anda mungkin ingin menjalankan:
dmesg --level=err
dmesg --level=warn Untuk melihat apakah Anda dapat mengaktifkan beberapa bendera tambahan untuk fitur tambahan. Misalnya, 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. dapat diselesaikan dengan mengaktifkan keduanya.
Akhirnya, menyusun kernel:
# 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 Di mana N adalah jumlah cores yang Anda miliki, alternatifnya gunakan $(getconf _NPROCESSORS_ONLN) .
Jika ada langkah yang gagal, jalankan make clean dan mulai lagi.
Menjadikannya default di grub (saya menggunakan grub2, proses Anda mungkin bervariasi):
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grubby --set-default /boot/vmlinuz-x.x.x-x Anda dapat menemukan milik Anda vmlinuz-xxx-x di /boot/
Sekarang restart dan jalankan uname -r untuk melihat kernel Anda.
Ada beberapa tambalan yang dapat Anda gunakan untuk meningkatkan kinerja atau membuat hidup lebih sederhana.
Ada banyak tambalan yang tersedia, dan Anda harus menemukan yang paling cocok untuk Anda. Saya akan menggunakan tambalan kernel Graysky2 di sini. Unduh seluruh repo atau hanya file yang Anda butuhkan. Dalam kasus saya, saya memiliki GCC 10 dan kernel terbaru, jadi saya akan menggunakan ini.
Salin file patch yang diinginkan ke dalam root dari kamus Linux yang diekstraksi; tempat yang sama seperti .config .
patch -p1 < enable_additional_cpu_optimizations_for_gcc_v10.1+_kernel_v5.8+.patch
Anda harus melihat output seperti ini:
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.hSekarang, Anda dapat mulai dari langkah 4 di pengaturan sebelumnya dan akan melihat:
- Processor type and features
- Processor family
- [x] Native optimizations autodetected by GCCAda tambalan lain seperti penjadwalan terkait yang dapat Anda terapkan. Sekali lagi, coba temukan tambalan Anda yang sesuai dengan sistem Anda.
Cobalah untuk menjaga kernel yang bekerja terakhir, yaitu, memiliki minimal dua kernel (yang Anda gunakan dan yang sebelumnya). Catatan: Menghapus kernel yang sedang berjalan (ditentukan oleh uname -r ) akan membuat sistem Anda tidak dapat di -boot.
Entri ini perlu dihapus:
/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 atau sudo update-grub2
sudo gedit /etc/fstab , ubah agar terlihat seperti ini (ini ada di fedora, milikmu mungkin bervariasi):
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 0Opsional:
nobarrier
Opsi nobarrier aman selama Anda tidak mengharapkan powerloss tiba-tiba terjadi atau didukung baterai.
Pada perangkat dengan cache tulisan-belakang yang didukung baterai yang mudah menguap, opsi Nobarrier tidak akan menyebabkan korupsi sistem file karena blok yang tertunda seharusnya membuatnya ke penyimpanan permanen. man 5 btrfs
sudo systemctl daemon-reload
sudo systemctl enable fstrim.timer
PENTING: Saya biasanya suka menonaktifkan mitigations , tetapi sekali lagi, saya menggunakan CPU berbasis AMD dan tidak memiliki Meltdown hanya Spectre , saya tidak menjalankan skrip yang tidak diketahui, dan bahkan jika saya harus, saya menggunakan wadah dan Firefox dengan noscript dan beberapa add-on keamanan lainnya. Meskipun demikian, jika Anda memahami masalah keamanan, Anda dapat menonaktifkannya dan melihat dorongan substansial dalam kinerja.
sudo grubby --args "mitigations=off nowatchdog processor.ignore_ppc=1 amdgpu.ppfeaturemask=0xffffffff ec_sys.write_support=1 split_lock_detect=off" --update-kernel=ALLATAU
sudo gedit /etc/default/grub
Anda akan menemukan garis GRUB_CMDLINE_LINUX=" ... rhgb quiet ubah menjadi ( ... menandakan parameter lain):
GRUB_CMDLINE_LINUX= " ... rhgb quiet mitigations=off nowatchdog processor.ignore_ppc=1 split_lock_detect=off " Juga, edit GRUB_TIMEOUT=5 ke GRUB_TIMEOUT=1.
sudo grub2-mkconfig -o /etc/grub2-efi.cfg
ATAU
sudo grub2-mkconfig -o /etc/grub2.cfg
Setelah reboot, Anda dapat menjalankan cat /proc/cmdline untuk melihat opsi boot Anda.
Tweak terakhir kami agak memperbaikinya, tapi mari kita coba sesuatu yang lebih.
Hapus aplikasi startup; Saya menggunakan gnome-tweaks untuk pengalaman seperti GUI.
Jalankan yang berikut untuk menemukan layanan apa yang paling lama:
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain Ini mungkin bervariasi dari sistem ke sistem dan distro ke distro; Dalam kasus saya (Fedora), saya menonaktifkan dnf-makecache.service. yang memakan waktu sekitar 32s . Untuk melakukannya:
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 falseAnda mungkin ingin Google setiap layanan yang Anda pikirkan tentang menonaktifkan dan apa fungsinya; Dalam kasus saya, itu hanya memperbarui cache DNF, yang biasanya ingin saya lakukan secara manual.
Jika Anda memiliki RAM 8GB atau lebih, Anda mungkin mendapat manfaat darinya; Kalau tidak, tinggalkan apa adanya.
Untuk melihat kemalasan saat ini, masukkan cat /proc/sys/vm/swappiness ; itu harus mencetak 60 ; Kami ingin membuatnya 10.
sudo gedit /etc/sysctl.conf
Masukkan vm.swappiness=10 dan reboot; Sekarang langkah 1 harus mencetak 10.
scaling_governor menjadi performance Jangan mengubahnya menjadi performance pada CPU berbasis Ryzen sebagaimana mungkin (sepertinya saya mendapatkan kinerja yang lebih baik di AC, tetapi sekali lagi, performance tampaknya tidak memungkinkan Turbo Boost dalam beberapa kasus) melukai kinerja mereka, menggunakan ondemand . Atau schedutil lebih baik (lebih condong ke arah schedutil segera setelah diperbaiki).
Jalankan cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor untuk melihat gubernur Anda saat ini.
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Pengaturan ini kemungkinan besar tidak akan bertahan selama boot berikutnya; Saya suka mengubahnya secara manual daripada membuat layanan SystemD (saya adalah laptop, dan menjadi panas). Anda mungkin ingin google cara membuatnya gigih untuk distro Anda jika Anda suka atau:
echo ' GOVERNOR="performance" ' | sudo tee /etc/default/cpufrequtils
sudo systemctl disable schedutil Standarnya adalah schedutil ; Anda dapat melihat orang lain di sini.
Catatan : Anda juga dapat mengubah default selama kompilasi kernel.
Anda dapat menemukan alat overclocking khusus untuk GPU Anda, tetapi untuk memastikan kartu grafis Anda tidak ditekan oleh OS (terutama AMD):
Memeriksa apakah itu auto :
cat /sys/class/drm/card0/device/power_dpm_force_performance_level
cat /sys/class/drm/card1/device/power_dpm_force_performance_levelPeriksa parameter GPU dengan:
sudo cat /sys/kernel/debug/dri/0/amdgpu_pm_info
sudo cat /sys/kernel/debug/dri/1/amdgpu_pm_infoSekarang atur semuanya ke tinggi:
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 Anda dapat mengubahnya kembali ke auto jika sistem Anda terlalu panas.
Archwiki/Meningkatkan kinerja
Menonaktifkan Cool'n'Quiet atau speedstep atau PowerNow! Dari BIOS (akan menyebabkan panas pada laptop, hanya memungkinkannya selama bermain game)
Periksa fitur BIOS lainnya juga; Mereka bervariasi dari sistem ke sistem tetapi harus memiliki dorongan kinerja yang signifikan
Menggunakan X bukan Wayland (dapat bervariasi game ke game)
Menggunakan Backend Opengl dalam game, bukan Vulkun (dapat bervariasi game ke game)
Jangan ragu untuk membuka masalah atau mengedit readme sendiri.
Berlisensi di bawah salah satu dari ini: