在学习nginx的时候,涉及到了几个系统内核参数,对nginx的性能有一定的影响。然后学习了一下怎么设置系统的内核参数,下面我们一起来看看怎么设置。
工具/原料
CentOS7.5
方法/步骤
1、今天的经验我们是以CentOS7.5这个linux发行版来讲解的。系统的内核参数涉及到的配置文件和命令分别是:1./etc/sysctl.conf文件2.syctl命令文件和命令的路径分别如下面图中所示:
2、我们咸犴孜稍先来看内核参数的查看,使用的是sysctl这个命令。使用的比较多的选项有5个,分别是:-a/-N/-n/-p-a是显示出当前系统上所有内核参剞麽苍足数-N后面加上内核参数名称,检查这个名称是否存在-n后面加上内核参数,输出这个内核参数的值-warg=valuearg表示内核参数,value表示设置值。给内核参数临时设置一个值-p和后面设置内核参数有关,我们稍后讲解。先来看-a这个选项,如下所示,会显示出系统上的所有内核参数和对应的值,因为比较长,所以我这里只截取了开始时的值,以及和nginx相关的net开头的网络设置变量。
3、看完了-a参数,我们再来看-N和-n这两个参数,这两个参数的用法上面我说到了。这里我们来撰颧幌汪验证一下。在讲解nginx的书籍上辔亿呶邂说,和它相关的两个内核参数是:net.core.netdev_max_backlognet.core.somaxconn我们来验证一下这两个参数,先看-N,如下面第一张图中所示:后面跟上对应的内核参数名后,如果内核参数存在,就会输出内核参数名称,如果内核参数不存在,则会输出没有对应文件的错误信息。第二张图中使用的是-n选项,直接输出内核参数对应的值。
4、在上面的图中我们看到两个内核参数对应的值是1000和128,而书上说,这两个内核参墙绅褡孛数的值比较小的话芟坳葩津,会影响到nginx的性能,因此需要调整为比较大的值。这个时候我们刚才说到的-w选项、配置文件和-p选项就要工作了。我们先看-w选项,这个选项是用来将内核参数临时设置为某个值。看下面图中的示例,我们将刚才说的两个参数的值从1000和128改成26144,如下面第一张图中所示,第一个参数net.core.netdev_max_backlog设置成功,第二个参数net.core.somaxconn设置的时候报错。然后使用sysctl-n命令查看时,发现只有第一个参数设置成功了。
5、再次尝试设置第二个参数net.core.somaxconn,这次将设置的值改小一点,设置成功。说明刚才书上介绍的那个值过大,不能设置。由此可见,书上说的知识不一定对,需要经过实际验证才行。
6、上面说到-w选项只是临时设置,当我们重启系统再重新登录时,会发现,对应的值全部失效了,如下面图中所示:
7、要想设置一直生效,就要用到/etc/sysctl.conf这个配置文件,直接将对应的设置写入到这个配置文件中,然后重新加载这个配置文件即可。这样配置就能一直生效。配置如下面第一张图中所示,然后使用命令:sysctl-p重新加载这个配置文件。重新加载后会显示修改的内核参数值,加载完成后,对应的内核参数就变成了修改后的值。如第二张图中所示: