美文网首页程序员
nginx优化指南(一)cpu相关

nginx优化指南(一)cpu相关

作者: mafa1993 | 来源:发表于2020-04-08 21:08 被阅读0次

nginx优化

  1. 增大nginx使用cpu的有效时长
    • 使其能够使用全部cpu资源
    • nginx进程间不争抢cpu资源(繁忙的worker进程不应让出,资源调度不应让出资源)
    • 不和其他进程争抢资源(提升优先级使其占用cpu时间更长,减少操作系统上耗资源的非nginx进程)
      • 阻塞api会导致主动让出cpu(程序处理尽量不进行阻塞)
      • 业务场景产生的阻塞api(同步读网络报文)
        • 同步:报文的发送和接受是同步进行的,发送后等待接受。 就是请求发送后需要等待响应
    • worker进程数量设置
      • 不能超过逻辑核数的4倍,一般设置为何逻辑核数一样即可
      • 两核设置worker_processes 2;
    • 减少进程上下文切换
      • 主动切换的触发条件,sleep,资源调度阻塞等
      • 被动切换,时间片耗尽(静态优先级,nice,top命令中的NI列,值为-20到19,动态优先级,top中的PR列,越低时间片越长)
      • worker_priority 0; main模块设置优先级
    • 绑定cpu,多核cpu进程切换后,如果改变了运行cpu的核,会导致一些缓存丢失,绑定后利用固定的cpu响应用户请求,可以利用缓存(时间片轮训导致运行的cpu核改变)
      • worker_cpu_affinity auto/cpumask; main模块 auto为自动绑定cpu和进程,cpumask是cpu掩码,手工配置,有几个nginx进程,写几个worker_cpu_affinity 0001 0010; #4核两个进程 绑定不同的cpu
  2. 连接数
    • io模型选择
      • use epoll; use event,events模块,配置需要使用什么事件模型,不需要配置,会自动选择一个最优的
    • 单个worker允许连接的数量
      • worker_connections number; number的计算方式 一个connection大约232个字节,event约有96个字节,一个连接共占用大约232+96*2(读写两个事件)B内存左右
    • worker进程最大打开文件数
      • 文件数会限制连接数,此参数收最大文件句柄数限制,超过了最大句柄数限制,就会报 too many open file错误,大并发时可能句柄不够用
      • worker_rlimit_nofile number; events模块设置
      • cat /proc/sys/fs/file-max 内核最大的文件数(默认是内存百分之10可打开的数量)
      • 单个进程可分配的最大文件数 cat /proc/sys/fs/nr_open 单个进程的不能超过内核的
    • 修改用户的文件句柄数
      • ulimt -n 查看用户的最大句柄数
      • ulimit -HSn 1000 修改,临时修改,-H为硬限制,-S是软限制
      • /etc/security/limits.conf 永久修改,对用户进行设置
      • nofile中的 hard limit不能超过单个进程的数量,如果超过了,无法建立新的连接,xshell新窗口都打不开
        • 文件描述符设置:
a.所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max ,内核的文件描述符数
b.单个进程打开的文件描述符数不能超过user limit中nofile的soft limit,进程打开的数量受用户的限制,但是设置的时候必须要设置的比用户的大,进程的设置要比用户大,用户操作也需要一个文件操作描述符
c.nofile的soft limit不能超过其hard limit 
d. nofile的hard limit不能超过/proc/sys/fs/nr_open,进程必须大于用户的

相关文章

  • nginx优化指南(一)cpu相关

    nginx优化 增大nginx使用cpu的有效时长使其能够使用全部cpu资源nginx进程间不争抢cpu资源(繁忙...

  • nginx配置

    针对CPU的nginx配置优化 worker_processes设置nginx服务的进程数,一般设置为cpu核数的...

  • nginx 配置

    1. nginx 的主要优化配置项: 1)nginx进程数,建议按照cpu数目来指定,一般跟cpu核数相同或为它的...

  • Nginx高并发配置

    nginx优化 突破十万并发 一、一般来说nginx 配置文件中对优化比较有作用的为以下几项: 查看物理CPU个数...

  • nginx性能优化

    nginx性能优化 1、Nginx运行工作进程数量 Nginx运行工作进程个数一般设置CPU的核心或者核心数x2。...

  • nginx优化(二)io优化 直接IO与零拷贝

    nginx优化(二)io优化 直接io与零拷贝 nginx io相关基础配置 debug_points abort...

  • iOS - 性能优化

    卡顿优化 在了解卡顿优化相关的前头,首先要了解 CPU 和 GPU。 CPU(Central Processing...

  • iOS - 性能优化

    卡顿优化 在了解卡顿优化相关的前头,首先要了解 CPU 和 GPU。 CPU(Central Processing...

  • Nginx的优化

    作为真实服务器的优化 针对CPU的nginx 配置优化指令 worker_processes 指令是用来指定Ngi...

  • web服务器优化

    系统级 公司有自己的一套优化标准,在安装系统的时候就已经做好系统级的优化 应用级 1.nginx cpu进程的优化...

网友评论

    本文标题:nginx优化指南(一)cpu相关

    本文链接:https://www.haomeiwen.com/subject/akmxmhtx.html