manual

Ubuntu・LinuxMintの高速化設定

Ubuntu系OSやLinuxMintで一時フォルダーの設定を確認する②
この記事は約10分で読めます。

Ubuntu系OSとLinuxMintの高速化設定の説明をします。SSDを使用している場合は書き込みを減らす事でSSDを守ります。この記事では当サービスが提供しているツールを使用した手順が含まれます。

Ubuntu・LinuxMintの高速化

Ubuntu系OSやLinuxMintの高速化はSSDを使用している場合、体感で感じるほど高速になる訳ではありません。どちらかというとSSDにやさしい設定をすると言った方がいいかもしれません。SSDは寿命があるので、書き込みを減らすことでSSDを守ります。

この記事で紹介している高速化設定は必ず行わないといけない訳ではありません。また、それを設定したことによる効果については不明です。環境によっては設定しない方が良い場合があるので設定を行うかどうかはご自身で検討して下さい。

zswapを設定する

ZSwapを有効にします。SwapはPCの物理メモリが足りなくなった時にSSDやHDDに退避してクラッシュなどを抑えます。しかし、SSDの場合無駄に書き込まれることでSSDの寿命を減らしてしまう可能性があります。ZswapはSwapされたページを圧縮してメモリに保持してSSDへの書き込みを減らします。

要するに通常のSwapはSSDやHDDを使いますが、zswapはメモリを使用します。Ubuntu系OSやLinuxMintではデフォルトで通常のswapが使用されます。

swapをメモリで使用する方法にはzswapの他にzramなど他の方式もあります。

swapの種類

swapはSSDやHDDを使うと説明しましたが、2種類の方法があります。

  • swapパーティション:SSDやHDDを使う
  • swapファイル:swap用の仮想ファイルを使う

インストール時に手動でパーティションを構成する場合はswap用のパーティションを作成することができます。これを行うとSSDやHDDのswap領域を使用します。swapパーティションを構成しない場合swapファイルが使用されます。デフォルトで2GBのswapファイルになります。

zswapのメリットとデメリット

zswapのメリットは、メモリを圧縮することによって実質的なメモリ量が増加し、デバイスの書き込み量を減らします。また、デバイスの負荷を軽減します。一方でデメリットは、圧縮・解凍処理があるため、低スペックPCの場合CPUに多少の負荷がかかります。また、メモリ量が多いPCの場合はzswapよる恩恵は少ないかもしれません。圧縮効率の悪いデータには効果が薄いことが挙げられます。

zswapの種類と圧縮方式とswapness

zswapはいくつかの種類があります。

  1. zbud(Ubuntu系OSやLinuxMintのデフォルト)
  2. z3fold(zbudよりメモリ効率が良い)

z3foldはUbuntuOS24.04 カーネル6.11では使用できないので注意して下さい。カーネル6.11ではz3foldのパッケージが組み込まれていません。

zswapのメモリの圧縮方式にもいくつかの種類があります。

  • lz4(高速 Ubuntu系OSやLinuxMintのデフォルト)
  • zstd(高圧縮)
  • lzo(バランス型)

swappinessはswapするデータの使用割合を設定します。デフォルト値は「60」です。搭載する物理メモリによって設定値を考慮します。

  • メモリが十分ある環境やSSDの寿命を気にする場合は、低め(10〜20)に調整するのがいいかもしれません。
  • メモリ不足を補いたい場合や、安定性を重視するなら、やや高め(40〜60)でもいいかもしれません。

ツールの使い方

当サービスで提供しているスクリプトの使用方法について説明します。Live起動で使用する場合はLive起動専用のスクリプトがありますが効果があるかわかりませんので注意してください。

①「20_zswap_optimize.sh」をテキストエディターで編集します。(Live起動で使用しないでください

※心配な場合はバックアップを取ってから編集して下さい。

# ※※※Live起動では使用不可※※※

# === 設定値(ここを編集) ===
ZSWAP_ENABLE="1"          # 1 = 有効, 0 = 無効 デフォルト:0
SWAPPINESS_VALUE="10"     # SSD向けは 10〜20 が推奨 デフォルト:60
ZSWAP_COMPRESSOR="lz4"    # lzo, lz4, zstd などが選択肢(lz4 は高速) デフォルト:lz4
ZSWAP_ZPOOL="z3fold"      # zbud, z3fold(z3fold推奨) デフォルト:zbud

「””」で囲われた文字列を変更します。

  • 「””」を消さないでください。
  • 半角英数字を使用して下さい。
  • z3foldはUbuntu系OS24.04 カーネル6.11では使用できないので「ZSWAP_ZPOOL」の設定値を「zbud」にして下さい。「z3fold」に設定しても「zbud」になります。
  • zswapを有効にした後に無効にしたい場合(通常のzswapを使用)は「ZSWAP_ENABLE」の設定値を「0」にしてください。デフォルトは無効です。

②上書き保存します。

③ターミナルで実行します

zswapの設定値を確認する

下記のスクリプトは設定したzswapが反映されているかチェックします。

21_check swap status.sh

LinuxMint Live起動専用zswap設定

Live起動ではGrubの更新が行えないため上記のスクリプトはエラーが発生します。LinuxMint用に「z3fold」に設定するスクリプトを用意しました。ただし、Live起動では機能制限があるためこれが本当に有効になっているかはわかりませんので注意してください。

31_linux_mint_zswap_optimize_LIVE_ONLY.sh

Grub更新による影響

Grubを更新することによって他のLinux OSに影響があります。例えばUbuntuとLinuxMintの両方を使用している場合UbuntuのGrubを更新するとLinuxMintの起動時にポリシー違反が出て起動できない場合があります。これはブータブルUSBでも同じです。1つのLinuxOSを使用している場合はこの影響はありません。

これの修正方法を説明します。

一旦セキュアブートを無効にすることで解決します。

①UEFIにてセキュアブートをdisabled(無効)にして保存します。
②セキュアブートを無効にしたまま起動し、その後シャットダウンします。
③UEFIにてセキュアブートをenabled(有効)にして保存します。
④セキュアブートを有効にしたまま起動します。

Wi-Fiの電源管理を無効にする

Wi-Fiに電源管理機能がある場合にこの機能を無効に設定します。ワイヤレスインターネットを僅かに高速化するのに役立つかもしれません。ただし、この設定を行っても体感的には変わりませんので行わなくても問題ありません。

Wi-Fiに電源管理機能があるか確認する

ターミナル(端末)からiwconfigコマンドを入力し、Power ManagementがONになっているか確認します。

iwconfig

「Power Management」の項目があるか確認します。この項目がない場合はWiFiにこの機能はないので必要ありません。

Ubuntu・LinuxMintのiwconfigコマンドの実行

Wi-Fiの電源管理を無効にする

無効にする場合も有効にする場合も同じスクリプト使用します。

Wi-Fiの電源管理を無効にする

Wi-Fiの電源管理を無効にするには下記のスクリプトを実行します。

22_disable_wifi_power_save.sh

Wi-Fiの電源管理を有効にする

無効にした後に有効にしたい場合はこのスクリプトを編集してから実行します。

①「22_disable_wifi_power_save.sh」をテキストエディタで編集し保存します。

#-----設定-----
#半角数字で入力
POWER_SAVE_VALUE=2

# | 値  | 状態                                 | 説明                 
# | --- | ----------------------------------- | ------------------
# | `0` | `NM_SETTING_WIFI_POWERSAVE_DEFAULT` | デフォルト(ドライバや環境依存)
# | `1` | `NM_SETTING_WIFI_POWERSAVE_IGNORE`  | 無視(設定しない)
# | `2` | `NM_SETTING_WIFI_POWERSAVE_DISABLE` | Power Save 無効(OFF)
# | `3` | `NM_SETTING_WIFI_POWERSAVE_ENABLE`  | デフォルト Power Save 有効(ON)
# パワーセーブモード機能がある場合のデフォルトは3、ない場合のデフォルトは0

「POWER_SAVE_VALUE」の設定値を「3」に変更します。

一時フォルダーをtmpfsに設定する

アプリケーションが一時的にファイルを生成するフォルダーを一時フォルダーと言います。このフォルダーは一般的に「tmp」の名前が使用されます。一時フォルダーはSSDやHDDに書き込みますが、これをメモリに書き込むのがtmpfsになります。Ubuntu系OSやLinuxMintでのデフォルトはtmpが使用されます。tmpfsに変更することでzswap同様、SSDの書き込みを抑えます。

圧縮せずにメモリに書き込むため、8GB以下の物理メモリを搭載したPCで使用することはオススメしません。16GB以上の物理メモリを搭載したPCでの使用を推奨します。

tmpからtmpfsに変更する

以下のスクリプトは16GB未満の物理メモリで使用すことはお勧めしません。

デフォルトのtmpからtmpfsに設定を変更するには下記のスクリプトを実行します。

23_create_tmpfs_partition_prohibited_if_memory_is_less_than_16GB.sh

一時フォルダーの設定を確認する

現在の設定がtmpなのかtmpfsなのかを確認します。

24_check_tmpfs.sh

下図のように表示されるとtmpfsを使用しています。

Ubuntu系OSやLinuxMintで一時フォルダーの設定を確認する①

下図のように「Unit tmp.nount could not be found」と表示された場合はtmpを使用しています。

Ubuntu系OSやLinuxMintで一時フォルダーの設定を確認する②

tmpfsの最大使用率を設定する

tmpfsの物理メモリの最大使用率を設定します。デフォルトはメモリの50%です。基本的に変更しなくても大丈夫だと思いますが、演算などで多くのメモリを使用するアプリを頻繁に使う場合は最大使用量を少なくするなど調整が必要になります。デフォルトの50%にしておいてメモリ不足を感じたら変更するのがおすすめです。

①「25_change_tmpfs_size.sh」をテキストエディタで編集します。

# === 設定値(ここを編集) ===

SIZE_VALUE="50%" # 半角で入力(例: 100M, 1G, 80%)デフォルトは50%

※心配な場合はバックアップを取ってください。

「””」で囲われた文字列を変更します。

  • 「SIZE_VALUE」以外の設定値を変更しないでください。
  • 「””」を消さないで下さい
  • 「100M」「1G」「80%」の単位で設定できます。半角英数字で単位まで含めて入力してください。

②編集したら上書き保存します。

③ターミナルで実行します。

tmpfsの最大使用率の設定を確認する

現在のtmpfsの最大使用率の設定を確認するには下記のスクリプトを実行します。

26_check_tmpfs_size.sh

tmpfsからtmpに変更する

tmpfsに設定した後tmpに戻したい場合は下記のスクリプトを実行して下さい。

27_restore_tmpfs_default.sh

シャットダウンや再起動が正常に行われない不具合を修正する

高速化ではありませんが、Ubuntu系OSやLinuxMintではシャットダウンや再起動が正常行われない既知の不具合があります。インストール完了時にこれが正常に行われないことが報告されています。通常の場合でも頻繁に起こる場合に以下のスクリプトを試してみてください。お使いの機種のUEFIの仕様に関連する場合があるので確実に直るわけではありません。

28_update_grub_cmdline_reboot.sh

このスクリプトはGrubの更新を行っています。

Comment

タイトルとURLをコピーしました