🐧

カーネル設定を永続化する: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. なぜ分かれているのか?

この仕組みは「安全な実験」のために存在します。

  1. まずは Runtimeで試す(sysctl -w)
  2. 問題がなければ Persistentに書く(/etc/sysctl.conf)
  3. もし問題があっても 再起動すれば元に戻る

システムが不安定になるリスクを最小限にしながらチューニングできるのです。

5. まとめ:Linux管理の第一歩

  • Runtime変更は即時だが一時的。
  • Persistent変更は再起動後も維持される。
  • 運用の定石は「試す → 問題なければ永続化」。

この知識があれば、Linuxのカーネルパラメータを安心して扱えるようになります。
今後は設定が消えてしまっても慌てず、「あ、これはRuntimeだったな」と気づけるはずです。🐧

Discussion