美文网首页
参数估算

参数估算

作者: gstsyyb | 来源:发表于2020-05-30 20:21 被阅读0次

    背景:
    1、使用的线程池,大小是怎么确定的
    2、httpclient参数如何设置的,大小是怎么确定的
    3、redis、mysql 连接池参数如何设置,大小是怎么确定的

    补充:QPS = 并发数 / 平均响应时间

    httpclient:
    MaxTotal:池子中的最大连接数
    DefaultMaxPerRoute:每个IP+PORT主机对应池子中的最大连接数
    MaxConnPerRoute: 每个IP+PORT主机对应池子中的最大连接数
    SocketTimeout:读写超时(httpclient 读写第三方接口的超时时间)
    ConnectTimeout: 连接超时 (httpclient 连接第三方接口的超时时间)
    ConnectionRequestTimeout:客户端从连接池获取连接的超时
    SoTimeout:读写超时
    TcpNoDelay: 是否延迟发送

    场景:
    1、单台实例QPS:100/s ,请求耗时平均2s,100 * 2 * 3(扩大3倍) = 600 ,所以可按下面配置
    MaxTotal= 600
    DefaultMaxPerRoute=MaxConnPerRoute=200
    ConnectionRequestTimeout=2000
    SocketTimeout=4000
    2、模拟压测

    tomcat:
    maxThreads:
    每一次HTTP请求到达Web服务,tomcat都会创建一个线程来处理该请求,那么最大线程数决定了Web服务可以同时处理多 少个请求,默认200
    accepCount:
    当调用Web服务的HTTP请求数达到tomcat的最大线程数时,还有新的HTTP请求到来,这时tomcat会将该请求放在等待队列中,这个acceptCount就是指能够接受的最大等待数,默认100.如果等待队列也被放满了,这个时候再来新的请求就会被tomcat拒绝(connection refused)
    maxConnections:
    这个参数是指在同一时间,tomcat能够接受的最大连接数。一般这个值要大于maxThreads+acceptCount

    redis:
    MaxTotal:设置最大连接数,(根据并发请求合理设置), 600
    MaxIdle:设置最大空闲连接数,(根据并发请求合理设置)
    MinIdle:设置最小空闲连接数或者说初始化连接数
    inEvictableIdleTimeMillis:多长空闲时间之后回收空闲连接
    MaxWaitMillis:设置最大等待时间,客户端从连接池时的最大等待时间 2000ms
    TestOnBorrow:获取连接后验证是否有效 true

    相关文章

      网友评论

          本文标题:参数估算

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