nginx配置参数优化/linux内核网络模块优化

Nginx配置参数优化

Nginx作为高性能web服务器,即使不特意调整配置参数也可以处理大量的并发请求

1.针对worker进程的优化

worker_processes:该参数表示启动几个工作进程,建议和本机CPU核数保持一致,每一核CPU处理一个进程

worker_rlimit_nofile:它表示Nginx最大可用的文件描述符个数,需要配合系统的最大描述符,建议设置为102400,还需要在系统里执行ulimit -n 102400才可以(临时生效),也可以直接修改配置文件/etc/security/limits.conf使其永久生效
添加:
* soft nofile 102400
* hard nofile 102400

worker_connections:该参数用来配置每个Nginx worker进程最大处理的连接数,这个参数也决定了该Nginx服务器最多能处理多少客户端请求(worker_processes * worker_connections),建议把该参数设置为10240,不建议太大

2.针对http和tcp的优化

use epoll:使用epoll模式的事件驱动模型,该模型为Linux系统下最优方式

multi_accept on:使每个worker进程可以同时处理多个客户端请求

sendfile on:使用内核的FD文件传输功能,可以减少user mode和kernel mode的切换,从而提升服务器性能

tcp_nopush on:当tcp_nopush设置为on时,会调用tcp_cork方法进行数据传输,使用该方法会产生这样的效果:当应用程序产生数据时,内核不会立马封装包,而是当数据量积累到一定量时才会封装,然后传输

tcp_nodelay on:不缓存data-sends(关闭 Nagle 算法),这个能够提高高频发送小数据报文的实时性
关于Nagle算法:
假如需要频繁的发送一些小包数据,比如说1个字节,以IPv4为例的话,则每个包都要附带40字节的头,也就是说,总计41个字节的数据里,其中只有1个字节是我们需要的数据。为了解决这个问题,出现了Nagle算法,它规定:如果包的大小满足MSS,那么可以立即发送,否则数据会被放到缓冲区,等到已经发送的包被确认了之后才能继续发送,通过这样的规定,可以降低网络里小包的数量,从而提升网络性能

keepalive_timeout:定义长连接的超时时间,建议30s,太短或者太长都不一定合适,当然,最好是根据业务自身的情况来动态地调整该参数

keepalive_requests:定义当客户端和服务端处于长连接的情况下,每个客户端最多可以请求多少次,可以设置很大,比如50000

reset_timeout_connection on:设置为on的话,当客户端不再向服务端发送请

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值