GNU/Linux >> Linux の 問題 >  >> Linux

LinuxシステムをIntelCPUでより高速に実行する方法

メルトダウンについて聞いたことがあると思います およびSpectreの脆弱性 これは、Intel、AMD、System Z、Power、ARMの特定のプロセッサを含む多くの最新のプロセッサに影響を及ぼしました。ありがたいことに、カーネル開発者はMeltdown/Spectreの問題に対処するためのセキュリティパッチをリリースしました。最近のカーネルバージョンでは、パッチはデフォルトで実装されています。セキュリティパッチは脆弱性の軽減に役立ちますが、システムのパフォーマンスにも影響を与えています。はい、緩和策によりパフォーマンスが低下します。システムが十分に保護されていると確信していて、個人のシステムから得られるあらゆるオンスのパフォーマンスが必要な場合は、このガイドが役立ちます。この簡単なガイドでは、SpectreとMeltdownの緩和策をオフにすることで、LinuxシステムをIntelCPUでより高速に実行する方法について説明します。

注意事項

次のソリューションを実装する前に、警告する必要があります-これは非常に安全ではなく、推奨されません 。これにより、Intel CPUのすべてのSpectreおよびMeltdownの軽減が無効になり、Linuxシステムがすべてのセキュリティリスクにさらされる可能性があります。自分が何をしているのかを明確に理解していない限り、これを行わないでください。警告されました!

単にセキュリティを気にしない場合は、以下に説明するように、緩和策を無効にしてください。

LinuxシステムをIntelCPUでより高速に実行する

お好みのテキストエディタを使用してGRUBファイルを編集します。

Debian Ubuntu

$ sudo nano /etc/default/grub

Linuxカーネルバージョン5.1.13以降を使用している場合は、次のカーネルパラメータを次のように追加/編集します。

GRUB_CMDLINE_LINUX="mitigations=off"

これにより、すべてのオプションのCPU緩和策が無効になります。これによりシステムパフォーマンスが向上しますが、ユーザーがいくつかのCPUの脆弱性にさらされる可能性もあります。

5.1.13より前のカーネルバージョンを使用している場合は、代わりに以下を追加/編集してください。

GRUB_CMDLINE_LINUX="noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off mitigations=off"

SpectreとMeltdownのすべての緩和策を無効にするためのカーネルパラメータ

これらは、Linuxシステムの速度を低下させているすべてのSpectre/Meltdown緩和策を無効にするために使用できるカーネルパラメーターです。

各フラグの機能を理解する:

  • noibrs -マイクロコードで間接分岐制限付き投機を無効にします。
  • noibpb -間接分岐予測バリアを無効にします。
  • nopti -pti=offと同じです。コントロールページテーブルユーザーとカーネルのアドレス空間の分離。この機能を無効にすると、強化は削除されますが、システムコールと割り込みのパフォーマンスは向上します。
  • nospectre_v2 -Spectreバリアント2(間接分岐予測)の脆弱性に対するすべての緩和策を無効にします。システムは、このオプションを使用してデータ漏洩を許可する場合があります。これは、spectre_v2=offと同等です。
  • nospectre_v1 -Spectre Variant 1の緩和を無効にします(境界チェックバイパス)。このオプションを使用すると、システムでデータ漏洩が発生する可能性があります。
  • l1tf =off -影響を受けるCPUのL1TF脆弱性の緩和を制御します。カーネルPTE反転保護は無条件に有効になり、無効にすることはできません。ハイパーバイザーの軽減を無効にし、警告を発しません。また、ハイパーバイザーとベアメタルの両方でスワップサイズと使用可能なRAM制限の制限がなくなります。
  • nospec_store_bypass_disable -投機的ストアバイパスの脆弱性に対するすべての緩和策を無効にします。
  • no_stf_barrier -ストア転送バリアを無効にします(PPCのみ)。
  • mds =off -Micro-architectural Data Sampling(MDS)の脆弱性に対する制御の緩和。
  • tsx =on -インテルのTSX(トランザクション同期拡張機能)サポートを有効にします。
  • tsx_async_abort =off -TAA(TSX Async Abort)の軽減を無効にします。
  • mitigations =off -すべての緩和策を無効にします。

各フラグの詳細については、Googleで簡単に検索してください。

カーネルパラメータを追加した後、次のコマンドを使用してGRUB構成を更新します。

$ sudo update-grub

最後に、システムを再起動します。

$ sudo reboot

CentOSなどのRPMベースのシステム およびRHEL / etc / sysconfig / grubを編集します ファイル:

$ sudo /etc/sysconfig/grub

上記のパラメータをGRUB_CMDLINE_LINUXに追加します。次に、コマンドを使用してGRUB構成を更新します:

$ sudo grub2-mkconfig

最後に再起動します:

$ sudo reboot

一部のLinuxシステムでは、これらのカーネルパラメータを "GRUB_CMDLINE_LINUX_DEFAULT =" ..."に追加する必要がある場合があります。 。

これで、すべてのSpectreおよびMeltdownの緩和策が無効になりました。これにより、システムのパフォーマンスが少し向上しますが、ユーザーがいくつかのCPUの脆弱性にさらされる可能性もあります。

Spectre/Meltdownの軽減が無効になっているかどうかを確認します

「spectre-meltdown-checker」を使用できます LinuxのSpectreとMeltdownの脆弱性を特定するのに役立つツール。一部のLinuxディストリビューションの公式リポジトリで入手できます。

Debian、Ubuntuの場合:

$ sudo apt install spectre-meltdown-checker

CentOSでは、RHEL:

$ sudo yum install epel-release
$ sudo yum install spectre-meltdown-checker

Fedoraの場合:

$ sudo dnf install $ sudo apt install spectre-meltdown-checker

spectre-meltdown-checkerをインストールした後、rootユーザーとして、またはsudo権限で実行して、SpectreとMeltdownの緩和策がオフになっているかどうかを確認します。

以下のようなメッセージが表示されます。

[...]
> STATUS: VULNERABLE (Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers)
[...]
> STATUS:  VULNERABLE  (IBRS+IBPB or retpoline+IBPB is needed to mitigate the vulnerability)
[...]
> STATUS:  VULNERABLE  (PTI is needed to mitigate the vulnerability)

または、以下のようにSpectre/Meltdownの脆弱性を確認することもできます。

$ ls /sys/devices/system/cpu/vulnerabilities/

出力例:

itlb_multihit l1tf mds meltdown spec_store_bypass spectre_v1 spectre_v2 tsx_async_abort

そして..

$ grep . /sys/devices/system/cpu/vulnerabilities/*

出力例:

/sys/devices/system/cpu/vulnerabilities/itlb_multihit:KVM: Vulnerable
/sys/devices/system/cpu/vulnerabilities/l1tf:Mitigation: PTE Inversion
/sys/devices/system/cpu/vulnerabilities/mds:Vulnerable; SMT Host state unknown
/sys/devices/system/cpu/vulnerabilities/meltdown:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass:Vulnerable
/sys/devices/system/cpu/vulnerabilities/spectre_v1:Vulnerable: __user pointer sanitization and usercopy barriers only; no swapgs barriers
/sys/devices/system/cpu/vulnerabilities/spectre_v2:Vulnerable, STIBP: disabled
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort:Not affected

SpectreとMeltdownの脆弱性を確認してください

いくつかのベンチマークを実行し、どの程度のパフォーマンスが得られるかを確認してから、すべてを無効にする価値があるかどうかを判断します。

すでに警告したように、このヒントは、家庭用またはシングルユーザーのコンピューターにとって便利で賢明なオプションです。ただし、実動システムにはお勧めしません。


Linux
  1. RedhatLinuxで仮想化を構成する方法

  2. Linuxでホスト名を変更する方法

  3. Linux – Linuxからブートローダーを実行する方法は?

  1. LinuxでPerlスクリプトをシステムデーモンとして実行するにはどうすればよいですか?

  2. Linux で Python モジュールをシステム全体で利用できるようにするにはどうすればよいですか?

  3. PS3でLinuxを実行するには?

  1. スリープまたはFedoraを一時停止する方法

  2. Linuxでシステムホスト名を設定または変更する方法

  3. Linux で Python スクリプトをサービスまたはデーモンのように実行する方法