speedtest.py并发网络出口带宽测试


最近公司机房要搬迁,要对新机房的带宽进行速率测试,原来只能一个一个通过speedtest.py这个脚本一个一个测试,后来通过speedtest.py里面的脚本发现了全球所有的测试点,后来通过shell脚本并发的方式来压最大的网络带宽

通过speedtest.py可以查看所有测试的结点:

   urls = [
            '://www.speedtest.net/speedtest-servers-static.php',
            'http://c.speedtest.net/speedtest-servers-static.php',
            '://www.speedtest.net/speedtest-servers.php',
            'http://c.speedtest.net/speedtest-servers.php',
        ]

通过wget  http://c.speedtest.net/speedtest-servers.php 会下载一个全球所有测试点的ID号

id="2743"  url2="http://speed01-b.lasotel.net/speedtest/upload.php" host="speed01-a.lasotel.net:8080" />
<server url="http://lyon.speedtest.orange.fr/speedtest/upload.php" lat="45.7669" lon="4.8342" name="Lyon" country="France" cc="FR" sponsor="Orange" id="4273"  host="lyon.speedtest.orange.fr:8080" />
<server url="http://lyon.lafibre.info/speedtest/upload.php" lat="45.7669" lon="4.8342" name="Lyon" country="France" cc="FR" sponsor="LaFibre.info" id="2023"  host="lyon.lafibre.info:8080" />

现在将全国电信,联通,移动的ID号汇总如下:

中国电信:

cn_Telecom_srv_port.txt

6144
4751
5563
4595
5396
6435
12637
3633
4624
6592
5530
6132
6168
9151
10305
5081
6852
6894


中国联通:

cn_union_srv_port.txt

5460
9484
5017
5505
5145
6302
5475
12868
12538
5992
5509
4690
5131
4863
13704
5446
5724
5083
11444
2461
5485
5300
5750
5726
7230
5097
4870
5103
3891
5674
10201
5985


中国移动:

cn_mobile_srv_port.txt

5292
4377
5122
3927
4665
4575
4647
6715


中国香港:

cn_HK_srv_port.txt

2993
10267
12990
1536
8170



下面再通过shell脚本来并发测试各个运营商的网速

input_ip_num_test.sh

#!/bin/bash
#Usage $0 num 
#Max num is 63
for i in  `cat cn_srv_port|tail -$1` 
do


python ./speedtest.py --server $i >>./log.log &


done


再通过网卡或zabbix可以查看到网卡的数据流量,也可以看到最大值和最小值

net_traffic.sh

#!/bin/bash
#file name:mon_net_straff.sh
#usage1: bash mon_net_straff eth0
#usage2: ./mon_net_straff eth0


while [ "1" ]
do
eth=$1
RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
sleep 1
RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
clear
echo  -e  "\t RX `date +%k:%M:%S` TX"
RX=$((${RXnext} - ${RXpre}))
TX=$((${TXnext} - ${TXpre}))
if [[ $RX -lt 1024 ]];then
RX="${RX}B/s"
elif [[ $RX -gt 1048576 ]];then
RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
else2017-08-21 11:59:18
RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
fi
if [[ $TX -lt 1024 ]];then
TX="${TX}B/s"
elif [[ $TX -gt 1048576 ]];then
TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
else
TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
fi
echo -e "$eth \t $RX   $TX "
done


以上脚本已测试完成


分割线
感谢打赏
江西数库信息技术有限公司
YWSOS.COM 平台代运维解决方案
 评论
 发表评论
姓   名:

Powered by AKCMS