java系统延时_低延时系统, Java 应用如何配置线程数

服务器

3 台普通云服务器厂商常规的 8 核 8G 前面有个 ng 做负载

运行方式

spring-boot 内置的 tomcat 采用 nio 模式 jar 包启动

系统接口平均响应时间

10-20 毫秒

每天接受到的请求数

800 万

系统峰值 qps

300+ 平均每台 100 左右

tomcat 配置

100 线程

accetpt 1000

max 1000

程序逻辑

请求进来

ThreadPoolExecutor()里 execut 计算后返回

( IO 计算,hbase redis 等查询)

背景

随着业务增加 系统复杂度增高。平均接口响应时间增加。

导致高峰期响应时间超过 50 毫秒的接口响应数增加。

业务方需要比较稳定的接口响应时间 且<=50 毫秒

今天增加了部分业务逻辑 导致整体接口响应时间上升了约 1 毫秒

结果高峰期整体系统超过 50 毫秒接口数增加了很多个

系统 cup 负载不高

问题

tomcat 配置应该可以调低线程数 accept 跟 max 可以不动

ThreadPoolExecutor 配置多少线程合理

redis 连接池设多大合理

hbase poolsize 设多大

g1gc 多久一次算正常

hbase 偶尔有几条比较高的耗时

redis 无压力

目前系统负载么啥压力 请求量也无大的上升 就是整体接口的平均耗时稍微增加了一两毫秒 导致某些核心接口需要 50 毫秒内返回的 结果 50 毫秒内没能返回 排除 hbase 的那几次超时 能否通过合理的线程池配置来降低接口的响应时间

现在最简单的办法就是增加一两台物理机 应该就能减少超过 50 毫秒的接口了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值