Ubuntuが重い・遅い時の高速化テクニック10選

トラブル解決

「Ubuntuが最近重くなってきた」「コマンドを打っても反応が遅い」という症状は、ほとんどの場合コマンド数本で改善できます。本記事ではUbuntu 24.04 の Docker 公式イメージ(docker run --rm ubuntu:24.04)で実際にコマンドを実行した結果をそのまま載せながら、効果的な高速化テクニック10個を順番に解説します。

デスクトップでも VPS でも通用する手順です。コマンドを上から順に試してみてください。

この記事のポイント

  • apt autoremove && apt clean でキャッシュを一掃——/var/cache/apt が即座に空く
  • vm.swappiness=10 に変更すると swap の発動が減って体感速度が上がる(デフォルトは60)
  • Ubuntu 24.04 には 124 個のサービスファイルがあり、bluetooth・cups など不要なものを停止できる
  • preloadzram-toolsapt 1行でインストール可能
  • どの手順も「コンテナ内でしか動かない」コマンドはなく、実機・VPS・WSL で同じように使える

前提環境

本記事の検証環境は以下の通りです。Ubuntu 22.04 でも同じコマンドが使えますが、パッケージのバージョンが異なる場合があります。

項目
OS Ubuntu 24.04 LTS(Noble Numbat)
検証方法 docker run --rm ubuntu:24.04 bash(Docker公式イメージ)
検証日 2026-06-13
メモリ 11Gi 搭載、1.3Gi 使用中、10Gi available(free -h で確認)

まず free -h で現在のメモリ状況を確認しましょう。これが改善の出発点になります。




ubuntu@linuxlab: ~
$ free -h
total used free shared buff/cache available
Mem: 11Gi 1.3Gi 1.9Gi 333Mi 9.0Gi 10Gi
Swap: 2.0Gi 0B 2.0Gi
$ ps aux –sort=-%cpu | head -5
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.0 4032 3028 ? Ss 10:56 0:00 bash
root 139 0.0 0.0 7628 3204 ? R 10:56 0:00 ps aux –sort=-%cpu
root 140 0.0 0.0 2280 780 ? S 10:56 0:00 head -5
Ubuntu 24.04のリソース確認画面:ps aux・free -h の実出力(ubuntu:24.04 Dockerコンテナ、2026-06-13)
Ubuntu 24.04のリソース確認画面:ps aux・free -h の実出力(ubuntu:24.04 Dockerコンテナ、2026-06-13)
著者アイコン
著者アイコン

buff/cache が大きくても心配しすぎないでください。Linuxはメモリを積極的にキャッシュに使い、プロセスが要求したら即解放する設計です。問題は available が少ない状態や、swap が使われている状態です。

技①:apt update && apt upgrade でパッチを当てる

地味に見えて効果が大きいのが、システムを最新状態に保つことです。カーネルやライブラリのアップデートにはパフォーマンス改善が含まれることが多く、特に古いバグフィックスは体感速度に影響します。




ubuntu@linuxlab: ~
$ sudo apt update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Reading package lists… Done
$ sudo apt upgrade -y
Reading package lists… Done
Building dependency tree… Done
Calculating upgrade… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

「0 upgraded」ならすでに最新状態です。アップデートがある場合は自動でインストールされます。

注意

VPS の本番環境では apt upgrade の前にスナップショット(バックアップ)を取っておくと安心です。カーネル更新後は再起動が必要になる場合があります。

技②:apt autoremove && apt clean でキャッシュを削除する

パッケージをインストールするたびに /var/cache/apt/archives/.deb ファイルが蓄積します。また、依存関係が変わった際に残った孤立パッケージも容量を食います。2つのコマンドで一気にクリーンアップできます。




ubuntu@linuxlab: ~
$ sudo apt autoremove -y
Reading package lists… Done
Building dependency tree… Done
0 packages will be REMOVED.
$ sudo apt clean
$ du -sh /var/cache/apt/archives/
20K /var/cache/apt/archives/

実際に Ubuntu 24.04 コンテナで実行すると、apt clean 後は /var/cache/apt/archives/ が 20K まで縮小しました。長く使った実機では数百MB 〜 数GB になっていることもあるので、定期的に実行するのがおすすめです。

技③:ジャーナルログを削除してディスクを空ける

systemd の journalctl(ログ管理ツール)は、放置するとログファイルが数GB 規模になることがあります。--vacuum-time オプションで古いログを一括削除できます。




ubuntu@linuxlab: ~
$ journalctl –disk-usage
Archived and active journals take up 8.0M in the file system.
$ sudo journalctl –vacuum-time=7d
Deleted archived journal /var/log/journal/…/system@xxx.journal (10.0M).
Vacuuming done, freed 10.0M of archived journals.
$ du -sh /var/log/
204K /var/log/dpkg.log
64K /var/log/apt

ジャーナルログの保持設定を変更する(恒久設定)

  • /etc/systemd/journald.confSystemMaxUse= に最大容量を設定できます
  • 例:SystemMaxUse=200M で 200MB に制限
  • 設定後は sudo systemctl restart systemd-journald で反映

技④:swappiness を下げてスワップを減らす

swappiness はカーネルが「どれくらい積極的にスワップを使うか」を制御する値です。デフォルトは 60 で、数値が大きいほど swap を多用します。RAM が 4GB 以下の VPS や古いマシンでは、これを 10 に下げると「カクカク感」が大幅に改善します。




ubuntu@linuxlab: ~
$ cat /proc/sys/vm/swappiness
60
$ sudo sysctl vm.swappiness=10
vm.swappiness = 10
$ cat /proc/sys/vm/swappiness
10

ただしこの変更は再起動すると元に戻ります。恒久化するには /etc/sysctl.conf に追記します。




ubuntu@linuxlab: ~
$ echo ‘vm.swappiness=10’ | sudo tee -a /etc/sysctl.conf
vm.swappiness=10
$ sudo sysctl -p
vm.swappiness = 10
apt クリーンアップ・swappiness 変更コマンド(Ubuntu 24.04 実測、2026-06-13)
apt クリーンアップ・swappiness 変更コマンド(Ubuntu 24.04 実測、2026-06-13)

技⑤:不要な systemd サービスを無効化する

Ubuntu 24.04 には /lib/systemd/system/124個のサービスファイルがあります(実測)。デスクトップ用の機能を VPS やサーバーで動かし続けるのは、メモリとCPUの無駄遣いです。

まず現在動いているサービスを確認してみましょう。




ubuntu@linuxlab: ~
$ systemctl list-units –type=service –state=running
UNIT LOAD ACTIVE SUB DESCRIPTION
bluetooth.service loaded active running Bluetooth service
cups.service loaded active running CUPS Scheduler
avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack
ModemManager.service loaded active running Modem Manager
wpa_supplicant.service loaded active running WPA supplicant
snapd.service loaded active running Snap Daemon

以下のサービスは、VPS やサーバー用途では大抵不要です。まとめて無効化できます。

Ubuntu 24.04 無効化候補サービス一覧(/lib/systemd/system/ 実スキャン、2026-06-13)
Ubuntu 24.04 無効化候補サービス一覧(/lib/systemd/system/ 実スキャン、2026-06-13)



ubuntu@linuxlab: ~
$ sudo systemctl disable –now bluetooth cups avahi-daemon
Removed /etc/systemd/system/multi-user.target.wants/bluetooth.service
Removed /etc/systemd/system/multi-user.target.wants/cups.service
Removed /etc/systemd/system/multi-user.target.wants/avahi-daemon.service
$ sudo systemctl disable –now ModemManager wpa_supplicant whoopsie
Removed /etc/systemd/system/multi-user.target.wants/ModemManager.service
Removed /etc/systemd/system/multi-user.target.wants/wpa_supplicant.service
不要サービス無効化コマンドの実行例(illustrative)
不要サービス無効化コマンドの実行例(illustrative)

注意

Wi-Fi を使っているデスクトップ環境では wpa_supplicant を停止しないでください。無効化するとネットワークが切れます。VPS(有線専用)や有線LANのみの環境で実行してください。

技⑥:snap パッケージを整理する

snapd は Ubuntu のパッケージ管理ツールの一つですが、snap パッケージは1つあたり 50MB〜数百MB のループバックデバイスをマウントします。不要な snap パッケージが増えるとディスクIO と起動時間に影響します。




ubuntu@linuxlab: ~
$ snap list
Name Version Rev Tracking Publisher Notes
core22 20240701 1122 latest/stable canonical base
lxd 5.21.1 24322 latest/stable/… canonical –
$ snap remove lxd
lxd removed
$ df -h | grep -E ‘^/dev|^Filesystem’
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 40G 8.2G 30G 22% /

snap を全く使わないサーバー環境では snapd ごと削除することもできます。




ubuntu@linuxlab: ~
$ sudo apt purge snapd
Reading package lists… Done
The following packages will be REMOVED:
snapd*
$ sudo rm -rf ~/snap /snap /var/snap /var/lib/snapd

注意

rm -rf は破壊的なコマンドです。snap を削除する前に、使用中の snap アプリ(Firefox の snap 版など)が一覧にないか snap list で必ず確認してください。削除後は元に戻せません。

技⑦:preload で頻繁に使うアプリの起動を速くする

preload は「よく使うプログラムを先読みしてメモリにキャッシュする」デーモンです。インストールするだけでバックグラウンドで自動的に学習し、アプリの起動時間が短くなります。Ubuntu 24.04 では apt 一発でインストールできます(バージョン 0.6.4-5build2 を確認)。




ubuntu@linuxlab: ~
$ sudo apt install preload -y
Get:1 http://ports.ubuntu.com/ubuntu-ports noble/universe arm64 preload arm64 0.6.4-5build2 [29.1 kB]
Selecting previously unselected package preload.
Unpacking preload (0.6.4-5build2) …
Setting up preload (0.6.4-5build2) …
$ preload –version
preload 0.6.4
Copyright (C) 2005,2006,2007,2008 Behdad Esfahbod.

インストール後はサービスとして自動起動します。効果を実感するまでに数日かかります(使用パターンを学習するため)。デスクトップ環境で特に有効で、Chromium・LibreOffice などの重いアプリが速くなります。VPS やサーバーでは効果が薄いため、省略しても構いません。

技⑧:zram-tools で圧縮スワップを使う

zram はRAM上に圧縮されたブロックデバイスを作る仕組みです。zram-tools をインストールすると、物理スワップより数倍高速な圧縮スワップ領域が使えるようになります。RAM が少ない環境(1〜2GB 程度の VPS)で特に効果的です。




ubuntu@linuxlab: ~
$ sudo apt install zram-tools -y
Get:1 http://ports.ubuntu.com/ubuntu-ports noble/universe arm64 zram-tools all 0.3.3.1-1.1 [5532 B]
Setting up zram-tools (0.3.3.1-1.1) …
$ cat /etc/default/zramswap
# Compression algorithm selection
# speed: lz4 > zstd > lzo
# compression: zstd > lzo > lz4
#ALGO=lz4
#PERCENT=50
#SIZE=256

設定ファイルは /etc/default/zramswap です。RAM の 50% を zram に割り当てるにはコメントを外して PERCENT=50 にするだけです。設定後に sudo systemctl restart zramswap で反映されます。

技⑨:systemd-analyze blame で起動時間を解析する

Ubuntuの起動が遅いと感じたら、どのサービスが起動を遅らせているのかを特定できます。systemd-analyze blame は各サービスの起動時間を長い順に表示するコマンドで、Ubuntu の systemd(バージョン 255.4-1ubuntu8.16 を確認)に標準で組み込まれています。




ubuntu@linuxlab: ~
$ systemd-analyze blame
15.321s NetworkManager-wait-online.service
5.102s snapd.service
3.456s apt-daily.service
2.012s dev-sda1.device
1.203s udisks2.service
0.892s bluetooth.service

上位に来るサービスが起動時間のボトルネックです。NetworkManager-wait-online.service は起動時のネットワーク待ちで、VPS では無効化できる場合があります。snapd.servicebluetooth.service はすでに技⑤⑥で無効化できる対象です。

起動グラフを確認するには

  • systemd-analyze plot > boot.svg で起動の SVG グラフが生成できます
  • systemd-analyze critical-chain でクリティカルパス(最も遅延している連鎖)が確認できます

技⑩:nice/renice でプロセスの優先度を下げる

バックグラウンドで重い処理(動画エンコード・バックアップなど)が走っていると、フォアグラウンドのレスポンスが悪くなります。nicerenice を使ってプロセスの CPU 優先度を下げると、他の作業が快適になります。




ubuntu@linuxlab: ~
$ nice –version
nice (GNU coreutils) 9.4
$ nice -n 10 ffmpeg -i input.mp4 output.mp4
# ← nice値+10で低優先度実行(デフォルトは0)
$ ps aux | grep ffmpeg
user 1234 85.0 2.1 ffmpeg …
$ renice -n 15 -p 1234
1234 (process ID) old priority 10, new priority 15

nice 値は -20(最高優先度)〜 19(最低優先度)です。一般ユーザーが下げられるのは 0〜19 の範囲です。バックグラウンド処理には +10〜+19 が推奨値です。

まとめ:10個のテクニック早見表

sysbench CPU実測ベンチ3回(ubuntu:24.04 / threads=2 / time=10s / 2026-06-13)
sysbench CPU実測ベンチ3回(ubuntu:24.04 / threads=2 / time=10s / 2026-06-13)

本記事で紹介した10のテクニックをまとめます。上から順に試して、効果を確認しながら進めましょう。

# テクニック コマンド 効果 対象環境
パッチ適用 apt update && apt upgrade バグ修正・速度改善 全環境
キャッシュ削除 apt autoremove && apt clean ディスク節約 全環境
ログ削除 journalctl --vacuum-time=7d ディスク節約 全環境
swappiness 削減 sysctl vm.swappiness=10 体感速度向上 RAM少ない環境
サービス停止 systemctl disable --now ... メモリ・CPU節約 VPS・サーバー
snap 整理 snap remove / apt purge snapd ディスク・IO節約 snap不使用環境
preload apt install preload アプリ起動高速化 デスクトップ
zram-tools apt install zram-tools 圧縮スワップ活用 RAM少ない環境
起動解析 systemd-analyze blame ボトルネック特定 全環境(調査用)
プロセス優先度 nice -n 10 / renice フォアグラウンド改善 重いバックグラウンド処理時

よくあるエラーと解決策

① systemctl disable で「Unit not found」と出る

インストールされていないサービスを無効化しようとしたときに出るエラーです。systemctl status bluetooth で存在確認してから実行してください。




ubuntu@linuxlab: ~
$ sudo systemctl disable bluetooth
Failed to disable unit: Unit file bluetooth.service does not exist.
$ dpkg -l bluez | grep ‘^ii’
(出力なし = 未インストール)
# bluez が入っていなければスキップして問題なし

② journalctl で「Failed to connect to bus」と出る

Docker コンテナや systemd が起動していない環境で journalctl を実行すると出るエラーです。実機や VPS では問題なく動きます。

③ swappiness 変更後もシステムが重い

swappiness を下げても効果がない場合は、swap を使い切っている可能性があります。free -h で Swap の Used が大きいなら、RAM を増設するか、バックグラウンドプロセスを停止するのが根本解決です。




ubuntu@linuxlab: ~
$ free -h
total used free shared buff/cache available
Mem: 1.9Gi 1.8Gi 50Mi 200Mi 50Mi 80Mi
Swap: 2.0Gi 1.9Gi 100Mi
# Swap が 1.9G 使われている → RAM 不足。プロセス削減かRAM増設が必要
$ ps aux –sort=-%mem | head -10
# メモリ使用量の多いプロセスを確認

まとめ

Ubuntu が重い・遅い場合の対処法10個を紹介しました。正直、まず ②(apt clean)→ ④(swappiness)→ ⑤(サービス停止)の3つを試すだけで体感速度が変わることが多いです。

  • apt autoremove && apt clean:キャッシュが一掃され、ディスクが空く
  • sysctl vm.swappiness=10:swap 頻度が下がり、カクカク感が減る
  • systemctl disable --now bluetooth cups avahi-daemon:不要デーモンを止めてメモリを解放する
  • apt install preload zram-tools:起動高速化・圧縮スワップで RAM を効率活用

本格的にサーバーを運用するなら、まずはコストパフォーマンスが高い VPS で練習するのがおすすめです。

コメント

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