nginx的基本优化

2021-07-18  本文已影响0人  麟之趾a

内核方面优化

  1. 进程打开文件描述符的数量
  2. tcp连接中time_wait状态的回收
  3. nginx做负载均衡时,打开本地端口的范围扩大
  4. 系统一次性最大接受tcp连接的个数
    ....
    内核方面优化一般是针对于,四层和网络的优化。主要是tcp三次握手和四次断开的优化

程序参数优化

  1. 打开文件压缩功能,节约网络资源gzip on
  2. 设置进程数,和每个进程处理的链接数worker process
  3. 必须时对每一个连接进行限流操作,以达到公平分配效果limit rate
  4. 如果nginx做web网站使用,打开文件的缓存配置open_file_cache
  5. 打开返回响应的非延迟操作(用户请求一个文件,大小为2bytes,如果程序是延迟响应,会等待这个用户请求其余的内容,大小达到可以返回的设置才会返回,因为请求为2bytes,但如果立马响应可能要花费20bytes,所以就要等待请求内容多了之后一次性返回,提高了服务器性能。但降低了用户体验),因此要打开非延迟响应tcp_nodelay on
  6. 如果系统支持异步写入,则使用aio on打开程序的异步写入
  7. 打开程序的长连接keepalive,注意如果做负载均衡,长连接保持的时间越短越好。长连接就是减少系统建立连接,达到连接的复用。如果并发很高,如果之前的连接还在请求。程序已经达到最大连接数,则后面的请求就进不来。

流量异常处理

假定一个系统设计的并发量为4000,一下来了3w的并发量。此时的服务器就会很拥挤,连接进不来,也出不去。则整个网站就是不可用状态
一般遇到流量异常情况

  1. 做流控,切断后面进来的请求。保证一部分请求,能够正常响应
  2. 只保留核心服务,把外围服务关停。以便系统能够承受更多的流量。如电商站点,则只保留交易服务。把评论,浏览等服务关停
上一篇 下一篇

猜你喜欢

热点阅读