古いハードウェアを蘇らせる:Linux最適化ガイド

Linux tutorial - IT technology blog
Linux tutorial - IT technology blog

「軽量」Linuxディストリビューションの神話

Linuxをインストールするだけで、10年前のノートPCが即座に最新マシンのように速くなるというのは、よくある誤解です。Linuxは本質的にモジュール化されていますが、UbuntuやFedoraといった最新の主要ディストリビューションでGNOMEを実行すると、アイドル時でも1.5GBから2.2GBのRAMを消費することがよくあります。

メモリが4GBしかなく、HDD(ハードディスクドライブ)を搭載したマシンでは、これがすぐにボトルネックとなります。システムが絶えずデータを低速なディスクに移動させる「スワップスラッシング」が発生し、カーソルが一度に5〜10秒間フリーズするような現象に見舞われるでしょう。

ボトルネックがLinuxカーネル自体にあることは稀です。むしろ、リソースを大量に消費するバックグラウンドサービスや、最適化されていないメモリ管理がラグの原因です。これを解決するには、視覚的な装飾を削ぎ落とし、負荷がかかった時のメモリ処理方法を変更する必要があります。

パフォーマンスを向上させる3つのレバー:UI、メモリ、カーネル

低スペックなシステムを最適化するには、3つの側面からのアプローチが必要です。それぞれの調整には、システムの見た目とレスポンスの速さの間で異なるトレードオフがあります。

デスクトップ環境:無駄の削減

デスクトップ環境(DE)は、RAM消費の最大の要因です。GNOMEやKDE Plasmaは美しいですが、要求スペックも高いです。対照的に、XFCEやLXQtを使用すれば、アイドル時のRAM使用量を約500MBまで抑えることができます。さらに、i3やOpenboxといったウィンドウマネージャ(WM)に挑戦すれば、200MB程度まで軽量化できますが、キーボード主体の操作を覚える必要があります。

メモリ管理:なぜZramがディスクスワップより優れているのか

標準的なLinuxの設定では、ドライブ上のスワップパーティションを使用します。RAMがいっぱいになると、OSはデータをディスクに書き込みますが、古いHDDではこれが耐え難いほど低速です。ここでZramが役立ちます。Zramは、RAM内に直接圧縮ブロックデバイスを作成します。RAMを節約するためにRAMを使うというのは奇妙に聞こえるかもしれませんが、3:1の圧縮率により、4GBのマシンを6GBや7GB搭載しているかのように動作させることができ、データを低速なディスクではなく高速なメモリ内に留めておくことができます。

最適化戦略の比較

戦略 メリット デメリット
軽量DE (XFCE) RAMを約1GB節約。従来のOSに近い操作感。 アイコンが古臭い。自動化されたGUIツールが少ない。
Zram設定 HDDによるラグを解消。マルチタスク性能が大幅向上。 圧縮によるわずかなCPU負荷。
カーネルSysctlチューニング マイクロスッタリング(微細なカクつき)を解消。 設定ファイルの手動編集が必要。

RAM 2GB〜4GBのマシンに最適な構成

2012年頃のノートPCを復活させるなら、以下のスタックが最良の結果をもたらします。

  • ベース: Debian または Ubuntu Minimal
  • インターフェース: XFCE(慣れ親しんだ操作感)または i3wm(純粋なスピード重視)
  • 圧縮: zstdアルゴリズムを使用したZram
  • カーネル: swappinessとcache_pressureを調整した標準LTSカーネル

ステップバイステップの導入手順

1. デスクトップ環境の切り替え

インターフェースを変更するためにドライブを初期化する必要はありません。現在の環境と並行して軽量なUIをインストールし、ログイン画面で選択できます。GNOMEのオーバーヘッドなしでタスクバーやスタートメニューを使いたいユーザーにとって、XFCEは最も信頼できる選択肢です。

# UbuntuまたはDebianユーザーの場合
sudo apt update
sudo apt install xfce4 xfce4-goodies

# Fedoraユーザーの場合
sudo dnf groupinstall "Xfce Desktop"

インストールが完了したら、ログアウトします。ログイン画面にある小さな歯車アイコンをクリックし、パスワードを入力する前に「XFCE Session」を選択してください。

2. Zramを導入してマルチタスクを軽快にする

これは最も効果的な変更です。古いi3プロセッサと4GBのRAMを搭載したテストマシンでは、Zramを使用することで、システムがロックアップすることなく、コードエディタと並行してFirefoxのタブを15個開いたままにできました。Zramなしでは、5つ目のタブを開いた瞬間に動作が極端に重くなりました。

zram-toolsパッケージを使用すると、設定が大幅に簡素化されます。

# ユーティリティをインストールする
sudo apt install zram-tools

# 設定を開く
sudo nano /etc/default/zramswap

割り当てを全RAMの60%に設定し、圧縮率と速度のバランスが最も優れたzstdを使用します。

ALLOCATION_STRATEGY=fixed
# 4GBのマシンの場合は2400に設定
SIZE=2400
PRIORITY=100
COMPRESSION_ALGO=zstd

サービスを再起動して変更を適用します。

sudo systemctl restart zramswap
# 設定を確認する
zramctl

3. カーネルの動作調整(sysctl)

Linuxカーネルは、古いデスクトップではなくサーバー向けに調整されていることが多いです. デフォルトでは、データのディスクへのスワップが早すぎたり、ファイルキャッシュの破棄が積極的すぎたりすることがあります。これはシステム制御ファイルを編集することで修正可能です。

sudo nano /etc/sysctl.conf

ファイルの一番下に以下の値を貼り付けます。

# 完全に必要になるまでディスクにスワップしない
vm.swappiness=10

# ファイルシステムのメタデータ(フォルダ/ファイルリスト)をRAMに長く保持する
vm.vfs_cache_pressure=50

# UIのハングを防ぐため、バックグラウンド書き込みの処理を改善する
vm.dirty_ratio=10
vm.dirty_background_ratio=5

sudo sysctl -pを実行して、設定を即座に有効にします。

4. バックグラウンドサービスの削減

最新のディストリビューションは、おそらく不要なサービスを数十個も起動しています。systemd-analyze blameを使用して、どのプロセスが起動時間を消費しているかを確認してください。Bluetoothカードがないデスクトップでbluetooth.serviceがリソースを消費している場合は、オフにしましょう。

# 例:RAMを節約するためにBluetoothと印刷サービスを無効化する
sudo systemctl disable bluetooth.service
sudo systemctl disable cups.service

結果のモニタリング

これらの調整が機能しているか確認するために、htopをインストールしましょう。デフォルトのシステムモニターよりもはるかに明確な状況を把握できます。「Swap」バーを見てください。ここが埋まっていてもディスクランプが絶えず点滅していなければ、Zramがメモリ内のデータを圧縮して役割を果たしている証拠です。

軽量なUIとスマートなメモリ圧縮を組み合わせることで、動作の重いPCをWebブラウジングや事務作業に十分対応できるマシンに変えることができます。単に高速化するだけでなく、ハードウェアの寿命を数年延ばすことにもつながります。

Share: