请求量猛增,系统优化,服务优化

公司上个月用户量增加到160W,日活在50W,日请求量在3亿条,并发在4万左右。

我们公司框架用的spring cloud 集成了 nacos 、zuul、xxljob、sharding分库分表、redis、rocketmq。

遇到好多问题:

1、当时买服务器的时候磁盘买小了100G,打日志都不够。有预见性的同学可以先计算一下磁盘用量再购买

a、nginx使用日志切割sh,每天定时切割,并删除日志

b、nacos日志超级大,每天都有几十个G,因为已经上线,不想重启,索性还是用sh命令去删吧

c、业务日志也是比较大的,入参,出参你得打印吧,而且每个人的开发习惯不一样,为了好定位问题,还是需要的。前期降低留存时间呗。后面服务重启扩大机器磁盘到500G了。

2、自建的redis集群有一台服务进程被机器杀死了,没搞明白这么恢复。宕机半日。

当时用的https://www.cnblogs.com/ywrj/p/9531800.html 文章指导搭建的。是用命令把主备联系起来的。维护成本高

后面索性购买了云redis,对中间件不是非常熟的朋友还是直接买吧,省心

后面需要修改一下配置,redis删除key的模式调整,我用的是allkeys-lru,反正redis里的数据都是可以被删除的,所以就使用删除所有key中最少命中的规则去删除。

3、遇到服务跑着跑着就卡住了。cpu飚高至100%

定位gc发现youngGC与fullGC是否过于频繁或者耗时过长,从而对症下药。我们下面将对G1垃圾收集器来做分析,这边也建议大家使用G1-XX:+UseG1GC

修改fgc方式为:

-XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:MaxGCPauseMillis=200

4、某台服务出现问题为什么会导致所有流量下降?

谢特,zuul中没有加熔断。度娘了一下随便找了一篇文章,加入熔断。看学习文章总是看见,自己搭建工程的时候总是会漏很多组件。解决单点服务故障导致全服务不能用问题

5、新问题来了,数据库总是显示高并发压力,事务未提交。数据库cpu100%。

后面发现是2个问题

a:数据库cpu100%,发现大量行扫描。比某次上线多了几个数量级,原先10W/s-100W/s行扫描,现在分分钟1000W/s-10000w/s。这是坑爹呢,一顿索引一顿乱填加,并没有乱用。后面接口做redis优化,不查数据库总好了吧。

最终还是定位出某个接口,索引颗粒度不够,每次查询行扫描几千万行,修改业务逻辑+redis缓存解决。

b:我们使用的服务器容器是Undertow,他有2种线程,1是Io线程一般是核数,最低2个,还有一个是工作线程一般是io线程的8倍。扩大工作线程数解决服务执行任务阻塞问题。解决数据库总是显示高并发压力,事务未提交的问题。

https://blog.csdn.net/zhangjunli/article/details/89207038

持续迭代中

 

 

 

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 2

打赏作者

lin351550660

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值