Linux系统:内核参数调优

本文围绕Linux系统展开,介绍了/proc目录,它可让用户访问内核和进程信息,还能配置内核参数。sysctl命令能在运行时动态修改内核参数。同时列举了常见内核参数优化项,如控制源路由验证等。最后针对Nginx,给出了优化内核参数以支持更多并发请求的简单配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、/proc目录

2、sysctl命令

3.1 控制源路由验证

3.2  控制内核的系统请求调试功能

3.3  控制核心转储是否将PID附加到核心文件名

3.4 控制TCP同步cookie的使用

3.5  在网桥上禁用netfilter

3.6  控制消息队列的默认最大大小 

3.7  调试TCP内核参数

3.8  调试套接字缓冲区

3.9 调试与TCP连接管理相关

3.10 TCP连接重用 

3.11  TCP连接保活(Keepalive)和本地端口范围

3.12 swap分区 

4、优化内核参数(nginx)


1、/proc目录

  • /proc目录是一个特殊的虚拟文件系统,它不包含常规的文件,而是包含当前运行中的内核和进程信息
  • 这个目录允许用户和程序访问系统内核的很多信息,比如CPU、内存、进程等。在/proc目录下,每个数字命名的子目录代表一个正在运行的进程,其中包含了该进程的相关信息,比如进程ID、状态、内存使用情况等
  • 此外,/proc还提供了一些用于配置内核参数的接口,允许用户动态地修改内核的某些行为

2、sysctl命令

sysctl命令用于在运行时动态地修改内核参数,而无需重新启动系统。这个命令允许用户检索、设置和修改内核的运行时参数。通过sysctl,可以查看当前系统的各种内核参数设置,并且可以进行修改

相关配置文件 说明
/etc/sysctl.conf 默认配置文件
/run/sysctl.d/*.conf 这个目录包含了在系统引导过程中自动生成的临时文件,通常用于覆盖其他位置的配置
/etc/sysctl.d/*.conf 在这个目录下,用户可以创建自定义的配置文件,每个文件包含一个或多个对内核参数的设置。这些设置会在系统启动时被加载
/usr/local/lib/sysctl.d/*.conf 该目录用于存放本地安装的软件所提供的sysctl配置文件
/usr/lib/sysctl.d/*.conf 这个目录包含由软件包提供的sysctl配置文件
/lib/sysctl.d/*.conf 这个目录包含由操作系统提供的sysctl配置文件,通常由发行版的维护者管理

sysctl命令用法:

(1)查看参数

sysctl -a   #列出所有的内核参数及其当前值

[root@localhost ~]#sysctl -a | grep ip_forward

 (2)查看特定参数

sysctl kernel.parameter_name    #查看特定参数的值
[root@localhost ~]#sysctl net.ipv4.ip_forward

 (3)临时修改参数值

sysctl -w parameter_name=new_value     #临时修改参数的值,但重启后会恢复为默认值

(4)永久修改参数值:

通过修改/etc/sysctl.conf文件来实现永久修改参数的值,然后使用sysctl -p命令使更改生效

(5)刷新配置文件

sysctl -p     #刷新配置文件

3、常见的内核参数优化

3.1 控制源路由验证

#Controls source route verification     控制源路由验证
net.ipv4.conf.default.rp_filter = 1
#这个参数设置的是反向路径过滤(Reverse Path Filtering,RPFilter)的策略。当rp_filter为1时,Linux内核会检查入站数据包的源IP地址是否与到达接口的路由表条目相匹配。如果源IP地址无法通过到达接口回溯到发送端,则数据包会被丢弃。启用此选项有助于防止IP地址欺骗攻击。

net.ipv4.ip_nonlocal_bind = 1
#这个参数允许或禁止非本地地址绑定到套接字。当ip_nonlocal_bind设置为1时,任何用户都可以将一个非本地IP地址(即不在本机接口上的IP地址)绑定到一个socket上。在某些场景下,例如负载均衡器或者需要绑定任意IP的代理服务器,可能需要开启这个选项。

net.ipv4.ip_forward = 1
#这个参数控制系统的IP转发功能。当ip_forward设置为1时,Linux内核将允许数据包在网络接口之间进行转发,这使得该主机可以作为路由器使用,允许其他设备通过它来传输数据包。这对于构建NAT环境、路由器和代理服务器等应用场景是必要的。关闭此选项则意味着主机仅处理发送给自身的数据包,不允许其成为网络中其他设备之间的通信桥梁。

#Do not accept source routing   不接受源路由
net.ipv4.conf.default.accept_source_route = 0
#这个设置禁止了IPv4协议栈接受源路由数据包。源路由允许数据包指定其在网络中传输的具体路径。由于这可能导致安全风险ÿ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值