服务端故障排查经验记录1——16核32G服务器满载问题

在这里插入图片描述

  • 2021年5月节假日, 某公司的16核32G服务器,CPU满载导致大量用户瘫痪2小时以上,这张图片是当时的服务器情况。
    经过现场分析数据库与服务端代码,做出以下分析及判断:
    1、服务端采用PHP开发,thinkphp3.2框架,没有redis或其他工具处理并发;
    2、服务端并发量为3000至5000,却把数据库资源占用100%、服务器资源占用100%,数据库用的还是4核的阿里云数据库;
    3、观察PHP代码,发现大量SQL查询没有使用索引查询,观察云数据库日志发现大量慢SQL,甚至出现一条SQL查询20分钟现象,且表数据量不到10万条记录;
    4、观察数据库表结构,发现大量表缺乏索引,没有遵守数据库设计三大范式,表内冗余严重。
    最终确认,最大问题是查询时没有使用索引列作为查询条件,导致大量慢SQL堆积,且没有并发处理机制,导致服务器瘫痪。
    处理办法是找到所有慢SQL,为查询、修改用到的关键字段加索引。最终有效解决问题。下图是忙时4核8G服务器运行状况:

    在这里插入图片描述

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

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值