Linux服务器在对应用程序进行优化配置的时候,经常使用到sysctl和PAM两个模块对服务器进行优化。关于这两块的介绍也很多,这里主要集中了相关内容,并整体做了一个介绍。
sysctl内核参数配置
使用“sysctl -a”命令可以查看所有正在使用的内核参数。内核参数比较多(一般多达500项),按照前缀主要分为以下几大类:net.ipv4、net.ipv6、net.core、vm、fs、dev.parport、dev.cdrom 、dev.raid、kernel等等。
注:安装的组件和使用的方式不一样,正在使用的内核参数是不一样的。所有的内核参数的说明文档是放到linux-source-code\Documentation\sysctl中的,如果想知道对内核参数的说明,可以到该目录下查看相应的说明文档。
sysctl内核参数有两种修改方法
1) 命令设置的方式,对应内核运行配置参数2) 文件设置的方式,对应内核静态配置参数
sysctl内核动态系统参数配置
其参数保存的主要位置为/proc/sys使用“sysctl -w 参数名=值”的方式
例如:把net.ipv4.ip_forward的值修改为1,使用命令“sysctl -w net.ipv4.ip_forward=1”。
修改内核参数对应的proc文件
内核参数位于/proc/sys/之下,参数名称是以文件所在的路径,并将“/”以“.”来取代。举例来说,/proc/sys/net/ip_forward的参数名称为net.ipv4.ip_forward。
例如:把net.ipv4.ip_forward的值修改为1,使用命令“echo “1” > /proc/sys/net/ipv4/ip_forward”。
注意,这里proc文件跟普通的文件不一样。一般一个文件用echo写入内容之后,会变成一个文本文件,但echo修改proc文件之后还是个空文件。
sysctl内核静态系统参数配置
其参数保存的主要位置为/etc/sysctl.conf,针对整个系统参数配置。文件方式的好处是内核参数设置的值可以用文件保留下来。内核参数默认保存在/etc/sysctl.conf文件中。修改的时候可以直接用vi编辑sysctl.conf文件,增加要修改的内核参数内容,修改的格式为:参数名=值。
例如,把net.ipv4.ip_forward的值修改为1,在sysctl.conf中增加下面这行内容:
- net.ipv4.ip_forward=1
文件修改好后,进行保存。
使用“sysctl -p 配置文件名”来使配置生效
如果配置文件是默认的,可以不用输配置文件名,即使用“sysctl -p”。
系统重启,通过配置文件启动内核生效
之前认为修改后的内核参数放在文件中,系统启动的时候会读这个文件,重启后设置应该不会失效。但经过验证,一般会失效。需要把将默认的boot.sysctl服务打开,系统启动时就会执行这个文件的设置。或者把修改参数的命令“/sbin/sysctl -e -p /etc/sysctl.conf”写入启动执行脚本文件里/etc/rc.local,这样系统重启后配置就不会失效。
浙公网安备 33010602011771号