OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2011/03/30

Linuxサーバ管理

カーネルパラメータの表示と変更

トップページLinuxサーバ管理 > カーネルパラメータの表示と変更
このエントリーをはてなブックマークに追加

概要

 カーネルパラメータとして設定されている値を表示する方法と、 カーネルパラメータの値を必要に応じて変更する方法を紹介します。

カーネルパラメータの表示

全てのカーネルパラメータを表示

 利用可能な全てのカーネルパラメータを表示します。

# 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」ファイルに新たにパラメータを追加してください。 追加する場所はどの行でも良いですが、ファイルの先頭に「#」を付けるとコメント行として認識され、 設定に反映されません。

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会

■■■ 当サイトは Internet Explorer 11 と Mozilla Firefox 43 で動作確認済みです。 ■■■