zoukankan      html  css  js  c++  java
  • 客户端访问不可达故障集

    0 背景

    经历过多次半夜被电话叫醒,因为大量用户访问服务慢。所以在此写一写解决思路。

    环境是:分布式架构,服务端由linux上的C++写的进程组成。服务器是公有云。

    case 网络波动

    网络波动,就是Flipping,一般在广域网才会提到,是由于线路的不稳定,出现时通时断或瞬断的现象。Flipping一般都是运营商造成,是会经常出现、不可避免的。

    有的架构是跨机房的,前后端是在两个机房,机房之间的网路延迟决定服务质量。如果在监控图表(zabbix)上出现峰值,就会出现前后端通信问题,影响客户端体验。

    有时架构是在一个机房的,但是机房网络波动出入口也会出问题,这个一般可以向公有云服务商确认。

    手动确认方式:

    ping:查两点之间的延迟

    traceroute/tracert:查CS之间的路由链路,看哪个节点出现高延迟。

    case  DDos攻击

    DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击。

    DDoS攻击,对服务器突发性地输入大量无效或慢速的访问请求,导致服务器流量需求激增,导致带宽超限、服务器卡死。

    DDoS攻击不但会造成目标服务器瘫痪,还会影响机房内网正常运作。机房防火墙检测到这种情况,将直接封停服务器IP。

    公有云服务商有高防IP业务,就是把攻击流量引到高防IP,使业务正常。特点是贵。

    解决办法:

    前端部分负载均衡器配置高防

    case  进程死循环

    由于程序内部问题导致cpu占用过高,只要马上kill服务重启,然后排查程序内部问题。

    服务器压力减少I,则客户端访问正常

    case  debug log拖死服务器

    如果进程的debug log模式日志输出量特别大,相较于info模式,cpu占用会成倍上升,动态调整日志等级即。服务器压力减少I,则客户端访问正常。

  • 相关阅读:
    在eclipse中安装 Activiti Designer插件
    Maven settings.xml配置(指定本地仓库、阿里云镜像设置)
    unity调用MMBilling_2.4.2 Android SDK.
    unity与Android相互调用
    Unity3D研究院之与Android相互传递消息
    Unity3D研究院之打开Activity与调用JAVA代码传递参数
    Objec c 字符串比较
    判断不同IOS设备
    Unity3D研究院之IOS本地消息通知LocalNotification的使用
    【Unity3D】iOS 推送实现
  • 原文地址:https://www.cnblogs.com/jabbok/p/9877344.html
Copyright © 2011-2022 走看看