開發與維運

雲服務器/VPS性能和帶寬測試腳本,Linux跑分

這年頭VPS主機太多了,好多“二手”VPS開始橫行其道,讓人真假莫辨,想要購買某一個VPS主機,一般是先要看看這家的VPS主機的評測數據。
需要提醒的是,關於IO讀寫速度的測試,根據以往的經驗,像谷歌雲服務器、亞馬遜服務器等,IO讀寫速度都比較低,而SSD在IO方面表現出色。另外,國外的VPS主機的速度很大程度上取決於線路的好壞,並且晚上和白天的測試速度會差別比較大。

高性價比和便宜的VPS/雲服務器推薦:https://blog.zeruns.tech/archives/383.html

下面我彙總了幾個比較好用的測試腳本。

Superspeed.sh

一鍵測試服務器到國內的速度腳本Superspeed.sh :

wget https://raw.githubusercontent.com/oooldking/script/master/superspeed.sh
chmod +x superspeed.sh
sudo ./superspeed.sh

SuperBench.sh

一鍵檢測VPS的CPU、內存、負載、IO讀寫、機房帶寬和服務器類型等腳本SuperBench.sh:

wget -N --no-check-certificate https://raw.githubusercontent.com/oooldking/script/master/superbench.sh
sudo bash superbench.sh
#或者
curl -Lso- https://raw.githubusercontent.com/oooldking/script/master/superbench.sh | bash

Zench

Zench可以看作是Bench.sh 和 SuperBench的結合版本,加入 Ping 以及 路由測試 功能,會生成測評報告,可以很方便地分享給其他朋友看自己的測評數據 :

wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/ZBench/master/ZBench-CN.sh
sudo bash ZBench-CN.sh
#項目:https://github.com/FunctionClub/ZBench

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

unixbench

VPS性能綜合跑分工具unixbench:
Unixbench的主要測試項目有:系統調用、讀寫、進程、圖形化測試、2D、3D、管道、運算、C庫等系統基準性能提供測試數據。最新版本UnixBench5.1.3,包含system和graphic測試,如果你需要測試graphic,則需要修改Makefile。
不要註釋掉 GRAPHIC_TESTS = defined ,同時需要系統提供 x11perf 命令gl_glibs庫。本文腳本註釋了關於graphic的測試項(大多數VPS都是沒有顯卡或者是集顯,所以圖像性能無需測試),運行10-30分鐘後(根據CPU內核數量,運算時間不等)得出分數,越高越好。

UnixBench性能跑分受版本影響較大。UnixBench目前有不同的版本,而網上不少的版本也是經過人工修改過的,可能測試的項目不同導致的結果也會不同。大家在測試時記得找一個參照對比。

yum -y install wget screen      #for CentOS/Redhat
# apt-get -y install wget screen       #for Debian/Ubuntu
screen -S zeruns      #如果網路出現中斷,可以執行命令`screen -R zeruns`重新連接測試窗口
wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh
#備用   wget --no-check-certificate https://github.com/freehao123/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)。

Serverreview

Serverreview-benchmark綜合評測工具

這是一個老外寫的VPS主機綜合評測工具,主要評測的項目有VPS主機磁盤IO、內存讀寫、CPU性能以及Benchmark性能,還有美國、歐洲、亞洲等不同節點的下載速度。主頁:https://github.com/sayem314/serverreview-benchmark

腳本使用使用方法:

yum install curl -y
curl -LsO https://raw.githubusercontent.com/sayem314/serverreview-benchmark/master/bench.sh; chmod +x bench.sh && ./bench.sh -a share

mPing

一鍵測試回程Ping值工具:mPing

wget https://raw.githubusercontent.com/helloxz/mping/master/mping.sh
bash mping.sh

參數說明:

x% packet loss: 丟包率
min: 最低延遲
avg: 平均延遲
max: 最高延遲
mdev: 平均偏差

LemonBench

LemonBench 工具(別名LBench、檸檬Bench),是一款針對Linux服務器設計的服務器性能測試工具。通過綜合測試,可以快速評估服務器的綜合性能,為使用者提供服務器硬件配置信息。

#LemonBench 國內版:
curl -fsL https://ilemonra.in/LemonBench | sudo bash -s fast
#LemonBench 國際版:
curl -fsL https://ilemonra.in/LemonBenchIntl | sudo bash -s fast

推薦閱讀

Leave a Reply

Your email address will not be published. Required fields are marked *