SpringCloud(22)—— Spring Boot 内置容器配置参数优化指南

 

Spring Boot 内置容器 优化指南

0. 基础

具体的配置参考 common-application

1. 使 Tomcat作为内置容器

tomcat的影响性能的配置项是:

  server.tomcat.max-connections=0 # 大链接数 

  server.tomcat.max-threads=0 #  工作线程数

内置tomcat容器 用的是BIO (one thread per connection) 模型,所以针对不不同的配置业务和情况需要将这个值设置。

除了了上述的值之外

  server.tomcat.accept-count=0 # 队列列最 大值

acceptCount是当线程数达到maxThreads后,后续请求会被放 一个等待队列列,这个acceptCount是这个队列列的 小,如果这个队列列也满了了,就直接refuse connection

 

2. 使 Undertow作为内置容器  [推荐]

 

undertow的性能配置项是:

 

  server.undertow.io-threads=4 # 设置IO线程数, 它主要执 行行 非阻塞的任务,它们会负责多个连接, 默认设置每个CPU 一个线程

  server.undertow.worker-threads=20 # 阻塞任务线程池, 当执 行行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载

  server.undertow.buffer-size=1024 # 每块buffer的空间 , 小的空间被利利 用越充分,块多了了但是会变慢

  server.undertow.buffers-per-region=1024 # 每个区分配的buffer数量量 , 所以pool 小是buffer-size *buffers-per-region

  server.undertow.direct-buffers=true # 是否分配的直接内存

针对以上配置 server.undertow.worker-threads 类似于 server.tomcat.max-threads 这个值建议根据系统配置设置,server.undertow.direct-buffers建议开启可以使 用堆外内存减少byte数组的回收开销。

 

关于 tomcat  undertow  jetty 的测试性能可以参考 tomcat-vs-jetty-vs-undertow, 言之,undertow 会有更更好的性能表现。

 

3. Spring Zuul 性能调优

Undertow  Tomcat 作为外部请求的接受者,Zuul更更多的作为转发 方,影响Zuul的性能参数主要集中在转发上:

   zuul.host.maxTotalConnections # 用于ApacheHttpClient,如果是okhttp 无效。每个服务的http客户端连接池最 大连接,默认是200.

   zuul.host.maxPerRouteConnections # 用于ApacheHttpClient,如果是okhttp 无效。每个route 用的最 大连接数,默认值是20

     zuul.semaphore.max-semaphores #Hystrix 大的并发请求

   execution.isolation.semaphore.maxConcurrentRequests,这个值并 TPSQPSRPS等都是相对值,指的是1秒时间窗 口内的事务/查询/请求,semaphore.maxConcurrentRequests 一个绝对值, 无时间窗 口,相当于亚毫秒级的。当请求达到或超过该设置值后,其其余就会被拒绝。

   hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds # 用来设置threadsemaphore两种隔离策略略的超时时间,默认值是1000

ribbon 参数调优

   ribbon.MaxAutoRetries # 大重试次数

   ribbon.ConnectTimeout #连接接超时时间 ribbon.ReadTimeout #连接读取超时时间

   主要是ConnectTimeoutReadTimeout2个参数,最终会设置到http Client中,注意这个参数很重要了了,会配合execution.isolation.thread.timeoutInMilliseconds 一起来 用,多少合适要根据微服务实际情况来定:

  :会导致很多正常业务失败.

  :会导致实际的熔断效果很差,严重会导致雪崩。

转载于:https://www.cnblogs.com/xushuyi/articles/8693122.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值