1.优化方法论

从软件层面提升硬件使用效率

 -增大CPU的利用率
 -增大内存的利用率
 -增大磁盘10的利用率
 -增大网络带宽的利用率

提升硬件规格

 -网卡:万兆网卡,例如10G、25G、40G等 -磁盘:固态硬盘
 -CPU :更快的主频,更多的核心,更大的缓存,更优的架构
 -内存:更快的访问速度

Nginx相关优化配置-进程相关

如何增大Nginx使用CPU的有效时长能够使用全部CPU资源
1.master-worker多进程架构 

2.worker进程数量应当大于等于CPU核数


3.Nginx进程间不做无用功浪费CPU资源


4.worker进程不应在繁忙时,主动让出CPU worker进程间不应由于争抢造成资源耗散 ,worker进程数量应当等于CPU核数 , worker进程不应调用一些API导致主动让出CPU ,比如使用openresty调用第三方模块


不被其他进程争抢资源

1. 提升优先级占用CPU更长的时间 
2. 减少操作系统上耗资源的非Nginx进程
3. 设置worker进程的数量

通过合理的设置worker的进程数量,提高cpu利用率,cpu设置等于或者小于核数 查看cpu核数的方法 grep "processor" /proc/cpuinfo |wc -l

Syntax: worker processes number auto;
Default: worker_processes 1;
Context: main

为何一个CPU就可以同时运行多个进程?

- 宏观上并行,微观上串行 
- 把进程的运行时间分为一段段的时间片 
- OS调度系统依次选择每个进程,最多执行时间片指定的时长

- 阻塞API引发的时间片内主动让出CPU
 -速度不一致引发的阻塞API
 -硬件执行速度不一致,例如CPU和磁盘
 - 业务场景产生的阻塞API
 -例如同步读网络报文