服务器性能工具箱 (1)- 网络带宽

工欲善其事必先利其器,服务器端性能工具箱从“器”出发,本系列文章介绍我遇到的听到的一些关于性能优化的故事

有时候客户端出现访问慢无法访问偶尔无法打开,有很大的延迟丢包现象,我们查遍了服务器端组件,web service,database,服务器负载,问题仍没有解决,这时候你可能需要考虑一下网络带宽 ​ 怎么查看你的带宽是否有问题,介绍两个网络带宽相关的工具:nload,ethstatus,下面以nload为例,ethstatus安装及使用方式可以自行搜索

在Ubuntu下安装非常简单:sudo apt-get install nload 安装后使用:nload eth1,eth1为你想检测的网络接口,会出现如下图:

nload example

上面是所监测接口进入的流量,下面是所监测接口出去的流量,用#现实的流量图会实时变化,有当前流量,平均流量,最小流量,最大流量,综合流量 和从服务商协议流量做对比,如果已经达到的最大值,需要关注了

确定是流量问题后,接下来需要看是什么导致流量增加了,有几种情况: 正常的业务增长,这是好事! 是否上了耗费流量的业务?服务器上host了image service?有一个推广的视频?如果是,可以考虑CDN等 静态资源版本使用问题?我们产品最初遇到过每一次版本升级后流量规律性的有一个峰值,由于静态资源(js等)版本未正确使用,每次升级都重新获取所有资源,集中的升级导致流量激增 DDOS?你摊上事儿了,准备接招吧,留意邮件!(后面我们会有一遍文章单独分析)

如果确定是业务增长所致,那真是快乐的事情,赶紧增加带宽吧,其它情况如果不能尽快解决,建议先增加带宽,保证用户体验,然后尽快真对具体问题做优化处理

当然,现在我们一般都使用云服务,比如aws,aliyun等,云服务会提供非常详细的带宽分析图,比如aws的CloudWatch,可以配合nload使用(并不是每一个dev都有console管理权限)。国内aliyun是预付费,带宽有按需(用多少付多少)也有固定带宽,一般我们都是选择固定带宽,避免高额费用产生(国内的带宽费用非常昂贵),aws的带宽是按需使用

除了云服务商提供的简单的带宽分析之外,我们要想对业务全面了如指掌,需要对服务的VPC做更加详细的监控,了解出入口流量,业务模块间的数据流动很重要,这时候我们可以使用第三方的监控工具协助,比如zabbix,具体怎么使用自行解决,此处不做描述

清楚了VPC内部及外部的流量情况以及支撑的最大值,我们就能针对实际的业务模块做调整及优化

后面我会持续更新性能工具箱,一次专注描述一个点,请保持关注

大白鲸 干货不断 值得关注

微信号:belugas

微信公众号

comments powered by Disqus