3 台普通云服务器厂商常规的 8 核 8G 前面有个 ng 做负载
spring-boot 内置的 tomcat 采用 nio 模式 jar 包启动
10-20 毫秒
800 万
300+ 平均每台 100 左右
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 毫秒的接口了
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.