sysctl, /etc/sysctl.conf カーネルパラメーターの設定

/ LPIC / Comment[0]
Linuxカーネルパラメータのデフォルト値は/proc/sys以下の仮想ファイルに記されている。
これを編集することにより一時的にカーネルパラメータを変更することが出来るが再起動すると元に戻ってしまう。
再起動後も適応させるためには/etc/sysctl.confにパラメータ値を書き込む。

findコマンドでカーネルパラメータの一覧を取得


$ find /proc/sys -type f
/proc/sys/abi/ldt16
/proc/sys/abi/vsyscall32
/proc/sys/debug/exception-trace
/proc/sys/debug/kprobes-optimization
/proc/sys/dev/cdrom/autoclose
/proc/sys/dev/cdrom/autoeject
/proc/sys/dev/cdrom/check_media
/proc/sys/dev/cdrom/debug
/proc/sys/dev/cdrom/info
/proc/sys/dev/cdrom/lock
/proc/sys/dev/hpet/max-user-freq
/proc/sys/dev/mac_hid/mouse_button2_keycode
/proc/sys/dev/mac_hid/mouse_button3_keycode
/proc/sys/dev/mac_hid/mouse_button_emulation
/proc/sys/dev/parport/default/spintime
/proc/sys/dev/parport/default/timeslice
/proc/sys/dev/raid/speed_limit_max
/proc/sys/dev/raid/speed_limit_min
/proc/sys/dev/scsi/logging_level
/proc/sys/fs/aio-max-nr
/proc/sys/fs/aio-nr
/proc/sys/fs/dentry-state
/proc/sys/fs/dir-notify-enable
/proc/sys/fs/epoll/max_user_watches
/proc/sys/fs/file-max
/proc/sys/fs/file-nr
/proc/sys/fs/inode-nr
/proc/sys/fs/inode-state
/proc/sys/fs/inotify/max_queued_events
/proc/sys/fs/inotify/max_user_instances
/proc/sys/fs/inotify/max_user_watches
/proc/sys/fs/lease-break-time
/proc/sys/fs/leases-enable
/proc/sys/fs/mqueue/msg_default
/proc/sys/fs/mqueue/msg_max
/proc/sys/fs/mqueue/msgsize_default
/proc/sys/fs/mqueue/msgsize_max
/proc/sys/fs/mqueue/queues_max
/proc/sys/fs/nr_open
/proc/sys/fs/overflowgid
/proc/sys/fs/overflowuid
/proc/sys/fs/pipe-max-size
/proc/sys/fs/protected_hardlinks
/proc/sys/fs/protected_symlinks
/proc/sys/fs/quota/allocated_dquots
/proc/sys/fs/quota/cache_hits
/proc/sys/fs/quota/drops
/proc/sys/fs/quota/free_dquots
/proc/sys/fs/quota/lookups
/proc/sys/fs/quota/reads
/proc/sys/fs/quota/syncs
/proc/sys/fs/quota/writes
/proc/sys/fs/suid_dumpable
/proc/sys/kernel/acct
/proc/sys/kernel/acpi_video_flags
/proc/sys/kernel/auto_msgmni
/proc/sys/kernel/blk_iopoll
/proc/sys/kernel/bootloader_type
/proc/sys/kernel/bootloader_version
/proc/sys/kernel/cad_pid
/proc/sys/kernel/cap_last_cap
/proc/sys/kernel/compat-log
/proc/sys/kernel/core_pattern
:


sysctlコマンドでカーネルパラメータの一覧と値を取得


# sysctl -a
kernel.sg-big-buff = 32768
kernel.shm_next_id = -1
kernel.shm_rmid_forced = 0
kernel.shmall = 2097152
kernel.shmmax = 33554432
kernel.shmmni = 4096
kernel.softlockup_panic = 0
kernel.stack_tracer_enabled = 0
kernel.sysrq = 1
kernel.tainted = 0
kernel.threads-max = 15323
kernel.timer_migration = 1
kernel.traceoff_on_warning = 0
kernel.unknown_nmi_panic = 0
kernel.usermodehelper.bset = 4294967295 4294967295
kernel.usermodehelper.inheritable = 4294967295 4294967295
kernel.version = #45~precise1-Ubuntu SMP Tue Jul 15 04:02:35 UTC 2014
kernel.watchdog = 1
kernel.watchdog_thresh = 10
kernel.yama.ptrace_scope = 1
net.core.bpf_jit_enable = 0
net.core.busy_poll = 0
net.core.busy_read = 0
:


sysctlコマンドによるパラメーターの変更


フルパスの/proc/sys/を取り払い「/」を「.」に変えたものと捉えると分かりやすい。
(/proc/sys/net/ipv4/ip_forward → net.ipv4.ip_forward)
# sysctl -w net.ipv4.ip_forward=1


echoのリダイレクトでカーネルパラメータの変更も可能


# echo 1 > /proc/sys/net/ipv4/ip_forward
# cat /proc/sys/net/ipv4/ip_forward
1



/etc/sysctl.confの書式


sysctlコマンドで指定するものと同じものを書けばおk
/etc/sysctl.conf
net.ipv4.ip_forward=1
net.ipv4.icmp_echo_ignore_broadcast=0


/etc/sysctl.confを適応


# sysctl -p
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可