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,则客户端访问正常。

  • 相关阅读:
    Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)
    股市投资策略总结(转)
    php学习笔记--高级教程--读取文件、创建文件、写入文件
    史上最简单的Hibernate入门简单介绍
    Java中StringBuilder的清空方法比較
    DHCP Option 60 的理解
    ICMP报文分析
    软件測试自学指南---从入门到精通
    Qt多线程学习:创建多线程
    Bulk Insert命令具体
  • 原文地址:https://www.cnblogs.com/jabbok/p/9877344.html
Copyright © 2011-2022 走看看