简单一招竟把 nginx 服务器性能提升 50 倍
需求背景 接到重点业务需求要分轮次展示数据,预估最高承接 9w 的 QPS,作为后端工程师下意识的就是把接口写好,分级缓存、机器扩容、线程拉满等等一系列连招准备,再因为数据更新频次两只手都数得过来,我们采取了最稳妥的处理方式,直接生成静态文件拿 CDN 抗量 架构流程大致如下所示: 数据更新后会重新生成新一轮次的文件,刷新 CDN 的时候会触发大量回源请求,应用服务器极端情况得 hold 住这 9w 的 QPS 第一次压测 双机房一共 40 台 4C 的机器,25KB 数据文件,5w 的 QPS 直接把 CPU 打到 90% 这明显不符合业务需求啊,咋办?先无脑加机器试试呗 就在这时测试同学反馈压测的数据不对,最后一轮文件最大会有 125KB,雪上加霜 于是乎文件替换,机器数量整体翻一倍扩到 80 台,服务端 CPU 依然是瓶颈,QPS 加不上去了 到底是哪里在消耗 CPU 资源呢,整体架构已经简单到不能再简单了 这时候我们注意到为了节省网络带宽 nginx 开启了 gzip 压缩,是不是这小子搞的鬼 server { listen 80; gzip on; gzip_disable ...