Linux内核参数

Linux内核参数

Linux内核参数配置可以帮助管理员更精细地调节系统性能、安全性和行为。以下是一些主要参数的详细配置示例和解释。

引导参数(Boot Parameters)

这些参数在引导时通过引导加载器(如GRUB)传递给内核。

  1. root=/dev/sha1:
    • 指定根文件系统的位置。
    • 例如:GRUB_CMDLINE_LINUX=“root=/dev/sda1”
  2. init=/sbin/init:
    • 指定初始进程。
    • 例如:GRUB_CMDLINE_LINUX=“init=/sbin/init”
  3. Quiet:
    • 减少引导时的消息输出。
    • 例如:GRUB_CMDLINE_LINUX=“quiet”
  4. ro和rw:
    • 指定根文件系统只读(ro)或读写(rw)。
    • 例如:GRUB_CMDLINE_LINUX=“ro”
  5. mem=2G:
    • 限制内存使用。
    • 例如:GRUB_CMDLINE_LINUX=“mem=2G”

内存管理(Memory Management)

通过/proc文件系统或sysctl命令配置。

  1. swappiness:
    • 控制交换分区的使用频率。值越高,系统越倾向于使用交换分区。
    • 例如:echo 10 > /proc/sys/vm/swappiness或sysctl -w vm.swappiness=10
  2. dirty_ratio:
    • 指定系统内存中的脏数据(尚未写入磁盘的数据)的最大百分比。
    • 例如:echo 15 > /proc/sys/vm/dirty_ratio或sysctl -w vm.dirty_ratio=15
  3. overcommit_memory:
    • 配置内存过度提交的行为。0:启发式;1:允许;2:严格检查。
    • 例如:echo 2 > /proc/sys/vm/overcommit_memory或sysctl -w overcommit_memory=2

网络参数(Networking)

通过sysctl配置,影响网络堆栈的行为。

  1. ip_forward:
    • 启用或禁用IP转发。
    • 例如:echo 1 > /proc/sys/net/ipv4/ip_forward或sysctl -w net.ipv4.ip_forward=1
  2. tcp_fin_timeout:
    • 指定TCP连接在收到FIN报文后保持的时间。
    • 例如:echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout或sysctl -w net.ipv4.tcp_fin_timeout=30
  3. tcp_tw_reuse:
    • 允许TIME-WAIT套接字的重用。
    • 例如:echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse或sysctl -w net.ipv4.tcp_tw_reuse=1

文件系统参数(File System)

影响文件系统的操作和性能。

  1. file-max:
    • 系统可以打开的最大文件数:
    • 例如:echo 100000 > /proc/sys/fs/file-max或sysctl -w fs.file-max=100000
  2. Inotify.max_user_watches:
    • 单个用户可以创建的最大inotify监视器数。
    • 例如:echo 8192 > /proc/sys/fs/inotify/max_user_watches或sysctl -w fs.inotify.max_user_watches=8192

进程管理(Process Management)

影响进程调度和管理。

  1. Threads-max:
    • 系统中允许的最大线程数。
    • 例如:echo 64000 > /proc/sys/kernel/threads-max或sysctl -w kernel.threads-max=64000
  2. Pid_max:
    • 系统中进程ID的最大值。
    • 例如 echo 32768 > /proc/sys/kernel/pid_max或sysctl -w kernel.pid_max=32768
  3. sched_child_runs_first:
    • 子进程是否在父进程之前运行。
    • 例如:echo 1 > /proc/sys/kernel/sched_child_runs_first或sysctl -w kernel.sched_child_runs_first=1

安全参数(Security)

影响系统的安全性配置

  1. randomize_va_space:
    • 地址空间布局随机化(ASLR)设置。0:关闭;1:部分启用;2:完全启用。
    • 例如:echo 2 > /proc/sys/kernel/randomize_va_space 或sysctl -w kernel.randomize_va_space=2
  2. Sysrq:
    • 启用或禁用系统请求(SysRq)健。
    • 例如:echo 1 > /proc/sys/kernel/sysrq或sysctl -w kernel.sysrq=1

调优和调试(Tuning and Debugging)

用于系统调优和调试。

  1. Printk:
    • 控制内核消息的日志级别。
    • 例如:echo “4 4 1 7” > /proc/sys/kernel/printk或sysctl -w kernel.printk=“4 4 1 7”
  2. Panic:
    • 系统在内核恐慌后重启的延迟时间。
    • 例如:echo 10 > /proc/sys/kernel/panic或sysctl -w kernel.panic=10

永久生效配置

要使参数永久生效,可以将它们添加到/etc/sysctl.conf文件中,例如:

# /etc/sysctl.conf
vm.swappiness=10
vm.dirty_ratio=15
vm.overcommit_memory=2
net.ipv4.ip_forward=1
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_tw_reuse=1
fs.file-max=100000
fs.inotify.max_user_watches=8192
kernel.threads-max=64000
kernel.pid_max=32768
kernel.sched_child_runs_first=1
kernel.randomize_va_sapce=2
kernel.sysrq=1
kernel.printk="4 4 1 7"
kernel.panic=10

然后使用sysctl -p命令应用这些更改:

sysctl -p

这会加载/etc/sysctl.conf文件中的所有配置,并应用到当前系统。

更多技术分享,关注公众号:halugin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值