一次网站分析与解决的经历,最后结果虽然很简单但是过程比较曲折.记录一下:
今天访问网站首页十分缓慢,页面半天都加载不出来.于是上服务器看看情况,通过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. 30天React Native从零到IOS/Android双平台发布总结

    前言 本人有近十年的技术背景,除了APP开发之外对后端.前端等都比较熟悉,近期做一个APP项目需要IOS.Android两个平台都需要,只能硬着头皮上.其实很早就想开发APP也很早就接触Android ...

  2. 实战 ASP.NET Web API

    Web API 框架是一个面向 Http 协议的通信框架.相对于 WCF 而言,Web API 只面向于 Http 协议设计,而且没有 WCF 那么繁琐的配置.Web API 的开发类似于 ASP.N ...

  3. hostingEnvironment与宿主环境

    定义用来控制应用程序宿主环境的行为的配置设置. 配置如下 <hostingEnvironment idleTimeout="HH:MM:SS" shadowCopyBinAs ...

  4. 基于.net mvc 的供应链管理系统(YB-SCM)开发随笔

    作为园子里的伪新人,经常拜读众位大牛的帖子,一直有写点东西的想法. 今天终于下定决心去写这个系统的开发过程,由于本人文笔有限,不足之处多多海涵.

  5. 【转】Windows 窗口层次关系

    原文链接:undefined! 相信在Windows 下面编程的很多兄弟们都不是很清楚Windows 中窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所 ...

  6. 变通实现微服务的per request以提高IO效率

    *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...

  7. 使用Object.create 克隆对象以及实现单继承

    var Plane = function () { this.blood = 100; this.attack = 1; this.defense = 1; }; var plane = new Pl ...

  8. sharepoint 相关<httpHandlers>

    <add verb="GET,POST,HEAD,(GETSOURCE),(HEADSOURCE),(POSTSOURCE)" path="*.doc,*.docx ...

  9. We refined export to Excel for SharePoint

    http://sysmagazine.com/posts/208948/ http://sharepointwikipedia.blogspot.kr/2013/05/export-to-spread ...

  10. EF UoC

    The Repository Pattern with EF Code First & Dependency Injection in ASP.NET MVC3 Ray_Liang, 5 Ju ...