一、机器估算

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 字段,如果查询是基于分区表的话,会显示查询将访问的分区。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐