測試機房品質之上傳下載下傳速率測試
之前介紹了通過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來測試上傳下載下傳速率,就可以很直覺的看到每個節點,它去連接配接其他節點時,上傳和下載下傳的品質如何。當然機房的最終選擇還需要一些名額來考量,大家可以根據實際情況來取舍。