背景介绍:
上线项目库存扣减这块采用redis+lua的方式进行库存扣减,结果一上线cpu使用率飙到100%,然后就出现大规模连接超时的问题
服务器规格是4c 8G 100M的带宽(明显是不够)。后面增至三台负载解决问题。
原因分析
刚开始怀疑可能是服务本身编码存在的问题,于是本地启动项目开始多次进行压测,发现并没有存在问题。最后查找并排除定位
问题来自网络、cpu或内存的限制。
验证客户端和搭建 Redis-Server 的服务器支持的最大带宽是多少。如果有些请求(request)被带宽限制,
则它们消耗更长时间才能完成,从而可能导致超时。同样,验证是否被客户端或服务器上的 CPU 限制——这将导致请求等待 CPU 时间,
从而超时。 还有更容易被忽略的情况,当 Redis 数据量超过分配的内存(RAM)限制时,发生 Redis 锁死,导致超时。
参考文章:https://blog.csdn.net/llg8212/article/details/82148673
参考文章:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/109146750