天天看点

测试机房质量之上传下载速率测试

 测试机房质量之上传下载速率测试

之前介绍了通过Ping值来测试机房质量,但这仅仅是测试的一部分。我们想要考察机房是否符合自己的业务需求,它的线路情况好不好,稳定不稳定,则还是需要测试它的上传下载速率情况。

由于前面的文章我有介绍虚拟用户的vsftp部署,在这里正好可以用上,我们就用FTP来进行测试,而vsftp的日志里面的信息足以归纳出我们想要的结果。首先我们来根据一个基本的环境来做测试前的准备工作。假设我们全国选了10个机房,这些工作可能是要在每个机房提供的测试服务器上都要做的。

1. 建立500M测试文件

用admin用户来测试。

在ftp的admin用户的家目录下创建500M文件

dd if=/dev/zero of=/home/ftpsite/admin/bigfile bs=1M count=500

2. 创建脚本(大家可以根据自己的情况修改)

vi lftpshell

#!/bin/bash

ftp_server="192.168.18.9"  # 目的Ftpserver IP地址

username="admin"  # 用户名

password="1"       # 密码

download_file_name=""  # 要下载的文件名

lftp <<!

open ftp://${ftp_server} -p 21 -u ${username},${password}   # -p 制定端口,和你ftp监听的端口保持一致

lcd /root/  # 本地目录

#mput a b

get $download_file_name   

rm -f $download_file_name  

put $download_file_name  

exit

!

rm -f "/root/ ${download_file_name}"  # 删除从ftp上下载到本地目录的文件

3. 设置到crontab中自动运行

vi /etc/crontab

编辑crontab,加入

0 */1 * * * root sh /root/software/lftpshell  # 表示每隔一小时,在整点钟运行 lftpshell 脚本。

4. 定时查看ftp日志文件

more /var/log/vsftpd.log

网通,电信FTP互测

    在测试中我们可能会遇到这样的问题,例如我们在测试北京网通的一个机房时,我们会让他去全国各个我们选择的待测机房节点去上传和下载我们事先创建好的测试文件。这样就可能出现一个问题,比如我们的测试文件大小是1000M,我们的测试周期为一小时,也就是每隔一小时会测不同的机房,这时候你会发现,网通连网通的时候,这个1000M的测试文件可能10分钟就上传或下载完了,而网络连电信的时候即使1个小时的时间也未必能完成测试过程,这样就会影响了连接下一个机房的测试,从而使整个测试出现混乱,所以我们要针对这种情况做一些修改。

1.      建立测试文件

为了避免跨网连接时速率较慢,上传和下载测试文件分别分为两个来创建

1.1 创建用于下载的文件(在ftp服务器端创建)

在ftp的admin用户的家目录下创建1000M文件(用于电信连电信或网通连网通时所要下载的)

dd if=/dev/zero of=/home/ftpsite/admin/test.txt bs=100M count=10

再创建一个10M的文件(用于电信连网通或网通连电信时所要下载的)

dd if=/dev/zero of=/home/ftpsite/admin/test1.txt bs=1M count=10

1.2  创建用于上传的文件(可以任意指定目录,最后和脚本中的本地目录对应即可,在ftp客户端创建)

在root家目录下创建1000M文件(用于电信连电信或网通连网通时所要上传的)

dd if=/dev/zero of=/root/hello.txt bs=100M count=10

再创建一个10M的文件(用于电信连网通或网通连电信时所要上传的)

d dd if=/dev/zero of=/root/hello1.txt bs=1M count=10

2. 创建脚本

这里以电信IDC上的脚本为例

vi lftpshell_dianxin  (用于连接电信服务器的脚本)

download_file_name="test.txt"  # 要下载的文件名(1000M的)

upload_file_name="hello.txt" # 要上传的文件名 (1000M的)

lcd /root/   # 本地目录

get $download_file_name    # 下载指定文件

put $ upload_file_name      # 上传指定文件

rm -f $ upload_file_name     # 最后删除上传后的文件

vi lftpshell_wangtong  (用于连接网通服务器的脚本)

ftp_server="192.168.18.7"  # 目的Ftpserver IP地址

download_file_name="test1.txt"  # 要下载的文件名 (10M的)

upload_file_name="hello1.txt" # 要上传的文件名 (10M的)

0 */1 * * * root sh /root/software/lftpshell_dianxin  # 表示每隔一小时,在整点钟运行 lftpshell_dianxin脚本。

30 */1 * * * root sh /root/software/lftpshell_wangtong  # 表示每隔一小时,在半点钟运行lftpshell_wangtong 脚本。

网通,电信FTP互测(匿名登录)

当然也不需要非得用虚拟用户的vsftp,我们用匿名的FTP也可以测试,大家可以根据情况来自己选择,下面就来介绍一下:

1.      yum安装vsftp

yum install vsftpd

2.      配置匿名FTP

vi /etc/vsftpd/vsftpd.conf

修改配置文件

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

listen=YES

pasv_min_port=50000

pasv_max_port=60000

pasv_enable=yes

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

dual_log_enable=YES

vsftpd_log_file=/var/log/vsftpd.log

ftp_username=ftp

vi /etc/sysconfig/iptables

添加:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT # 21是监听端口,在vsftpd.conf中设置的listen [端口]对应

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 50000:60000 -j ACCEPT #传输数据用50000----60000之间的端口 和vsftpd.conf中的pasv_min_port=50000 和pasv_max_port=60000 对应

重启iptables

3.      建立服务器端测试文件

匿名登录默认目录是/var/ftp/,为了提供上传权限需进入pub目录下创建测试文件,因为默认/var/ftp/目录没有上传权限

3.1 创建用于下载的文件(在ftp服务器端创建)

在/var/ftp/pub/下创建1000M文件(用于电信连电信或网通连网通时所要下载的)

dd if=/dev/zero of=/var/ftp/pub/admin/test.txt bs=100M count=10

dd if=/dev/zero of=/var/ftp/pub/admin/test1.txt bs=1M count=10

4.      建立匿名ftp脚本

ftp_server="121.14.34.52"    

username="ftp" # 用户名为ftp

password="" # 密码为空

download_file_name="test.txt"

upload_file_name="hello.txt"

open ftp://${ftp_server} -p 21 -u ${username},${password}

lcd /root/ 

cd pub # 进入pub目录下

get $download_file_name

put $upload_file_name

rm -f $upload_file_name

rm -f "/root/${download_file_name}"

    这样通过FTP来测试上传下载速率,就可以很直观的看到每个节点,它去连接其他节点时,上传和下载的质量如何。当然机房的最终选择还需要一些指标来考量,大家可以根据实际情况来取舍。