nginx配置参数调优学习(一)

为了搞清nginx的配置参数对性能优化的影响,于是GO君拿起自己的“吾想问答网”开刀,准备好了测试脚本就开始压测,一边压测一边调整nginx参数以观察对性能的反应情况。

Worker_Connections

对Worker_Connections进行调整,nginx默认连接为51200,在对此参数适当调小后发现场景中出现了连接断开、连接超时、服务器内部错误等信息,网站无法访问且提示“500 Internal Server Error”,遂将上述参数修改为默认参数。

由上述调整可以看出Worker_Connections参数的调整一定程度上影响着网站的运行情况,如果值设置过小,便会出现以上情形,尤其是在跑场景中出现这些错误,当出现以上场景中的错误时,这个时候我们就可以考虑是不是Worker_Connections参数设置过小导致的

Worker_processes

第二次对Worker_processes参数进行调整,nginx默认为“auto”,于是将auto直接设置为10,结果并无提升,后将该值设置为1500,在重启nginx之后发现控制台无法访问网站无法访问SSH无法连接,这个时候GO君意识到事情不对劲了,所以就到网上查了查该参数,解释为该参数和CPU核心数有关,也就是说如果设置的值过大于CPU核心数,就会直接导致服务器彻底死掉,网上建议为:

nginx doesn’t benefit from more than one worker per CPU.

    一个cpu配置多于一个worker数,对nginx而言没有任何益处。

而且GO君的服务器只是一台轻量的服务器,CPU的核心数和上面设置的1500进程简直就是天差地别,造成服务器直接死掉也就理所当然了

既然已经没办法压测了就先把网站“救活”吧,一般来说如果SSH都无法连接就彻底没救了,好在云控制台有一招救命招数叫“救援连接”,靠着这个成功连接上了服务器,连接后发现整个界面操作起来已经变得非常的卡顿,输入一行命令等待回返消息都要几分钟,上一张图感受一下

整个操作界面已经被卡顿显示的不正常了,那也没办法了,毕竟这是唯一的救回方式了,只能慢慢的继续操作了,找到nginx.conf配置文件,将Worker_Connections参数由之前的1500改为2,保存退出,重启nginx后网站得以复活(明天又可以对nginx的其他参数愉快的折腾了!)

总结:1、通过这次的实战调优,可以看出nginx中每个参数都会对系统起着至关重要的作用,如果不是自己的网站的话千万不要随便取做调整,否则结果就可能会像上面发生的这样了

            2、云平台的优势也非常好的体现出来,如果不是云平台的救命招数,GO君的这个网站就凉凉了(虽说这个网站并无什么价值- -)