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
-例如同步读网络报文