Nginx高并发调优实战(手把手带提升10倍性能)

Nginx是大型架构核心,下面我详解Nginx高并发调优实战@mikechen

 worker_processes
控制Nginx启动多少个Worker进程。

配置:

worker_processes 4;

例如:

服务器:

CPU 4核

配置:

worker_processes 4;

启动:

Master

Worker1
Worker2
Worker3
Worker4

每个Worker绑定一个CPU核心。

推荐配置
生产环境通常设置:

worker_processes auto;

例如:

8核服务器:

worker_processes auto;

自动启动:

8个Worker

 worker_connections

表示:

每个Worker最大处理连接数

配置:

events {

    worker_connections 10240;

}

例如:

worker_processes = 8

worker_connections = 10240

理论最大连接:

8 × 10240

= 81920连接

Linux文件句柄优化
Nginx高并发必须突破Linux默认限制。

查看:

ulimit -n

默认:

1024

意味着:

一个进程最多打开:

1024个文件

高并发环境明显不足。

修改Linux限制
编辑:

vim /etc/security/limits.conf

增加:

* soft nofile 65535

* hard nofile 65535


 sendfile
默认方式
普通文件发送:

磁盘
 |
read()
 |
用户空间
 |
write()
 |
内核空间
 |
网卡

存在:

多次数据复制

开启sendfile:

sendfile on;

变成:

磁盘
 |
内核空间
 |
网卡

减少:

  • CPU消耗
  • 数据复制次数

特别适合:

  • 图片
  • 视频
  • 静态文件

评论交流
    说说你的看法