🐧
カーネル設定を永続化する:Runtime vs Persistentの違い
はじめに:消える設定の謎
Linuxのチューニングをしたときに、こんな経験はありませんか?
「オンラインのガイド通りに設定を変更してみたら、ちゃんと動いた!…でも再起動したら元に戻ってる!?」
これは単なるミスではなく、Linuxの基本的な仕組みです。
Linuxカーネルのパラメータには2種類の適用方法があり、
- Runtime(ランタイム/一時的) … その場で効くが、再起動で消える
- Persistent(永続的) … 設定ファイルに書き込んで、再起動しても残る
この記事では、この2つの違いを整理しながら「設定を消えないようにする方法」を解説していきます。
1. 「今すぐ効く」Runtime変更
Linuxカーネルの設定は /proc/sys という仮想ファイルシステムを通じて操作できます。
これはシステムの「作業メモリ」であり、直接変更すると即座に反映されますが、再起動すると消えてしまいます。
方法1: echoで直接書き込む
例:IPフォワーディングを有効化する場合
echo 1 > /proc/sys/net/ipv4/ip_forward
方法2: sysctlコマンドを使う
sysctl -w net.ipv4.ip_forward=1
こちらは入力チェックも行われるため安全です。
2. 「残る」Persistent変更
永続化するには 設定ファイルに書き込む 必要があります。
主な場所は以下の2つ:
/etc/sysctl.conf-
/etc/sysctl.d/ディレクトリ内のファイル
設定例
net.ipv4.ip_forward = 1
保存したら、すぐに反映することも可能です:
sysctl -p
再起動時には sysctl --system によって自動的に読み込まれるため、設定は消えません。
3. Runtime vs Persistent 比較表
| 特徴 | Runtime(一時的) | Persistent(永続的) |
|---|---|---|
| 方法 |
echo または sysctl -w
|
/etc/sysctl.conf または /etc/sysctl.d/
|
| 反映タイミング | 即時反映 | 再起動時(または sysctl -p で即時) |
| 再起動後も残る? | ✗ | ✓ |
| 適した用途 | テスト、トラブルシュート | 本番設定、パフォーマンス調整 |
4. なぜ分かれているのか?
この仕組みは「安全な実験」のために存在します。
- まずは Runtimeで試す(sysctl -w)
- 問題がなければ Persistentに書く(/etc/sysctl.conf)
- もし問題があっても 再起動すれば元に戻る
システムが不安定になるリスクを最小限にしながらチューニングできるのです。
5. まとめ:Linux管理の第一歩
- Runtime変更は即時だが一時的。
- Persistent変更は再起動後も維持される。
- 運用の定石は「試す → 問題なければ永続化」。
この知識があれば、Linuxのカーネルパラメータを安心して扱えるようになります。
今後は設定が消えてしまっても慌てず、「あ、これはRuntimeだったな」と気づけるはずです。🐧
Discussion