保存成功
保存失败,请重试
提交成功

从 Nginx 性能调优说起,聊聊高性能服务器设计的关键原则

作者/分享人:暖和狐狸
现某上市公司系统架构师/产品经理,有丰富的系统设计、开发和调优的经验,致力于DPDK、CICD、高性能服务端开发等领域。喜欢研究优秀的开源代码,喜欢构建和优化较大规模的互联网应用系统。深入研究过包括DPDK、VPP、F-Stack、k8s、Docker、Harbor、Etcd、Redis、Nginx、Wrk、Hurricane等等。

根据 Netcraft 公布的最新的(2019年10月)Web 服务器调查报告,Nginx 的市场份额达到了 32.69%,毫无争议地成为了最流行的 Web 服务器。这主要得益于 Nginx 在性能、稳定性和可扩展等方面优异的表现。

Nginx 以高性能著称,为什么 Nginx 的性能这么高呢?要回答这个问题,得先从 Nginx 的进程模型说起。Nginx 是多进程的,简单来说,Nginx 包含两种进程:Master 和 Worker 。Master 进程是管理进程,负责控制和监控 Worker 进程:接收命令,切割日志文件,停止、重新启动 Worker 进程;监控 Worker 进程,如果发现 Worker 进程异常退出,就重新启动(respawn)一个新的 Worker 进程。Worker 进程是工作进程,负责处理客户端请求。Worker 进程可以有多个,Worker 进程之间是独立且对等的,分别竞争(epoll_wait)处理请求(这种竞争有可能发生惊群效应)。Nginx 使用了 I/O 多路复用技术,也就是说,一个 Worker 也可以同时处理成千上万个请求。

官方测试,Nginx 单机使用 8 个核可以支撑起百万并发。于是你兴致勃勃地安装了 Nginx,测试一看 Nginx 的 RPS 最高到十几万,再增加核心就没啥作用了,增加的多了反而下降了。

说好的百万并发呢?当然首先要说明的是: 十几万 RPS 已经很高了,要是我的产品能达到十几万 RPS,做梦都能笑醒了。但是追求极致性能是每一个有梦想的开发者的自我修养!万一有一天用到了呢!

那么,Nginx 单机性能如何才能突破十几万呢?答案是,需要调优,从多个角度对 Nginx 进行调优,比如缓存、CPU 亲和性、事件处理模型、IO 操作等等。如果你对高性能服务器开发感兴趣,你会发现这些调优的方法正好是高性能服务器开发的关键原则!

本场 Chat 会从 Nginx 调优说起,跟你聊聊高性能服务器开发的关键原则。

在本场 Chat 中,会讲到如下内容:

  • Nginx 安装和配置
  • Nginx 调优:缓存、CPU 亲和性、事件处理模型、IO 操作等
  • Linux 内核参数调优
  • 高性能服务器开发的关键原则
会员免费订阅
已有179人预订
预订达标
文章出炉
     
11月08日
11月22日
预订后,您将在11月22日之前获得一篇专享文章
请务必添加GitChat服务号以查看活动进度及获取活动通知。
退款保证:
• 11月14日前,预订人数未达标,您将获得全额退款。
• 作者未按时完成文章,您将获得全额退款。
你可能还喜欢
机器学习必备的数学知识,一次学会
白朔天
程序员的数学修养
李烨
微服务架构深度解析与最佳实践
kimmking
程序员如何专注和管理时间
程序员的三门课
如何设计一个注册中心
star
从 Vue 3 源码切入,全面掌握前端编译原理
修言
高效学习的途径
程序员的三门课
靠着这份 Java 核心面试知识整理(PDF),稳拿头条/菜鸟/字节 offer
一只Tomcat
实战:Redis 高并发秒杀和分布式锁技术应用及项目剖析
朱学超
程序员必须懂的架构入门课
IT老兵哥
程序员眼中后端技术点总结
技术征程
调用链监控:微服务时代每个程序员必须点亮的技能点
编码
实战:设计模式之代理设计模式深度解析,纯手写 MyBatis 框架
罗小黑
自由职业者如何活好
安晓辉
2019 大前端学习路线完全指南
萧文翰
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效