這年頭VPS主機太多了,好多「二手」VPS開始橫行其道,讓人真假莫辨,想要購買某一個VPS主機,一般是先要看看這家的VPS主機的評測數據。之前分享VPS主機時都會給VPS的效能與速度測試報告,這次就來專門整理相關的測試工具。
一來為自己做一個備忘錄,以後測試VPS就不用滿大街地找百度要命令了,二來給沒有用過的朋友一點幫助,這些工具都是好多站長朋友通用的,自己購買的VPS主機到底值不值這個價格,用這幾個工具一測試便知,而且操作簡單,只需要幾個指令即可完成。
需要提醒的是,關於IO讀寫速度的測試,根據以往的經驗,像是Google雲端伺服器、亞馬遜伺服器等,IO讀寫速度都比較低,而SSD在IO方面表現出色。另外,國外的VPS主機的速度很大程度取決於線路的好壞,而且晚上和白天的測試速度會差異比較大。
更多的關於VPS教學和經驗方法,你可以看看:
- VPS.net的VPS主機使用體驗-帳號驗證與VPS主機效能速度評估
- Vestacp問題:SSL憑證,HTTP/2,網站統計,線上檔案管理與301重定向
- WHMCS整合Vultr自動開通啟動VPS主機方法-實現在WHMCS上分銷VPS
PS:更新記錄:
1.unixbench腳本詳細介紹,請看:
。 2020.9.202.更新了LemonBench腳本地址。 2020.1.20
3.補充VPS主機CN2線路測試方法:鑑別真假CN2線路主機參考手冊。 2017.8.20
零、常用偵測腳本匯總
為方便使用,我在這裡匯總一下用於VPS各類檢測的腳本,有關腳本的詳細使用及說明可參閱下文的內容。
1、Superspeed.sh
一鍵測試伺服器到國內的速度腳本Superspeed.sh :
wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh chmod +x superspeed.sh ./superspeed.sh
2、bench.sh
一鍵偵測VPS的CPU、記憶體、負載、IO讀寫、機房頻寬等腳本:bench.sh
#命令1: wget -qO- bench.sh | bash #或者 curl -Lso- bench.sh | bash #命令2: wget -qO- 86.re/bench.sh | bash #或者 curl -so- 86.re/bench.sh | bash #备注: bench.sh 既是脚本名,同时又是域名。如果以上失效,请使用以下地址下载再执行脚本: #下载地址: https://github.com/teddysun/across/blob/master/bench.sh
3、SuperBench.sh
可以看作bench.sh強化版:SuperBench.sh
新增 Virt 檢測伺服器類型參數。 常見 openvz,kvm,獨服都能偵測出來。同時整合上面的Superspeed.sh一鍵測試伺服器到國內的速度腳本:
wget -qO- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash #或者 curl -Lso- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash
4、Zench
Zench可以看作是Bench.sh 和 SuperBench的結合版本,加入 Ping 以及 路由測試 功能,會產生測評報告,可以很方便地分享給其他朋友看自己的測評數據 :
wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh && bash ZBench-CN.sh #项目:https://github.com/FunctionClub/ZBench
5、speedtest-cli
一鍵頻寬檢測工具:speedtest-cli
安裝命令:
sudo apt-get update apt-get install python-pip sudo pip install speedtest-cli #CentOS yum update yum -y install epel-release yum install python-pip pip install speedtest-cli
使用方法:
speedtest-cli #后面也可以接以下参数: -h, --help show this help message and exit --share 分享你的网速,该命令会在speedtest网站上生成网速测试结果的图片。 --simple Suppress verbose output, only show basic information --list 根据距离显示speedtest.net的测试服务器列表。 --server=SERVER 指定列表中id的服务器来做测试。 --mini=MINI URL of the Speedtest Mini server --source=SOURCE Source ip address to bind to --version Show the version number and exit
6、unixbench
VPS性能綜合跑分工具:unixbench
命令如下:
wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh chmod +x unixbench.sh ./unixbench.sh #如果出现错误提示:Failed to download UnixBench5.1.3.tgz, please download it to /opt/unixbench directory manually and try again.手动下载: cd /opt/unixbench wget https://do.wzfou.net/wzfou/UnixBench5.1.3.tgz
7、mPing
一鍵測試回程Ping值工具:mPing
wget https://raw.githubusercontent.com/helloxz/mping/master/mping.sh bash mping.sh
8、Serverreview
Serverreview-benchmark綜合評測工具
這是一個老外寫的VPS主機綜合評測工具,主要評測的專案有VPS主機磁碟IO、記憶體讀寫、CPU效能以及Benchmark效能,還有美國、歐洲、亞洲等不同節點的下載速度。首頁:https://github.com/sayem314/serverreview-benchmark
腳本使用使用方法:
#简略版 yum install curl -y curl -LsO git.io/bench.sh; chmod +x bench.sh && ./bench.sh -a share #完整版 yum install curl -y curl -LsO git.io/bench.sh; chmod +x bench.sh && ./bench.sh -a share
9、LemonBench
LemonBench 工具(別名LBench、檸檬Bench),是一款針對Linux伺服器設計的伺服器效能測試工具。透過綜合測試,可以快速評估伺服器的綜合效能,為使用者提供伺服器硬體配置資訊。
#脚本备用下载:https://www.ucblog.net/shell/LemonBench.sh #LemonBench 国内版: curl -fsL https://ilemonra.in/LemonBench | bash -s fast #LemonBench 国际版: curl -fsL https://ilemonra.in/LemonBenchIntl | bash -s fast
一、VPS速度測試工具
線上測試工具。 使用線上測試工具,可以方便取得伺服器的回應時間,這招對於國外的VPS特別有效果。以下是蒐集整理的實用線上網站速度測試工具網站:
HTTP://平.吃哪種.com/
HTTP://嗚嗚嗚.IP IP.net/平.PHP
HTTPS://嗚嗚嗚.17測.com/
HTTP://嗚嗚嗚.Web卡卡.com/
HTTP://測.cloud.360.才能/
這幾個線上測速工具各有各的優缺點,推薦使用ipip.net測試伺服器IP和路由追踪,用17ce.com測試網頁加載速度,用ping.chinaz.com用國內不同地方的Ping值。
本地測試軟體。 這裡推薦使用WinMTR,這是一款方便易用的路由追蹤工具。軟體可幫助使用者直接查看各節點的回應時間及丟包率,非常適合windows下客戶做路由追蹤及PING進行測試。
下載位址:https://www.ucblog.net/wzfou/WinMTR-CN-IP.zip
專案首頁:https://github.com/oott123/WinMTR
附地圖版:https://cdn.ipip.net/17mon/besttrace.exe
啟用WinMTR,點選可以更新IP位址。
輸入你想要追蹤的網域或伺服器IP,接著你就可以看到資料包經過的節點還有丟包等情況,同時支援匯出文字。
相關的參數說明如下:
Hostname:到目的伺服器要經過的每個主機IP或名稱
Nr:經過節點的數量;以上圖百度為例子:總共要經過10個節點,其中第一個是出口的路由器
Loss% :ping 封包回復失敗的百分比;藉此判斷,那個節點(線路)出現故障,是伺服器所在機房還是國際路由幹路
Sent:已傳送的資料包數量
Recv:成功接收的數據包數量
Best:回應時間的最小值
Avrg:平均回應時間
Worst:回應時間的最大值
Last:最後一個資料包的回應時間
PS:2017年9月12日更新,Superspeed.sh 一鍵測試伺服器到國內的速度腳本:
wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh
chmod +x superspeed.sh
./superspeed.sh
二、VPS性能測試工具
手動偵測指令。 直接使用指令:cat /proc/cpuinfo 或 lscpu,你就可以看到你所使用的VPS的CPU配置如何。
偵測出來的CPU,你也可以進入這個網站:http://www.cpubenchmark.net/cpu_list.php,查看CPU的效能到底排行多少位,至少讓自己心裡有個數。
另外一個手動指令測試磁碟IO:
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
手動指令測試VPS網路:
wget http://cachefly.cachefly.net/100mb.test
一鍵偵測腳本。 這裡有一個一鍵偵測VPS的CPU、記憶體、負載、IO讀寫、機房頻寬等。
命令1:
wget -qO- bench.sh | bash
或者
curl -Lso- bench.sh | bash
命令2:
wget -qO- 86.re/bench.sh | bash
或者
curl -so- 86.re/bench.sh | bash
备注:
bench.sh 既是脚本名,同时又是域名。如果以上失效,请使用以下地址下载再执行脚本:
下载地址:
https://github.com/teddysun/across/blob/master/bench.sh
PS:2017年9月27日更新,SuperBench.sh可以看作bench.sh強化版,新增 Virt 偵測伺服器型參數,常見 openvz,kvm,獨服都能偵測出來。同時整合上面的Superspeed.sh一鍵測試伺服器到國內的速度腳本:
wget -qO- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash
或者
curl -Lso- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash
執行一鍵檢測腳本後,會顯示當前測試的各種系統信息,取自世界多處的知名數據中心的測試點進行下載速度測試,支持IPv6 下載測速,IO 測試三次並顯示平均值,由於測試點都在國外,所以國內的伺服器下載速度測試可能會失敗。
一鍵頻寬偵測工具:speedtest-cli,官網:https://github.com/sivel/speedtest-cli,安裝指令:
sudo apt-get update
apt-get install python-pip
sudo pip install speedtest-cli
使用方法:
speedtest-cli
#后面也可以接以下参数:
-h, --help show this help message and exit
--share 分享你的网速,该命令会在speedtest网站上生成网速测试结果的图片。
--simple Suppress verbose output, only show basic information
--list 根据距离显示speedtest.net的测试服务器列表。
--server=SERVER 指定列表中id的服务器来做测试。
--mini=MINI URL of the Speedtest Mini server
--source=SOURCE Source ip address to bind to
--version Show the version number and exit
VPS性能綜合跑分工具。 UnixBench是一個類別unix系(Unix,BSD,Linux)統下的效能測試工具,一個開源工具,被廣泛用與測試linux系統主機的效能。 Unixbench的主要測試項目有:系統呼叫、讀寫、流程、圖形化測試、2D、3D、管道、運算、C庫等系統基準效能提供測試資料。命令如下:
wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh
chmod +x unixbench.sh
./unixbench.sh
測試項目說明如下:
Dhrystone 2 using register variables
此項用於測試string handling,因為沒有浮點操作,所以深受軟體和硬體設計(hardware and software design)、編譯和連結(compiler and linker options )、程式碼最佳化(code optimazaton)、對記憶體的cache(cache memory)、等待狀態(wait states)、整數資料型態(integer data types)的影響。Double-Precision Whetstone
這項測試浮點數操作的速度和效率。這項測試包括幾個模組,每個模組都包括一組用於科學計算的操作。覆蓋面很廣的一系列 c 函數:sin,cos,sqrt,exp,log 被用於整數和浮點數的數學運算、陣列存取、條件分支(conditional branch)和程式呼叫。此測試同時測試了整數和浮點數算術運算。Execl Throughput
此測試檢視每秒鐘可以執行的 execl 系統呼叫的次數。 execl 系統呼叫是 exec 函數族的一員。它和其他一些與之相似的命令一樣是 execve() 函數的前端。File copy
測試從一個檔案傳送資料到另一個檔案的速率。每次測試使用不同大小的緩衝區。這項針對檔案 read、write、copy 操作的檢定統計規定時間(預設是 10s)內的檔案 read、write、copy 操作次數。Pipe Throughput
管道(pipe)是進程間交流的最簡單方式,這裡的Pipe throughtput 指的是一秒鐘內一個進程可以向一個管道寫512 字節資料然後再讀回的次數。需要注意的是,pipe throughtput 在實際編程中沒有對應的真實存在。Pipe-based Context Switching
這個測試兩個進程(每秒鐘)透過一個管道交換一個不斷增長的整數的次數。這一點很向現實程式設計中的一些應用,這個測試程式先創建一個子進程,然後再和這個子進程進行雙向的管道傳輸。Process Creation
測試每秒鐘一個進程可以建立子進程然後收回子進程的次數(子進程一定立即退出)。 process creation 的關注點是新進程進程控制區塊(process control block)的建立和記憶體分配,即一針見血地關注記憶體頻寬。一般說來,這個測試被用來對作業系統進程創建這個系統呼叫的不同實現的比較。System Call Overhead
測試進入和離開作業系統核心的代價,即一次系統呼叫的代價。它利用一個重複地呼叫 getpid 函數的小程式達到此目的。Shell Scripts
測試一秒鐘內一個進程可以並發地開始一個 shell 腳本的 n 個拷貝的次數,n 一般取值 1,2,4,8。 (我在測試時取 1, 8)。這個腳本對一個資料檔案進行一系列的變形操作(transformation)。
根據你的VPS表現不同,一般需要半小時以上才會得到跑分結果,分數越高就表示表現越好。 (點擊放大)
這裡再提供另外一個VPS速度與性能綜合測試工具,用它可以一鍵測試VPS主機的基本配置、機房頻寬、Ping值、IO性能、UnixBench跑分等,測試過程花費的時間比較長,需要耐心等待。
#普通模式(测试机器配置, IO ,带宽和全国 ping 值):
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh
简单模式(测试机器配置, IO ,带宽和全国 ping 值):
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh s
完全模式(测试机器配置, IO ,带宽、全国 ping 值、unixbench跑分):
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/91yuntest/master/test_91yun.sh && bash test_91yun.sh a
三、VPS主機真偽檢測
偵測VPS真實記憶體。 先用指令查看真實的記憶體:free -m,接著切換到記憶體目錄:cd /dev/shm,然後進行資料寫入,標識count=100 為寫入100M,你可以修改為主機商標註的記憶體上限一點點:
dd if=/dev/zero of=./memtest bs=1M count=100
#注意完成后,执行删除:
rm ./memtest
一旦出現錯誤:dd: error writing ‘./memtest’: No space left on device,就說明記憶體大小低於我們測試的數值,你可以繼續降低數值,直到得到真實的記憶體。
偵測VPS虛擬技術。 指令如下:
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/code/master/vm_check.sh && bash vm_check.sh
測試結果會顯示是KVM、Xen還是OpenVZ。
自建speedtest測試。 這個適合VPS主機商,方便給客戶測試從伺服器到使用者本地的下載速度。
專案首頁:https://github.com/adolfintel/speedtest
修改版本:https://www.ucblog.net/wzfou/speedtest-lite.zip
將程式上傳到伺服器上,客戶開啟後點選就可以測試得到伺服器的速度了。
四、總結
UnixBench性能跑分受版本影響較大。 UnixBench目前有不同的版本,而網路上不少的版本也是經過人工修改過的,可能測試的項目不同導致的結果也會不同。大家在測驗時記得找一個參考對比。
IO讀寫速度受母機的影響比較大。 有一些超售的伺服器,由於用戶眾多,IO速度很慢,像這樣的就要小心你的「鄰居」了。使用一鍵腳本偵測時,如果用在國內的VPS時,在網路測速中會出現卡死的情況。