内核参数优化和内核编译安装
/proc目录:内核把自己内部状态信息及统计信息,以及可配置参数通过proc伪文件系统加以输出
帮助:man proc
内核参数:
- 只读:只用于输出信息
- 可写:可接受用户指定“新值”来实现对内核某功能或特性的配置
/proc/sys 设置
- echo命令通过重定向方式也可以修改大多数参数的值
echo "VALUE" > /proc/sys/path/to/parameter
范例:
echo “websrv” > /proc/sys/kernel/hostname
[root@CentOS8 ~]# du -sh /proc/
du: cannot access '/proc/1345/task/1345/fd/4': No such file or directory
du: cannot access '/proc/1345/task/1345/fdinfo/4': No such file or directory
du: cannot access '/proc/1345/fd/3': No such file or directory
du: cannot access '/proc/1345/fdinfo/3': No such file or directory
0 /proc/ #是虚拟的不占硬盘空间 ,1345代表进程
[root@CentOS8 ~]# ls /proc/sys/ #/proc/sys/目录下对内核进行参数优化
abi crypto debug dev fs kernel net user vm
[root@CentOS8 ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@CentOS8 ~]# vim /proc/sys/net/ipv4/ip_forward #/proc/目录下的文件不能用vi,vim,nano文件编辑工具修改内容
[root@CentOS8 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward #想要修改可以通过标准输出重定向修改
[root@CentOS8 ~]# cat /proc/sys/net/ipv4/ip_forward
1
- sysctl命令用于查看或设定此目录中诸多参数
sysctl -w path.to.parameter=VALUE
范例:
sysctl -w kernel.hostname=mail.magedu.com
[root@CentOS8 ~]# sysctl -w net.ipv4.ip_forward=0 #用sysctl -w 修改把原来的"/"变成".""
net.ipv4.ip_forward = 0
[root@CentOS8 ~]# cat /proc/sys/net/ipv4/ip_forward
0
[root@CentOS8 ~]# sysctl -a #查看/proc/目录下的所有生效参数的值
abi.vsyscall32 = 1
crypto.fips_enabled = 0
debug.exception-trace = 1
debug.kprobes-optimization = 1
dev.cdrom.autoclose = 1
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
#......中间内容较多,此处省略中间内容
vm.overcommit_ratio = 50
vm.page-cluster = 3
vm.panic_on_oom = 0
vm.percpu_pagelist_fraction = 0
vm.stat_interval = 1
vm.swappiness = 30
vm.user_reserve_kbytes = 61457
vm.vfs_cache_pressure = 100
vm.watermark_scale_factor = 10
vm.zone_reclaim_mode = 0
sysctl命令:默认配置文件:/etc/sysctl.conf #要想修改永久修改/proc/目录下的所有进程参数就要修改/ect/sysctl.conf配置文件
(1) 临时设置某参数
sysctl -w parameter=VALUE
(2) 通过读取配置文件设置参数
sysctl -p [/path/to/conf_file]
(3) 查看所有生效参数
sysctl -a
常用的内核参数
net.ipv4.ip_forward #
net.ipv4.icmp_echo_ignore_all #禁ping
vm.drop_caches #清理缓存
fs.file-max = 102000 #打开文件的个数
[root@CentOS8 ~]# sysctl -a |grep fs.file
fs.file-max = 196506 #打开文件的最大个数
fs.file-nr = 1632 0 196506
fs.xfs.filestream_centisecs = 3000
[root@CentOS8 ~]# man proc #查询proc的man帮助
No manual entry for proc
[root@CentOS8 ~]