器量大者,福泽必厚
全部博文(587)
分类: LINUX
2014-09-11 15:02:40
刚刚到公司,看到老板邮件:
The website speed of l***b was very low. It takes 16s to open an article. Could you please take a look? There is no problem for D** and g***z
显然是告诉我l***b网站的访问速度慢
于是登录zabbix监控系统查看,发现网络流量比平常大;
见附件:
显然网络流量突然增大,查找原因呗,开始我使用goaccess,没有像上一次那样有效,查不到那个地址占用太多的流量!
于是不得已手动分析l***b的日志文件,
我已经查到了l**.com_access.log文件是最大的日志文件,于是:
tail -n 10000 l**.com_access.log | awk '{print $1}'| sort | uniq -c | sort -nr | head
结果查到几个ip,死马当活马医啊
,将这几个ip 在防火墙给drop 掉了,结果流量一切如常!比较郁闷啊 ,如何才能查到流量大的源头?我原来看到过iptraf工具,据说很不错,我试了下,比较难上手,刚好和bob聊天,顺便咨询下了他,得知iftop比较好用!
于是安装iftop,yum不行的,只好源码了,安装过程中遇到问题如下:
checking how to call gethostbyaddr_r... 8 args, int return
checking gethostbyaddr_r usability... yes
checking where to find pcap.h... no idea
configure: error: can't find pcap.h
You're not going to get very far without libpcap.
[root@db1 iftop-0.17]# yum -y install libpcap-devel
即可configure、make、make install
在web服务器上,有如下的显示:
显然外面的client并没有给web服务器多少流量,流量主要发生在web和db之间,到底web和db之间发生了什么?
于是在db服务器上,执行tcpdump
tcpdump -s 1500 -w tcp.out port 3306
strings tcp.out>a.txt
vi a.txt 发现有很多的insert into
b***te 语句,并带有duplicate key的字眼。
见附件:
数数数目:
就几分钟的时间,这么多不成功的insert的,会不会是它引起的?
有个cron job里的shell里面执行php程序,shell脚本每分钟运行1次,和研发沟通后,将cron job注释掉(当然需要研发同事去查找原因),db和web的流量都恢复了正常:
web:
db:
iftop的相关说明,摘之互联网:
中间的<= =>这两个左右箭头,表示的是流量的方向。
TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量
过了大概10天左右,查看网络流量如下: