一次网站分析与解决的经历,最后结果虽然很简单但是过程比较曲折.记录一下:
今天访问网站首页十分缓慢,页面半天都加载不出来.于是上服务器看看情况,通过top看到load和cpu以及磁盘io都很低,只能祭出神器dstat:
dstat
查看到流量很大,我们使用的是阿里云的ecs服务器,带宽20m左右,可以看到流量已经达到了带宽上限.
 
于是马上想到查看nginx服务器日志,但是日志庞大,绝大部分是jpg,js,css等静态资源,很难实际分析到问题.
接下来去百度搜索,如何查看服务器上的流量分配.很遗憾并没有直接的答案,但是看到一个工具叫iftop,马上apt-get下载之
 

 
iftop工具可以实时的列出网站当前的流量情况,主要以ip分隔.
上方的列表=>表示出流量,<=表示入流量.
底部三行是汇总:
第一列显示累计的出流量(TX),入流量(RX),总共(TOTAL)
第二列显示峰值带宽
最后一列显示平均的统计结果,分别是3s,5s,15s的统计结果,与top命令的load类似吧.
 
iftop
 
 
可以看到存在少数ip正在占用大量的带宽,这种情况可以想象到是正在下载大文件了,但是并不知道是什么文件. 但知道方向事情就好办了,还是通过nginx日志,分析其中的一个大流量ip正在干什么...执行
 
> cat /var/log/nginx/access.log | grep 223.144.191.227 > ~/temp2.log
 
再来看这个时间点有什么可疑的下载.结果发现一个zip包,这个zip包是我们的app的语音包,有50m以上,估计很有可能是它的问题了!
执行
> cat /var/log/nginx/access.log | grep /word_wg_voc.zip |more  部分结果如下:
 
 
 
可以看到是app的语音包下载出了问题: 链接后面的 200 后面的数字代表的是发送的字节数,而这里很多都不一样,说明是下载不完整. 这也是带宽不足造成的后果...
 
知道了问题后就ok了,解决办法是:先临时提高带宽,同时配置cdn(因为cdn配置后需要把app重新发一个版本才能用上,有个几天的延迟,iphone app审核你懂得).
 
顺便打个广告,app叫知米背单词,大家有空可以来学学英语 :) 

iftop与dstat-一次网站故障分析经历的更多相关文章

  1. 记录第n次网站渗透经历

    如标题所示,第x次实战获取webshell的经历是非常美好且需要记录的(毕竟开始写博客了嘛).这能够证明这一路来的学习没有白费,也应用上了该用的知识. 首先怎么说呢,某天去补天看了看漏洞,发现有一个网 ...

  2. Web服务网站故障分析常用的命令

    1.查看TCP连接状态netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn netstat -n | awk ‘/^tcp/ {++S[$NF]}; ...

  3. Linux Web服务器网站故障分析常用的命令

    系统连接状态篇: 1.查看TCP连接状态 netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn netstat -n | awk '/^tcp/ { ...

  4. stack overflow--技术问答网站

    转自:http://baike.baidu.com/link?url=eMR6Pwdk9IkauI5B3nZb2Yo3VUAcK6vQfrMpcSMPWqgH0ngqFkup3Gdr3t_s_yZe_ ...

  5. [原创]经历:asp.net oracle 部署问题以及解决方法

    精简的美丽...... 一.环境    开发环境        win7 64bit         Vs2010        Oracle 11g r2 64bit        <inst ...

  6. 经历:asp.net oracle 部署问题以及解决方法

    原文:[原创]经历:asp.net oracle 部署问题以及解决方法 精简的美丽...... 一.环境    开发环境        win7 64bit         Vs2010       ...

  7. 网站安全配置(Nginx)防止网站被攻击(包括使用了CDN加速之后的配置方法)

    原文链接:http://www.bzfshop.net/article/176.html 网站被攻击是一个永恒不变的话题,网站攻击的方式也是一个永恒不变的老套路.找几百个电脑(肉鸡),控制这些电脑同时 ...

  8. Apache-Tomcat的安装配置

    现在将使用Tomcat的一些经验和心得写到这里,作为记录和备忘.如果有朋友看到,也请不吝赐教. 1.首先是Tomcat的获取和安装. 获取当然得上Apache的官方网站下载,开源免费,而且带宽也足够. ...

  9. Tomcat安装配置

    Tomcat安装配置 很久没有通过博客对学习所得进行记录了. 现在将使用Tomcat的一些经验和心得写到这里,作为记录和备忘.如果有朋友看到,也请不吝赐教. 1.首先是Tomcat的获取和安装. 获取 ...

随机推荐

  1. Hadoop源码编译过程

    一.           为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...

  2. C# 超时工具类 第二版

    附源码,没有附测试demo 之前的工具类:C# 给某个方法设定执行超时时间 /// <summary> /// 超时工具 /// </summary> public class ...

  3. ActiveX(三)ActiveX 调用 Js

    在上一篇随笔: ActiveX(二)Js 监听 ActiveX中的事件  中,已经可以实现 Js 监听 ActiveX中的事件,至此.Js 和 ActiveX 已经可以实现双向通讯了.但是.这样的实现 ...

  4. 初入网络系列笔记(6)TFTP协议

    一.借鉴说明,本博文借鉴以下博文 1.锤子,FTP协议,http://www.cnblogs.com/loadrunner/archive/2008/01/09/1032264.html 2.suna ...

  5. bootstrap-简单实用的垂直手风琴滑动菜单列表特效

    前端: <html lang="zh"> <head> <meta charset="UTF-8"> <meta ht ...

  6. 记住 MVC里用formcollection接收form表单传来的值,表单属性必须有name为健!

    记住 MVC里用formcollection接收form表单传来的值,input属性必须有name为健! 调了一晚上!! 写个日志记下!!

  7. 自从升级到macOS后,整个人都不好了

    电脑一直莫名的随机卡死,各种软件都出现了一些崩溃和不稳定的情况. Siri就是个笑话,启用后就开始索引本地硬盘,不管你有没有正在工作:直到你启动Siri,会暂停一下,然后就算是你开在哪不动,过两分钟, ...

  8. 更新整理本人所有博文中提供的代码与工具(C++,2014.01)

    为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. C++ 1.<通用高性能 Windows Socket 组件 HP-Soc ...

  9. Java基础知识回顾

    Java回顾之I/O Java回顾之网络通信 Java回顾之多线程 Java回顾之多线程同步 Java回顾之集合 Java回顾之序列化 Java回顾之反射 Java回顾之一些基础概念 Java回顾之J ...

  10. 1-2 nodejs小节 文件读取

    1.表达式 在命令行输入  node回车后,可以在后边输入相应的表达式,进行运算操作   2.阻塞文件读取 var data=fs.readFileSync('input.txt', 'utf-8') ...