java系统预测、预警流程
二八定律:qps = 100w* 80% / (24小时60分60秒 * 20%)数据量:qps * 1.5K(每个接口缓存的数据量)2、默认六节点,三主三从,最大可以承载60G数据。1、Redis建议单节点数据量不超过20G。PV: 10 * 10 次 = 100 w。机器数量 = qps / 每台机器。3、标准集群可以承载15wqps。
一、机器估算
Uv: 10W
PV: 10 * 10 次 = 100 w
高峰时段:5小时
二八定律:qps = 100w* 80% / (24小时60分60秒 * 20%)
机器数量 = qps / 每台机器
数据量:qps * 1.5K(每个接口缓存的数据量)
第一步、根据产品提供用户量级+峰值时间段的二八原则估算qps;
第二步、压测到达峰值查看瓶颈定位是出现在cpu、线程、JVM内存;
第三步、升级服务器服务配置4核、8G后再次压测,最终得出服务器数量
第四步、冗余:最后机器数量*(1.5倍-2倍)
第五步、上线后观察机器负载情况
第六步、如果机器负载充足,减少机器
二、redis计算
1、Redis建议单节点数据量不超过20G 2、默认六节点,三主三从,最大可以承载60G数据 3、标准集群可以承载15wqps
三、日志预警流程:
第一步、接口链路:梳理核心接口链路
第二步、标准化:根据链路日志中定义模块、大类、方法名、用户key、订单号;
第三步、配置预警规则;
第四步、手动触发错误,
第五步、在logback.xml中查看日志存放位置,手写一些错误日志文本上传到日志服务器,观察预警情况
第六步:对预警日志进行补充
四、中间件预估流程:
1、估算mq、redis基础集群数据量和qps
2、检查mysql索引、慢查询
检查核心接口中涉及的sql语句,根据sql语句查询是否缺失索引
① 翻译代码中的sql
SELECT
*
FROM
`record`
where
activite = '100000000000000000'
and unionid = '11111111111111111'
and create_time >= '2022-03-14 00:00:00'
and create_time <= '2022-03-14 23:59:59'
LIMIT
100;
② 查询explain
1)explain extended:会在 explain 的基础上额外提供一些查询优化的信息。紧随其后通过 show warnings 命令可以得到优化后的查询语句,从而看出优化器优化了什么。额外还有 filtered 列,是一个半分比的值,rows * filtered/100 可以估算出将要和 explain 中前一个表进行连接的行数(前一个表指 explain 中的id值比当前表id值小的表)。
2)explain partitions:相比 explain 多了个 partitions 字段,如果查询是基于分区表的话,会显示查询将访问的分区。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)