zoukankan      html  css  js  c++  java
  • Nginx 性能优化

    Nginx - 性能优化

    2019-10-24 22:29:06 stark张宇 阅读数 483更多

    软件层面

    • 增大CPU的利用率
    • 增大内存的利用率
    • 增大磁盘IO的利用率
    • 增大网络带宽的利用率

    如何有效使用CPU

    	worker_processes number | auto
    

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

    CUP宏观上并行,微观上串行

    • 把进程的运行时间分为一段段的时间片
    • os调度系统依次选择每个进程,最多执行时间片指定的时长

    阻塞API引发的时间片内主动让出CUP

    • 速度不一致引发的阻塞API
      • 硬件执行速度不一致 , 例如CPU和磁盘
    • 业务场景产生的阻塞API
      • 例如同步读网络报文

    对于CPU的优化的点

    • Nginx worker尽可能的出于R状态
      • R状态的进程数量大于cpu核心时,负载急速增高
    • 尽可能的减少进程间的切换
      • 是指CPU从一个进程间或线程切换到另一个进程或线程
      • 类型
        • 主动切换
        • 被动切换:时间片耗尽
      • 减少主动切换
      • 减少被动切换
        • 增大进程优先
      • 锁定CPU

    如何查看上下文切换次数?

    vmstart 1
    
    dstat 1
    

    设置worker进程的静态优先级?

    worker_priority number 
    

    worker进程间的负载均衡

    多队列网卡对多核CPU的优化

    • RSS 硬中断负载均衡
    • RPS 软中断负载均衡
    • RFS

    提升CPU缓存命中率:NUMA架构

    worker_cpu_affinity
    

    如何应对SYN攻击?

    攻击者短时间伪造不同IP地址的SYN报文,快速沾满backlog队列,跨服务器不能为正常的用户服务

    • net.core.netdev_max_backlog
      • 接收自网卡,但未被内核协议处理的报文队列长度
    • net.ipv4.tcp_max_syn_backlog
      • SYN_RCVD状态连接的最大个数
    • net.ipv4.tcp_abort_on_overflow
      • 超出处理能力时,对新来的SYN直接回包RST,连接丢弃

    开启 - tcp_syncookies

    如何控制句柄数的上限

    • 操作系统全局
      • fs-file-max
      • 操作系统可使用的最大句柄数
    • 限制用户
    • 限制进程
      • worker_rlimit_nofile number
    • 设置worker进程的最大连接数

    TCP Fast Open

    流量控制

  • 相关阅读:
    mysql 远程登陆不上
    hdu 5339 Untitled【搜索】
    SqlServer 书目
    passwordauthentication yes
    oracle 11g RAC ocfs2
    Oracle 11g RAC database on ASM, ACFS or OCFS2
    CentOS ips bonding
    Oracle 11g RAC features
    openStack 王者归来之 trivial matters
    openstack windows 2008 img
  • 原文地址:https://www.cnblogs.com/grj001/p/12223464.html
Copyright © 2011-2022 走看看