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

从 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 内核参数调优
  • 高性能服务器开发的关键原则
已有245人预订
预订达标
文章出炉
     
19.11.08
19.11.26
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张暖和狐狸的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
你可能还喜欢
看完这篇 HTTP,跟面试官扯皮就没问题了
cxuan
肺炎模型分析和预测,向每⼀位在疾病中奋⽃的⼈致敬! ​
飞马网
求你别再花大价钱学 Python 之爬虫实战
周勤
Linux 面试题目大全(100 题)
Lisa
GitChat 写作排版指南
🐡赵小胖
热门安全框架 Spring Securiy + JWT 精讲
九月长安
千万别让工资收入成为你唯一的收入来源
ilomilo
跟我 1+1 学设计模式
一只帅帅的猿
Spring 面试题全面解析
JavaTimo
gRPC 数据流转全过程剖析
DIU哥
MySQL-InnoDB 存储引擎的索引、锁机制与事务隔离
杜戈
Java 基于 RBAC 权限控制模型入门
程序猿
2020 年 2 月 JVM 面试的 30 个知识点
JavaTimo
认证和授权中不得不提及的 OAuth、SSO、CAS、JWT
长烟斗火枪红帽子鹿皮鞋
Vue 零基础从入门到实战教程
a_靖
微信扫描登录
关注提示×
扫码关注公众号,获得 Chat 最新进展通知!
入群与作者交流×
扫码后回复关键字 入群
Chat·作者交流群
入群码
该二维码永久有效