나는이 가이드를 작성하여 내 진전을 저장하고 다른 사람들이 Linux 성능 증가에 더욱 기여할 수 있도록하고 있습니다. 결국 많은 사람들이 하나보다 낫습니다. 당신은 그들 모두 또는 그 중 일부를 사용할 수 있습니다. 시작하기 전에 주제를 완전히 읽으십시오 .
나는 현재 Nobara에 있으므로 일부 단계는 배포판마다 다를 수 있습니다.
참고 :이 안내서는 Linux를 처음 접하는 초보자가 아니지만 그 중 일부는 안전하게 사용할 수 있습니다.
지금까지 모든 사람들은 커널을 컴파일하는 것이 가장 빠른 속도를 얻는 가장 좋은 옵션 중 하나라는 데 동의합니다. 커널을 컴파일하는 데 필요한 패키지를 얻으려면 Google을 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 에서 구성을 찾거나 Simple Run 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 /boot/ 에서 vmlinuz-xxx-x 찾을 수 있습니다.
이제 다시 시작하고 uname -r 실행하여 커널을보십시오.
성능을 높이거나 삶을 더 단순하게 만드는 데 사용할 수있는 패치가 몇 가지 있습니다.
사용 가능한 패치가 많이 있으며 가장 적합한 패치를 찾아야합니다. 여기에서 Graysky2 커널 패치를 사용할 것입니다. 전체 repo 또는 필요한 파일 만 다운로드하십시오. 제 경우에는 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
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 iting it it ( ... 다른 매개 변수를 나타냅니다)을 찾을 수 있습니다.
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 실행하여 부팅 옵션을 볼 수 있습니다.
우리의 마지막 조정은 그것을 개선했지만 더 많은 것을 시도해 봅시다.
시작 애플리케이션을 제거합니다. 나는 GUI와 같은 경험을 위해 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 캐시를 업데이트합니다.
8GB 이상의 RAM이있는 경우 혜택을 누릴 수 있습니다. 그렇지 않으면 그대로 두십시오.
현재 교란을 보려면 cat /proc/sys/vm/swappiness 입력하십시오. 60 인쇄해야합니다. 우리는 그것을 10로 만들고 싶습니다.
sudo gedit /etc/sysctl.conf
vm.swappiness=10 및 재부팅을 입력하십시오. 이제 1 단계는 인쇄해야합니다.
scaling_governor 변경, performance 으로 변경 Ryzen 기반 CPU ondemand performance performance 변경하지 마십시오 . 또는 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 기능도 확인하십시오. 시스템마다 다르지만 성능이 크게 향상되어야합니다.
Wayland 대신 X 사용 (게임마다 다를 수 있음)
Vulkun 대신 게임에서 Opengl 백엔드 사용 (게임마다 게임마다 다를 수 있음)
자유롭게 문제를 열거 나 Readme를 직접 편집하십시오.
이 중 하나에 따라 라이센스가 부여됩니다.