カーネルパラメータの表示と変更
最終更新日:2020/11/18 | 公開日:2011/03/30
目次
概要
カーネルパラメータとして設定されている値を表示する方法と、 カーネルパラメータの値を必要に応じて変更する方法を紹介します。
カーネルパラメータの表示
全てのカーネルパラメータを表示
利用可能な全てのカーネルパラメータを表示します。
# sysctl -a sunrpc.max_resvport = 1023 sunrpc.min_resvport = 665 sunrpc.tcp_slot_table_entries = 16 sunrpc.udp_slot_table_entries = 16 sunrpc.nlm_debug = 0 sunrpc.nfsd_debug = 0 sunrpc.nfs_debug = 0 sunrpc.rpc_debug = 0 crypto.fips_enabled = 0 abi.vsyscall32 = 1 (中略) fs.leases-enable = 1 fs.overflowgid = 65534 fs.overflowuid = 65534 fs.dentry-state = 35950 33401 45 0 0 0 fs.nr_open = 1048576 fs.file-max = 100990 fs.file-nr = 3570 0 100990 fs.inode-state = 27734 213 0 0 0 0 0 fs.inode-nr = 27734 213 fs.binfmt_misc.status = enabled
特定のカーネルパラメータを表示
引数で指定した特定のカーネルパラメータを表示します。 以下の例ではnet.ipv4.ip_forwardの値を表示しています。
# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 0
カーネルパラメータの変更
一時的なカーネルパラメータの変更
sysctlコマンドでカーネルパラメータを変更します。 変更は即座に反映されます。 ただし、Linuxを再起動すると変更した内容が元に戻ってしまいます。 以下の例ではnet.ipv4.ip_forwardの値を1に変更しています。
# sysctl net.ipv4.ip_forward=1 net.ipv4.ip_forward = 1
恒久的なカーネルパラメータの変更
/etc/sysctl.confファイルに変更したいパラメータを記述しておきます。 Linux起動時にこの設定が読み込まれて設定されます。 即座に設定を反映させる場合には、sysctlコマンドを使って反映させます。 以下の例ではnet.ipv4.ip_forwardの値を1に変更しています。
# vi /etc/sysctl.conf
ファイル名: /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.
# Controls IP packet forwarding
net.ipv4.ip_forward = 1 ←この行を0から1に変更
# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536
# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536
# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736
# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296
「sysctl -p」コマンドでは引数として設定ファイルのファイル名を指定します。 省略すると「/etc/sysctl.conf」が読み込まれるので、 「sysctl -p /etc/sysctl.conf」が実行されたのと同じ意味になります。
# sysctl -p
net.ipv4.ip_forward = 1 ←ここで変更が反映された
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
設定ファイルにない値を変更する場合は、「/etc/sysctl.conf」ファイルに新たにパラメータを追加してください。 追加する場所はどの行でも良いですが、ファイルの先頭に「#」を付けるとコメント行として認識され、 設定に反映されません。