Swappiness設定
Ubuntu 26.04では、メモリ圧迫時にスワップ領域へデータを移すタイミングを制御する swappiness パラメータが依然として重要です。デフォルトは 60 に設定されていますが、デスクトップ環境やサーバー用途に合わせて最適化することで、パフォーマンスとスムーズな操作性を向上させることができます。
目次
Swappinessとは何か
Linux カーネルは、物理メモリが一定の閾値を下回ったときにスワップ領域へページを書き出します。その閾値を数値で表したものが swappiness です。
- 0 → 可能な限り物理メモリを使い続け、スワップはほぼ使用しない。
- 100 → メモリが多少残っていてもすぐにスワップへデータを移す。
- デフォルトの 60 は、バランスの取れた中間値です。
スワップはディスク I/O を伴うため、頻繁に使用するとレスポンスが低下します。一方、メモリ不足でページングが頻繁に起きると、システム全体が遅くなります。適切な swappiness 設定は、これらのトレードオフを最適化します。
現在のSwappiness値の確認方法
ターミナルで以下のコマンドを実行してください。
cat /proc/sys/vm/swappiness
例:
$ cat /proc/sys/vm/swappiness
60
一時的に変更する手順
システムを再起動せずに即座に値を変更したい場合は、sysctl コマンドを使います。
# 例: 10 に設定(デスクトップ向き)
sudo sysctl vm.swappiness=10
# 設定が反映されたか確認
cat /proc/sys/vm/swappiness
この変更はランタイムメモリ上にのみ残り、次回起動時に元に戻ります。
永続的に設定を保存する方法
再起動後も設定を保持したい場合は、2 つの方法が一般的です。
1. /etc/sysctl.d/ にカスタムファイルを作成
# /etc/sysctl.d/99-custom-swappiness.conf
vm.swappiness = 10
作成後、次のコマンドで直ちに反映させます。
sudo sysctl --system
2. /etc/sysctl.conf に追記
# /etc/sysctl.conf の最後に追加
vm.swappiness = 10
どちらの方法でも同様に機能しますが、/etc/sysctl.d/ はパッケージやアップデートが上書きしにくい点で推奨されます。
用途別おすすめ設定値
| 利用シーン | 推奨 Swappiness 値 | ポイント |
|---|---|---|
| 一般的なデスクトップ(Web閲覧・文書作成) | 10〜15 | スワップを極力使わず、ディスクI/Oを減らす。 |
| 開発環境(IDE・コンテナ・VM を多用) | 20〜30 | メモリ使用量が変動しやすいので、適度にスワップを許容。 |
| サーバー(データベース・Webサーバー) | 60(デフォルト) | 安定稼働が最優先。メモリ不足時にスワップでクラッシュ回避。 |
| 高負荷計算・科学技術計算(HPC) | 0〜5 | スワップは致命的な遅延になるため、物理メモリが十分にある前提。 |
設定変更時のトラブルシューティング
- 変更が反映されていない
- ファイルの書式が正しいか確認(
vm.swappiness = 10のスペースや「=」の前後に不要な文字が無いか) sudo sysctl --system実行後にcat /proc/sys/vm/swappinessで再確認
- ファイルの書式が正しいか確認(
- スワップが頻繁に使用される
- 物理メモリが足りているか
free -hでチェック - 不要なサービスやデーモンを停止し、メモリフットプリントを削減
- 必要なら SSD ベースのスワップ領域を拡張(性能向上)
- 物理メモリが足りているか
- システムが遅くなる/フリーズする
- Swappiness を低めすぎた結果、OOM キラーが作動していないか
dmesg | grep -i killで確認 - 一時的に
vm.swappinessをデフォルトに戻し、負荷プロファイルを再評価
- Swappiness を低めすぎた結果、OOM キラーが作動していないか
まとめ
Ubuntu 26.04 でも swappiness のチューニングはシステムレスポンス向上の鍵です。まずは現在値を確認し、デスクトップなら 10〜15、サーバーならデフォルトの 60 というように、実際の使用シーンに合わせて調整してみましょう。設定は /etc/sysctl.d/ に永続化するだけで完了です。
本記事を参考に、快適な Ubuntu 体験を手に入れてください!