① /proc目录:
内核把自己内部状态信息及统计信息,以及可配置参数通过proc为文件系统加以输出
帮助: man proc
内核参数:
-
只读:只用于输出信息
-
可写:可接受用户指定“新值”来实现对内核某功能或特性的配置
② sysctl
sysctl 用于在运行时修改内核参数,可用参数是/proc/sys/下列出的参数。Linux中的sysctl支持需要Procfs,可以使用sysctl读取和写入sysctl数据。我们也可以直接编辑/etc/sysctl.conf文件将内核参数写入配置文件中,需要使用sysctl -p 命令重新加载配置文件使参数生效。常用此命令清理内存缓存、启停IP路由转发功能等。
③ 默认配置文件:/etc/sysctl.conf
/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf
④ 命令使用:
① 查看所有内核参数设置
② 查看某变量的值
③ 清理内存缓存
④ 临时设置参数
禁ping
测试:
⑤ 修改完配置文件之后 -p 生效
⑤ 选项:
参数 | 说明 |
-a | 显示所有变量 |
-b | 打印值 |
-e | 忽略未知变量错误 |
-p | 从文件中读取值 默认从/etc/sysctl.conf中读取 |
-w | 启用将值写入变量,临时修改,重启失效 |
-h | 显示帮助 |
⑥ 常用的内核参数:
net.ipv4.ip_forward
# 路由转发功能
net.ipv4.icmp_echo_ignore_all
#禁止ping
net.ipv4.ip_nonlocal_bind
#允许应用程序可以监听本地不存在的IP
vm.drop_caches
#清除缓存
fs.file-max = 1020000
#全局打开文件的最大数
vm.overcommit_memory = 0
#0表示内核将检查是否有足够可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则内存申请失败,并把错误返回给应用进程。
#1表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
#2表示内核允许分配超过所有物理内存和交换空间总和的内存。
vm.swappiness = 10
#什么时候允许使用swap 剩余百分之10 可以使用
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
#禁用IPv6