
Linuxシステム管理者は、デフォルトのカーネルの動作を変更する必要がある場合があります。たとえば、マジックSysRqキーを有効にしたり、カーネルが受け入れる接続の数を増やしたりする必要がある場合があります。カーネルパラメータは、カーネルの構築時、システムの起動時、または実行時に設定できます。
この記事では、sysctl
の使用方法について説明します 実行時にカーネルパラメータを表示および変更するコマンド。
sysctl
の使用 カーネルパラメータを表示するには#
現在のすべてのカーネルパラメータを表示するには、sysctl
を呼び出します。 -a
を使用したコマンド オプション:
sysctl -a
これにより、次のような大きなリストが出力されます。各行には、パラメーターの名前とその値が含まれています。
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
...
すべてのユーザーは、現在のカーネルパラメーターを表示できます。 rootユーザーのみが値を変更できます。
sysctl
に引数として名前を渡すことにより、単一のパラメーターの値を確認できます。 。たとえば、現在のswappiness値を確認するには、次のように入力します。
sysctl vm.swappiness
vm.swappiness = 60
Swappinessは、システムがスワップスペースを使用する頻度を定義するLinuxカーネルプロパティです。
sysctl
コマンドは/proc/sys
から情報を読み取ります ディレクトリ。 /proc/sys
は、現在のカーネルパラメータを表示および設定するために使用できるファイルオブジェクトを含む仮想ディレクトリです。
適切なファイルの内容を表示して、パラメータ値を表示することもできます。唯一の違いは、ファイルの表現方法です。たとえば、両方のsysctl vm.swappiness
およびcat /proc/sys/vm/swappiness
同じ出力が得られます。 sysctl
を使用する場合 ディレクトリスラッシュはドットとproc.sys
に置き換えられます 一部を想定しています。
sysctl
の使用 カーネルパラメータを変更するには#
実行時にカーネルパラメータを設定するには、sysctl
を実行します コマンドの後に、次の形式のパラメーター名と値が続きます:
sysctl -w parameter=value
値に空のスペースまたは特殊文字が含まれている場合は、値を二重引用符で囲みます。複数のparameter=value
を渡すこともできます 同じコマンドでペアになります。
たとえば、IPv4パケット転送を有効にするには、次のコマンドを実行します。
sysctl -w net.ipv4.ip_forward=1
変更はすぐに有効になりますが、永続的ではありません。システムの再起動後、デフォルト値がロードされます。
パラメータを永続的に設定するには、設定を/etc/sysctl.conf
に書き込む必要があります または/etc/sysctl.d
内の別の構成ファイル ディレクトリ:
sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf
パラメータを変更する別の方法は、echo
を使用することです。 /proc/sys
内のファイルに設定を書き込むコマンド ディレクトリ。たとえば、上記のコマンドを実行する代わりに、次を使用できます。
echo 1 > /proc/sys/net/ipv4/ip_forward
-p
オプションを使用すると、構成ファイルから設定をロードできます:
sysctl -p /etc/sysctl.d/file_name.conf
ファイルが指定されていない場合、sysctl
/etc/sysctl.conf
を読み取ります ファイル。
結論#
sysctl
コマンドを使用すると、Linuxカーネルパラメータを表示および変更できます。
ご不明な点がございましたら、お気軽にコメントをお寄せください。