「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 など不要なものを停止できる
preload・zram-toolsはapt1行でインストール可能- どの手順も「コンテナ内でしか動かない」コマンドはなく、実機・VPS・WSL で同じように使える
- 前提環境
- 技①:apt update && apt upgrade でパッチを当てる
- 技②:apt autoremove && apt clean でキャッシュを削除する
- 技③:ジャーナルログを削除してディスクを空ける
- 技④:swappiness を下げてスワップを減らす
- 技⑤:不要な systemd サービスを無効化する
- 技⑥:snap パッケージを整理する
- 技⑦:preload で頻繁に使うアプリの起動を速くする
- 技⑧:zram-tools で圧縮スワップを使う
- 技⑨:systemd-analyze blame で起動時間を解析する
- 技⑩:nice/renice でプロセスの優先度を下げる
- まとめ:10個のテクニック早見表
- よくあるエラーと解決策
- まとめ
前提環境
本記事の検証環境は以下の通りです。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 で現在のメモリ状況を確認しましょう。これが改善の出発点になります。
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

技①:apt update && apt upgrade でパッチを当てる
地味に見えて効果が大きいのが、システムを最新状態に保つことです。カーネルやライブラリのアップデートにはパフォーマンス改善が含まれることが多く、特に古いバグフィックスは体感速度に影響します。
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つのコマンドで一気にクリーンアップできます。
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 オプションで古いログを一括削除できます。
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.confのSystemMaxUse=に最大容量を設定できます- 例:
SystemMaxUse=200Mで 200MB に制限 - 設定後は
sudo systemctl restart systemd-journaldで反映
技④:swappiness を下げてスワップを減らす
swappiness はカーネルが「どれくらい積極的にスワップを使うか」を制御する値です。デフォルトは 60 で、数値が大きいほど swap を多用します。RAM が 4GB 以下の VPS や古いマシンでは、これを 10 に下げると「カクカク感」が大幅に改善します。
60
$ sudo sysctl vm.swappiness=10
vm.swappiness = 10
$ cat /proc/sys/vm/swappiness
10
ただしこの変更は再起動すると元に戻ります。恒久化するには /etc/sysctl.conf に追記します。
vm.swappiness=10
$ sudo sysctl -p
vm.swappiness = 10

技⑤:不要な systemd サービスを無効化する
Ubuntu 24.04 には /lib/systemd/system/ に 124個のサービスファイルがあります(実測)。デスクトップ用の機能を VPS やサーバーで動かし続けるのは、メモリとCPUの無駄遣いです。
まず現在動いているサービスを確認してみましょう。
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 やサーバー用途では大抵不要です。まとめて無効化できます。

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

注意
Wi-Fi を使っているデスクトップ環境では wpa_supplicant を停止しないでください。無効化するとネットワークが切れます。VPS(有線専用)や有線LANのみの環境で実行してください。
技⑥:snap パッケージを整理する
snapd は Ubuntu のパッケージ管理ツールの一つですが、snap パッケージは1つあたり 50MB〜数百MB のループバックデバイスをマウントします。不要な snap パッケージが増えるとディスクIO と起動時間に影響します。
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 ごと削除することもできます。
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 を確認)。
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)で特に効果的です。
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 を確認)に標準で組み込まれています。
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.service や bluetooth.service はすでに技⑤⑥で無効化できる対象です。
起動グラフを確認するには
systemd-analyze plot > boot.svgで起動の SVG グラフが生成できますsystemd-analyze critical-chainでクリティカルパス(最も遅延している連鎖)が確認できます
技⑩:nice/renice でプロセスの優先度を下げる
バックグラウンドで重い処理(動画エンコード・バックアップなど)が走っていると、フォアグラウンドのレスポンスが悪くなります。nice と renice を使ってプロセスの CPU 優先度を下げると、他の作業が快適になります。
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個のテクニック早見表

本記事で紹介した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 で存在確認してから実行してください。
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 を増設するか、バックグラウンドプロセスを停止するのが根本解決です。
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 で練習するのがおすすめです。



コメント