Nginx学习(十) Nginx性能优化

socket通信方面:
1、增大nginx的work_connections

增加nginx每个工作进程的最大连接数
修改nginx.conf

events {
    worker_connections  1024;
}

2、增大系统内核参数somaxconn

这个参数定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为1024。
这个参数限制了接收新 TCP 连接侦听队列的大小。对于一个经常处理新连接的高负载 web服务环境来说,大多数环境这个值建议增加到 1024 或者更多。 服务进程会自己限制侦听队列的大小(例如 sendmail(8) 或者 Apache),常常在它们的配置文件中有设置队列大小的选项。大的侦听队列对防止拒绝服务 DoS 攻击也会有所帮助。

echo 50000 > /proc/sys/net/core/somaxconn 
sysctl -p

3、使系统tcp连接快速回收

表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭

echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

4、使系统tcp连接重用

表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭

echo 1 > /proc/sys/net/ipv4/tcp_tw_reuse

5、放弃洪水抵御

默认值是0
只 有在内核编译时选择了CONFIG_SYNCOOKIES时才会发生作用。当出现syn等候队列出现溢出时象对方发送syncookies。 目的是为了防止syn flood攻击。
注 意:该选项千万不能用于那些没有收到攻击的高负载服务器,如果在日志中出现synflood消息, 但是调查发现没有收到synflood攻击,而是合法用户的连接负载过高的原因,你应该调整其它参 数来提高服务器性能。

 echo 0 > /proc/sys/net/ipv4/tcp_syncookies

文件方面:
1、调整Nginx每个工作进程允许打开的文件数目
worker_limit_nofiles 1000;

#user  nobody;
worker_processes  1;
worker_rlimit_nofile 1000; 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

2、设置内可以打开最大文件描述符的数量。

ulimit -n 10240

另外在客户端多的高并发场景中,将nginx的keep-alive关掉能提高并发率,如果在少数固定客户端,长时间极高频次的访问服务器,启用keep-alive非常合适

    #keepalive_timeout  0;
    keepalive_timeout  65;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值