私はこのガイドを書いて、自分の進歩を救い、他の人がLinuxのパフォーマンスの向上にさらに貢献できるようにしています。結局のところ、多くは1つよりも優れています。すべてまたはそれらのほんの一部を使用できます。開始する前にトピックを完全に読んでください。
私は現在ノバラにいるので、いくつかのステップはディストリビューションからディストリビューションまで異なる場合があります。
注:このガイドは、Linuxに慣れていない初心者向けではありませんが、それらのいくつかは安全に使用できます。
今では、誰もがあなたのカーネルをコンパイルすることは、可能な限り速い速度を得るための最良のオプションの1つであることに同意しています。 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 '失敗した場合は、config in /proc/config.gzまたはsimple run make listnewconfigを見つけるか、 make oldconfigできます(通常、長いプロセスを開始します。ディストリビューションソースコードでも構成を見つけてみてください)。
Makefileを編集し、 EXTRAVERSIONを変更して何かを追加します。たとえば、「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あなたはあなたのvmlinuz-xxx-xで/boot/見つけることができます
次に、再起動して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適用できるスケジューリング関連など、他のパッチがあります。繰り返しますが、システムに合ったパッチを見つけてみてください。
最後の作業用カーネル、つまり、最低2つのカーネル(使用しているものと前のカーネル)を保持してください。注:現在実行中のカーネル( 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オプションは、保留中のブロックが永続的なストレージに到達することになっているため、ファイルシステムの破損につながりません。 Man 5 Btrfs
sudo systemctl daemon-reload
sudo systemctl enable fstrim.timer
重要:私は通常、 mitigationsを無効にするのが好きですが、再び、私はAMDベースのCPUを使用しており、 noscript MeltdownのSpectreだけを持っていません。未知のスクリプトを実行しません。それにもかかわらず、セキュリティの懸念を理解している場合は、それを無効にして、パフォーマンスが大幅に向上することができます。
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
Line GRUB_CMDLINE_LINUX=" ... rhgb quietに変更します( ...他のパラメーターを意味します):
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あなたが考えているすべてのサービスを無効にすることとそれが何をするかをグーグルで検索することをお勧めします。私の場合、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サービスを作成するのではなく、手動で変更するのが好きです(私はラップトップであり、熱くなります)。必要に応じて、ディストリビューションのために永続的にする方法をグーグルで検索することができます。
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_levelGPUのパラメーターを次のように確認します。
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を編集してください。
これらのいずれかでライセンスされています: