bokumin.org

RSS Sitemap Mail
ritual-clearcut

Gnomeを軽くする初期設定まとめ

Initial Setup Guide for Optimizing GNOME Performance

はじめに

Linuxを使われている方なら誰もが知っているデスクトップ環境のGnomeですが、PCの性能が古かったり低かったりすると結構動作が重くなったりすることが多いです。
今回、わたしがChromebookをLinux(debian12)に変えた際にGnomeを選んだのですが(xfceやKDE Plasmaではタッチ操作が上手くいかなかった為)その時行った軽量化するための初期設定を紹介していきます。

不要なサービスの無効化

まずは現在どんなサービスが有効になっているかを確認していきます。一覧を見ると、意外と使っていない機能のためのサービスが常時起動していることに気づきます。

# 現在有効になっているサービスを一覧表示
systemctl list-unit-files --state=enabled

人によってPCの使用用途は異なると思いますが、各自の使用用途に応じて不要だなと思ったものを無効化することでシステムリソースの消費を抑えることができます。
以下は無効化しても問題になりにくい代表的なサービスです。

# Evolutionメールクライアント関連(Evolutionを使わない場合)
sudo systemctl disable evolution-data-server.service

# GNOMEソフトウェアの自動更新チェック(手動で更新確認する分には問題なし)
sudo systemctl disable gnome-software

# プリンターサービス(プリンター未使用の場合)
sudo systemctl disable gsd-printer
sudo systemctl disable cups

# Bluetooth(内蔵Bluetoothを使わない場合)
sudo systemctl disable bluetooth.service

# モデム管理サービス(SIMカードなどを使わない場合)
sudo systemctl disable ModemManager.service

# 位置情報サービス
sudo systemctl disable geoclue.service

# ネットワーク機器の自動検出(家庭内のAirPlayやプリンター共有などを使わない場合)
sudo systemctl disable avahi-daemon.service

それぞれ「使っていない機能かどうか」で判断してください。例えばBluetoothイヤホンを使っている場合はbluetooth.serviceは無効化しないでください。無効化した後に不具合が出た場合は、sudo systemctl enable --now サービス名で元に戻せます。

自動起動アプリケーションの管理

不要な自動起動アプリケーションを無効化することで、起動時間を短縮し、リソース使用を抑えることができます。自動起動の設定は「システム全体」の /etc/xdg/autostart/ と、「ユーザー個別」の ~/.config/autostart/ の2箇所にあるので、両方確認しておくと漏れがありません。

# システム全体の自動起動設定と、ユーザー単位の自動起動設定を両方確認
ls /etc/xdg/autostart/
ls ~/.config/autostart/ 2>/dev/null

無効化したいアプリケーションが見つかったら、該当の.desktopファイルを編集します。

sudo nano /etc/xdg/autostart/アプリケーション名.desktop

# 以下の行をfalseにするとGnome起動時に自動起動しなくなる
X-GNOME-Autostart-enabled=false

# アプリケーション一覧にも表示させたくない場合
Hidden=true

無効化しても大丈夫そうなアプリケーションを挙げておきます。参考にしてみてください。

  • org.gnome.Evolution-alarm-notify.desktop(Evolutionメールアプリの通知)
  • tracker-miner-fs-3.desktop(ファイル検索インデックス作成。次項で詳しく解説)
  • orca-autostart.desktop(スクリーンリーダー。視覚サポートを使わない場合)
  • onboard-autostart.desktop(画面キーボード。タッチパネル未使用時)
  • blueman.desktop(Bluetoothマネージャー)
  • geoclue-demo-agent.desktop(位置情報サービス)
  • print-applet.desktop(プリンター関係)
  • org.gnome.Software.desktop(ソフトウェア管理)

アニメーション効果の無効化

GNOMEはウィンドウの開閉やワークスペースの切り替えなどにアニメーション効果を使っていますが、低スペック環境ではこれがもたつきの原因になります。以下のコマンドで無効化すると、体感速度がかなり変わります。

# GNOMEのウィンドウアニメーションを無効化(体感速度上がる)
gsettings set org.gnome.desktop.interface enable-animations false

元に戻したい場合はenable-animationsの値をtrueにすれば大丈夫です。

Trackerのファイル検索インデックスを見直す

GNOMEにはファイル検索を高速化するためのTrackerというインデックス作成サービスがあります。便利な反面、バックグラウンドで常にファイルをスキャンするためCPUとディスクI/Oを消費します。ファイル検索の速さより軽量さを優先したい場合は停止してしまいましょう。

# Trackerの動作状況を確認
tracker3 daemon -s

# ファイル検索インデックス作成サービスを停止・無効化
systemctl --user mask tracker-extract-3.service
systemctl --user mask tracker-miner-fs-3.service
systemctl --user mask tracker-miner-fs-control-3.service
systemctl --user mask tracker-miner-rss-3.service
systemctl --user mask tracker-writeback-3.service
systemctl --user mask tracker-xdg-portal-3.service

元に戻す場合はmaskの部分をunmaskに変えて実行してください。

GNOME拡張機能を整理する

GNOME Shell拡張機能は便利ですが、入れすぎるとGNOME Shellプロセス自体が重くなります。特に天気ウィジェットやシステムモニター系の拡張機能は常時バックグラウンドで動作するため、負荷が気になる場合は見直しましょう。

# インストール済みのGNOME拡張機能を一覧表示
gnome-extensions list

# 使っていない拡張機能を無効化
gnome-extensions disable 拡張機能のUUID

システムログの肥大化を防ぐ

systemdのログ(journal)は放置すると数GBに膨れ上がることがあり、ディスクを圧迫するだけでなくログ書き込み自体もわずかに負荷になります。定期的に、もしくは上限を決めて整理しておくと安心です。

# 現在たまっているログを50MBまで削減
sudo journalctl --vacuum-size=50M

# 恒久的に上限を設定する場合は /etc/systemd/journald.conf を編集
sudo nano /etc/systemd/journald.conf
# SystemMaxUse=50M のようにコメントアウトを外して設定

メモリが少ない場合はzramの導入も検討

メモリが4GB前後など少なめの環境では、zram(メモリ上に圧縮スワップ領域を作る仕組み)を導入するとスワップの発生によるフリーズや動作の引っかかりを軽減できます。SSDへの書き込みスワップと違い速度も速いのでおすすめです。

# zram-toolsをインストール(メモリを圧縮して使えるスワップ領域を作る)
sudo apt install zram-tools
sudo systemctl enable --now zramswap

そこまでスペックが低いならGnomeを使わずに他のデスクトップ使えということを言われそうですが、chromebook ideapadのタッチ操作の良さが一番良かったのでいまなお使っています。

おわり