千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 线上集群中某台服务器频繁重启的问题排查分析过程

线上集群中某台服务器频繁重启的问题排查分析过程

来源:千锋教育
发布人:wjy
时间: 2023-03-02 16:10:00 1677744600

  一. 问题描述

  我们去面试时,有些面试官会经常问我们:你都遇到过哪些线上的故障?是解决这些线上故障的?今天千锋就给大家讲解一个比较奇葩的线上故障,问题如下所示:

  线上集群中,某一台服务器频繁重启是怎么回事?如何解决?

  下面是千锋的线上服务器架构图:

线上集群中某台服务器频繁重启的问题排查分析过程149

  二. 问题排查

  为什么会出现线上某台服务器频繁重启呢?为了搞清楚问题所在,我们可以按照如下思路来进行问题排查。

  首先我给大家说明一下,千锋的线上服务器,请求负载均衡策略是采用的是轮询机制,请求数量平均分配。

  接下来我们可以定位一下故障发生的时间点。在本案例中,我的线上服务器重启的时间段基本是固定的,所以我就可以在那个特定的时间段内进行监控。

  然后我们再来分析一下,服务器重启可能有哪些常见的原因:

  硬件风扇散热不好,造成服务器过热,服务器会重启---->我的服务器风扇没有问题,排除掉;

  检查内存空间是否充足。可以在那个时间段通过top命令监控CPU和内存的利用率,看看是否在那个时间段内硬件资源消耗殆尽了;

  软件原因。服务器内部是否有什么任务代码,在那个时间段会将硬件资源耗尽,造成重启。

  通过以上排查方法,我既没有发现风扇有问题,也没有发现在服务器中除了当前自己的应用外,还有其他大型应用在占用硬件资源。但通过top命令,我却在服务器经常重启的时间段内,发现硬件CPU和内存资源在某一个时间段内提升地特别快,进而造成硬件资源耗尽,服务器重启。

  那么如果在没有外部软件占用资源的情况下,CPU和内存资源的消耗更多地是由自己的软件耗尽的。所以现在我们可以初步诊断出,是当前自己的应用在处理请求能力上较差,造成大量请求累积。

  为了验证结论是否正确,千锋使用了jmeter压力测试工具,对集群中几台没有问题的服务器和当前服务器进行测试对比,结果发现当前出现问题的服务器在处理请求能力上与其他服务器相比速度较慢。

  最终,千锋通过以上经验推测和测试方法得出结果,之所以会出现线上服务器经常重启,此处主要是因为某台服务器硬件性能较差,在轮询策略分配请求时,平均分配造成当前机器请求的积压过多,承载不了,从而产生系统重启。

  三. 解决方案

  针对这个问题,解决方案如下:

  修改分布式请求策略。虽然轮询策略平均分配了请求数,但由于不同配置的机器对相同请求的处理能力不同,有可能会出现个别服务器无法承载过多压力而崩溃的情况;

  给请求的机器地址添加权重。我们也可以给出现问题的机器分配较少的权重,在请求分配时,给配置较低的服务器少分配一些权重,避免造成请求积压。

  现在你知道如何排查线上服务器的类似故障了吗?如果你还有其他问题,可以在评论区留言哦。关注Java架构栈,干货天天都不断哦。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT