/proc/sys/kernel 、 /proc/sys 、 /sys

发布时间 2023-08-04 10:30:17作者: 武平宁

在Linux系统中,/proc/sys/kernel目录下的文件是用来配置内核参数的。下面是一些常见的文件及其作用:

core_pattern:指定生成core文件的模式。
core_uses_pid:指定是否在core文件名中包含进程ID。
ctrl-alt-del:指定按下Ctrl+Alt+Del时系统的行为。
dmesg_restrict:指定是否限制非特权用户访问dmesg命令。
domainname:指定系统的域名。
hostname:指定系统的主机名。
hotplug:指定是否启用热插拔功能。
max_lock_depth:指定最大的自旋锁嵌套深度。
msgmax:指定消息队列中单个消息的最大大小。
msgmnb:指定消息队列的最大字节数。
msgmni:指定系统中消息队列的最大数量。
msgseg:指定每个消息队列中的最大消息数。
panic:指定系统发生严重错误时的行为。
panic_on_oops:指定是否在内核oops发生时触发系统崩溃。
panic_on_warn:指定是否在内核警告发生时触发系统崩溃。
pid_max:指定系统中进程ID的最大值。
printk_ratelimit:指定内核打印消息的速率限制。
printk_ratelimit_burst:指定内核打印消息的速率限制突发值。
randomize_va_space:指定是否启用地址空间随机化。
real-root-dev:指定根文件系统的设备号。
sched_rr_timeslice_ms:指定实时进程的时间片大小。
sem:用于配置系统中的信号量。
shmall:指定系统中共享内存段的最大大小。
shmmni:指定系统中共享内存段的最大数量。
shmmax:指定单个共享内存段的最大大小。
shmmin:指定单个共享内存段的最小大小。
shmmni:指定系统中共享内存段的最大数量。
sysrq:指定是否启用SysRq键。
threads-max:指定系统中线程的最大数量。
yama/ptrace_scope:指定是否限制非特权用户对ptrace系统调用的访问。

这些文件中的值可以通过修改文件内容来改变内核的行为。需要注意的是,修改这些文件可能会对系统的稳定性和安全性产生影响,因此在修改之前应该谨慎考虑,并确保了解修改的后果。

实际的值

acct:4 2 30
acpi_video_flags:0
auto_msgmni:0
bootloader_type:114
bootloader_version:2
grep: cad_pid: Permission denied
cap_last_cap:37
core_pattern:core
core_pipe_limit:0
core_uses_pid:1
ctrl-alt-del:0
dmesg_restrict:0
domainname:(none)
ftrace_dump_on_oops:0
ftrace_enabled:1
hardlockup_all_cpu_backtrace:0
hardlockup_panic:0
hostname:ip-11-0-206-62.eu-central-1.compute.internal
hotplug:/sbin/hotplug
hung_task_check_count:4194304
hung_task_panic:0
hung_task_timeout_secs:120
hung_task_warnings:10
io_delay_type:0
kexec_load_disabled:0
grep: keys: Is a directory
kptr_restrict:1
latencytop:0
max_lock_depth:1024
modprobe:/sbin/modprobe
modules_disabled:0
msgmax:8192
msgmnb:16384
msgmni:32000
msg_next_id:-1
ngroups_max:65536
nmi_watchdog:0
ns_last_pid:31685
numa_balancing:0
numa_balancing_scan_delay_ms:1000
numa_balancing_scan_period_max_ms:60000
numa_balancing_scan_period_min_ms:1000
numa_balancing_scan_size_mb:256
osrelease:4.14.243-185.433.amzn2.x86_64
ostype:Linux
overflowgid:65534
overflowuid:65534
panic:30
panic_on_io_nmi:0
panic_on_oops:0
panic_on_rcu_stall:0
panic_on_stackoverflow:0
panic_on_unrecovered_nmi:0
panic_on_warn:0
perf_cpu_time_max_percent:25
perf_event_max_contexts_per_stack:8
perf_event_max_sample_rate:100000
perf_event_max_stack:127
perf_event_mlock_kb:516
perf_event_paranoid:2
pid_max:32768
poweroff_cmd:/sbin/poweroff
print-fatal-signals:0
printk:8 4 1 7
printk_delay:0
printk_devkmsg:ratelimit
printk_ratelimit:5
printk_ratelimit_burst:10
randomize_va_space:2
real-root-dev:0
sched_autogroup_enabled:0
sched_cfs_bandwidth_slice_us:5000
sched_child_runs_first:0
grep: sched_domain: Is a directory
sched_latency_ns:18000000
sched_migration_cost_ns:500000
sched_min_granularity_ns:2250000
sched_nr_migrate:32
sched_rr_timeslice_ms:100
sched_rt_period_us:1000000
sched_rt_runtime_us:950000
sched_schedstats:0
sched_time_avg_ms:1000
sched_tunable_scaling:1
sched_wakeup_granularity_ns:3000000
grep: seccomp: Is a directory
sem:32000 1024000000 500 32000
sem_next_id:-1
shmall:18446744073692774399
shmmax:18446744073692774399
shmmni:4096
shm_next_id:-1
shm_rmid_forced:0
softlockup_all_cpu_backtrace:0
softlockup_panic:0
soft_watchdog:1
stack_tracer_enabled:0
sysctl_writes_strict:1
sysrq:16
tainted:0
threads-max:125784
timer_migration:1
traceoff_on_warning:0
tracepoint_printk:0
unknown_nmi_panic:0
unprivileged_bpf_disabled:0
grep: usermodehelper: Is a directory
version:#1 SMP Mon Aug 9 05:55:52 UTC 2021
watchdog:1
watchdog_cpumask:0-3
watchdog_thresh:10

/proc/sys/ 目录说明

/proc/sys/ 目录是一个虚拟文件系统,用于在运行时访问和修改内核参数。它包含了一系列子目录和文件,每个子目录和文件都对应着一个特定的内核参数。

以下是一些比较重要的文件和子目录:

  • /proc/sys/kernel/:包含了一些与内核相关的参数,如core_pattern(生成core文件的模式)、core_uses_pid(是否在core文件名中包含进程ID)、panic(系统发生严重错误时的行为)等。

  • /proc/sys/net/:包含了一些与网络相关的参数,如ipv4/ipv6/icmp等。

  • /proc/sys/vm/:包含了一些与虚拟内存管理相关的参数,如swappiness(内存交换的倾向性)、dirty_ratio(脏页的比例)等。

  • /proc/sys/fs/:包含了一些与文件系统相关的参数,如file-max(系统中打开文件的最大数量)、inode-nr(系统中inode的数量)等。

  • /proc/sys/dev/:包含了一些与设备相关的参数,如rtc/max-user-freq(实时时钟的最大用户频率)等。

/proc/sys/ 目录 与 /sys 目录的区别和联系

区别:

  • 内容不同:/proc/sys/ 目录包含了一系列子目录和文件,每个子目录和文件对应着一个特定的内核参数。而 /sys 目录是一个设备树,包含了系统中的设备和设备驱动程序的信息。

  • 文件类型不同:/proc/sys/ 目录中的文件通常是普通文件,可以通过修改文件内容来改变内核的行为。而 /sys 目录中的文件通常是特殊文件,用于与设备驱动程序进行交互,如读取设备状态、设置设备属性等。

联系:

  • 都是虚拟文件系统:/proc/sys/ 目录和 /sys 目录都是虚拟文件系统,它们提供了一种统一的接口,用于在运行时访问和修改内核参数。

  • 都用于访问和修改内核参数:/proc/sys/ 目录和 /sys 目录都提供了一种机制,用于在运行时访问和修改内核参数。通过修改这些文件的内容,可以改变内核的行为,如调整网络参数、虚拟内存管理参数等。

/sys 介绍

在 Linux 系统中,/sys 目录是一个虚拟的文件系统,它提供了对内核和设备的访问和管理。/sys 目录中的文件和目录是内核和设备的映射,它们可以用来查询和配置系统的各种属性和状态。

以下是一些常见的 /sys 目录下的文件和目录:

  • /sys/devices: 这个目录包含了系统中所有的设备。每个设备都有一个对应的目录,可以在这些目录中找到设备的各种属性和配置信息。

  • /sys/class: 这个目录包含了设备的分类目录。每个设备类别都有一个对应的目录,可以在这些目录中找到该类别下设备的信息。

  • /sys/bus: 这个目录包含了总线类型的目录,例如 PCI、USB 等。每个总线类型都有一个对应的目录,可以在这些目录中找到该总线上的设备信息。

  • /sys/kernel: 这个目录包含了内核的一些属性和参数。例如,可以在/sys/kernel/hostname 文件中查看和修改系统的主机名。

  • /sys/module: 这个目录包含了加载的内核模块的信息。每个已加载的模块都有一个对应的目录,可以在这些目录中找到模块的参数和状态信息。

  • /sys/power: 这个目录包含了系统的电源管理相关的信息。例如,可以在/sys/power/state 文件中设置系统的电源状态。

  • /sys/block: 这个目录包含了块设备的信息。每个块设备都有一个对应的目录,可以在这些目录中找到设备的分区信息和其他属性。

  • /sys/class/net: 这个目录包含了网络设备的信息。每个网络设备都有一个对应的目录,可以在这些目录中找到设备的网络配置和状态信息。