引言
隨著云計算的普及,企業對于云資源的需求日益增加,而選擇一款性能強勁、穩定性高的云實例成為了關鍵。華為云 Flexus X 實例作為華為云最新推出的高性能實例,旨在為用戶提供更強的計算能力和更高的網絡帶寬支持。最近華為云 828 B2B 企業節正在舉辦,Flexus X 實例的促銷也非常給力,大家可以去看看。為了幫助用戶更好地了解其性能表現,我們通過一系列詳盡的測試,對 Flexus X 實例的各項性能進行了全面評測,包括 CPU 性能、內存性能、磁盤 I/O 性能以及網絡性能。
本文的目的是通過實測數據來分析 Flexus X 實例的表現,以幫助用戶在選擇云服務時做出更明智的決策。
1. 測試環境與方法介紹
為了確保評測結果的準確性與公正性,我們在標準化的環境下進行了多次性能測試。以下是測試環境的配置以及所使用的工具和參數介紹。
1.1 測試工具選擇
在云實例性能評測中,選擇合適的測試工具至關重要。本次評測中,我們使用了開源的多線程性能測試工具 **sysbench**。sysbench 是一款廣泛用于評估系統、數據庫和硬件性能的工具,支持多種測試模式,如 CPU、內存、磁盤 I/O 以及數據庫基準測試。憑借其靈活性和易用性,sysbench 能夠幫助用戶快速識別性能瓶頸并優化系統效率,是系統管理員和開發者的理想選擇。
1.2 測試參數設置
為了確保結果的客觀性,我們在測試中使用了統一的參數配置。具體包括:
CPU 測試:采用 sysbench 的“cpu”模塊,執行固定數量的計算任務,以評估多核的計算能力。
內存測試:使用 sysbench 的“memory”模塊,通過大量的內存讀寫操作測試內存的吞吐量。
磁盤 I/O 測試:使用 sysbench 進行順序讀寫和隨機讀寫測試,評估磁盤的響應速度和吞吐能力。
2. sysbench 的安裝
2.1 安裝文件下載
可以采用以下命令獲取安裝文件
wget https://github.com/akopytov/sysbench/archive/refs/tags/1.0.20.tar.gz
不過由于網絡限制,直接用 wget 命令下載沒有成功。
于是采用先下載到本地,然后上傳到服務器的方法。
在 github 上下載 sysbench-1.0.20.tar.gz 文件,再使用 XFTP 上傳到服務器/usr/local/sysbench 目錄。
執行解壓命令
tar -zxf sysbench-1.0.20.tar.gz
2.2 構建安裝編譯
構建 sysbench 的時候,碰到了問題,主要是缺少了依賴,也就 Euler 系統默認沒有安裝相關依賴,需要手動安裝一下。
依賴 1:automake
[root@flexusx-e724 sysbench-1.0.20]# ./autogen.sh
automake 1.10.x (aclocal) wasn't found, exiting
yum install automake
依賴 2:libtool
[root@flexusx-e724 sysbench-1.0.20]# ./autogen.sh
libtoolize 1.4+ wasn't found, exiting
yum install libtool
./autogen.sh
由于本次測試不涉及到數據庫的測試,而 sysbench 默認需要服務器,使用./configure 默認安裝就會報錯。
ERROR: cannot find MySQL libraries. If you want to compile with MySQL support,
please install the package containing MySQL client libraries and headers.
On Debian-based systems the package name is libmysqlclient-dev.
On RedHat-based systems, it is mysql-devel.
If you have those libraries installed in non-standard locations,
you must either specify file locations explicitly using
--with-mysql-includes and --with-mysql-libs options, or make sure path to
mysql_config is listed in your PATH environment variable. If you want to
disable MySQL support, use --without-mysql option.
需要增加配置參數,--without-mysql,不安裝對 mysql 數據庫的支持。
./configure --without-mysql
后面再進行 make 編譯
# make -j
# make install
這樣就完成了對 sysbench 的安裝。
[root@flexusx-e724 sysbench-1.0.20]# sysbench
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Reading the script from the standard input:
3. CPU 性能評測
在云計算中,CPU 性能直接影響到計算密集型任務的執行效率。Flexus X 實例配備了最新一代的處理器,具備較高的主頻和多核支持。我們通過 sysbench 的 cpu 模塊對其進行了測試,針對多核的計算能力進行了測評。
評測命令
sysbench --threads=4 --time=60 --report-interval=5 cpu run
上述命令用于運行 sysbench 的 CPU 性能測試,并指定了多個參數:
?--threads=4:設置線程數為 4,即同時使用 4 個線程進行測試,模擬多線程的運行環境。
?--time=60:測試持續時間為 60 秒。
?--report-interval=5:每 5 秒輸出一次測試報告,顯示當前的性能情況。
?cpu run:表示運行 sysbench 的 CPU 測試模塊,用以評估 CPU 的計算能力。
該命令通過多線程和固定時間的測試,幫助用戶了解 CPU 在高負載下的性能表現。
命令執行結果
[root@flexusx-e724 sysbench-1.0.20]# sysbench --threads=4 --time=60 --report-interval=5 cpu run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 4
Report intermediate results every 5 second(s)
Initializing random number generator from current time
Prime numbers limit: 10000
Initializing worker threads...
Threads started!
[ 5s ] thds: 4 eps: 11665.83 lat (ms,95%): 0.35
[ 10s ] thds: 4 eps: 11681.04 lat (ms,95%): 0.35
[ 15s ] thds: 4 eps: 11685.81 lat (ms,95%): 0.35
[ 20s ] thds: 4 eps: 11654.99 lat (ms,95%): 0.35
[ 25s ] thds: 4 eps: 11658.59 lat (ms,95%): 0.35
[ 30s ] thds: 4 eps: 11680.61 lat (ms,95%): 0.35
[ 35s ] thds: 4 eps: 11680.39 lat (ms,95%): 0.35
[ 40s ] thds: 4 eps: 11696.60 lat (ms,95%): 0.35
[ 45s ] thds: 4 eps: 11697.60 lat (ms,95%): 0.35
[ 50s ] thds: 4 eps: 11683.61 lat (ms,95%): 0.35
[ 55s ] thds: 4 eps: 11686.18 lat (ms,95%): 0.35
CPU speed:
events per second: 11678.94
General statistics:
total time: 60.0016s
total number of events: 700772
Latency (ms):
min: 0.34
avg: 0.34
max: 9.32
95th percentile: 0.35
sum: 239884.73
Threads fairness:
events (avg/stddev): 175193.0000/106.72
execution time (avg/stddev): 59.9712/0.00
在多核測試中,我們調動了 Flexus X 實例的所有可用核,測試其并行計算能力。隨著核數的增加,CPU 的總吞吐量顯著提升。對于需要多線程處理的大規模并行任務,如視頻編碼、數據分析等,Flexus X 實例表現出色,能夠有效減少任務的執行時間。
4. 內存性能評測
內存的讀寫速度對很多應用的性能有著直接影響,尤其是在處理大規模數據集時,內存的吞吐量決定了數據處理的效率。通過 sysbench 的 memory 模塊,我們對 Flexus X 實例的內存性能進行了詳細測試。
4.1 內存讀取性能
在內存讀取測試中,Flexus X 實例展現了快速的讀取能力,尤其是在處理大量小數據塊時,實例能夠迅速響應并讀取數據。這使得在大數據分析和實時應用場景中,內存性能能夠支撐系統的高效運行。
內存讀取評測命令
sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=read --memory-access-mode=rnd run
上述命令用于運行 sysbench 的內存性能測試,并指定了多個參數:
memory:表示運行 sysbench 的內存測試模塊。
--memory-block-size=8K:每次操作的內存塊大小為 8KB。
--memory-total-size=10G:測試過程中讀寫的內存總量為 10GB。
--memory-oper=read:執行內存讀取操作,專注于讀取性能的評估。
--memory-access-mode=rnd:內存訪問模式為隨機(random),即隨機訪問內存地址進行讀操作。
該命令通過模擬隨機讀操作,評估內存在高負載下的隨機讀性能表現。
評測結果如下
[root@flexusx-e724 sysbench-1.0.20]# sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=read --memory-access-mode=rnd run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Running memory speed test with the following options:
block size: 8KiB
total size: 10240MiB
operation: read
scope: global
Initializing worker threads...
Threads started!
Total operations: 1310720 (289931.66 per second)
10240.00 MiB transferred (2265.09 MiB/sec)
General statistics:
total time: 4.5191s
total number of events: 1310720
Latency (ms):
min: 0.00
avg: 0.00
max: 0.03
95th percentile: 0.00
sum: 4385.45
Threads fairness:
events (avg/stddev): 1310720.0000/0.00
execution time (avg/stddev): 4.3855/0.00
4.2 內存寫入性能
內存寫入測試中,Flexus X 實例同樣表現優異,數據寫入速度較快且穩定。對于需要頻繁數據寫入的任務,如日志記錄、數據庫操作等,Flexus X 的內存性能表現足夠支持高頻寫入操作,且沒有出現明顯的延遲或瓶頸。
內存寫入評測命令
sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=write run
上述命令用于運行 sysbench 的內存寫入性能測試,并指定了以下參數:
memory:表示運行 sysbench 的內存測試模塊。
--memory-block-size=8K:每次操作的內存塊大小為 8KB。
--memory-total-size=10G:測試過程中寫入的內存總量為 10GB。
--memory-oper=write:執行內存寫入操作,專注于評估寫入性能。
該命令通過模擬大量內存寫入操作,評估系統在處理大量數據寫入時的內存性能表現。
評測結果如下
[root@flexusx-e724 sysbench-1.0.20]# sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=write run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 1
Initializing random number generator from current time
Running memory speed test with the following options:
block size: 8KiB
total size: 10240MiB
operation: write
scope: global
Initializing worker threads...
Threads started!
Total operations: 1310720 (2363326.13 per second)
10240.00 MiB transferred (18463.49 MiB/sec)
General statistics:
total time: 0.5530s
total number of events: 1310720
Latency (ms):
min: 0.00
avg: 0.00
max: 0.01
95th percentile: 0.00
sum: 440.39
Threads fairness:
events (avg/stddev): 1310720.0000/0.00
execution time (avg/stddev): 0.4404/0.00
5. 磁盤 I/O 性能評測
磁盤 I/O 性能對云實例的存儲操作影響巨大,特別是在需要頻繁讀寫數據的應用中。我們通過 fio 對 Flexus X 實例的磁盤性能進行了順序讀寫和隨機讀寫測試。
5.1 順序讀寫性能
在順序讀寫測試中,Flexus X 實例表現出色,磁盤的順序讀寫速度非常快,能夠支持大文件的快速讀寫操作。這使得在視頻流處理、文件備份等場景中,Flexus X 能夠快速處理數據,提升系統整體性能。
使用命令
sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr prepare
進行評測數據準備
[root@flexusx-e724 sysbench-1.0.20]# sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr prepare
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
2 files, 10485760Kb each, 20480Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0
Creating file test_file.1
21474836480 bytes written in 136.52 seconds (150.01 MiB/sec).
順序讀寫評測命令
sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr run
上述命令用于運行 sysbench 的磁盤 I/O 性能測試,主要針對順序寫操作,并指定了以下參數:
--threads=4:設置線程數為 4,表示同時使用 4 個線程進行測試。
--time=60:測試持續時間為 60 秒。
--report-interval=5:每 5 秒輸出一次測試報告,顯示當前的性能情況。
fileio:表示運行 sysbench 的文件 I/O 測試模塊。
--file-num=2:創建 2 個文件用于測試。
--file-total-size=20G:測試文件的總大小為 20GB。
--file-test-mode=seqwr:測試模式為順序寫(sequential write),即按照順序向文件寫入數據。
該命令用于評估系統磁盤的順序寫性能,模擬在多線程環境下處理大文件寫入的表現。
評測結果如下
[root@flexusx-e724 sysbench-1.0.20]# sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 4
Report intermediate results every 5 second(s)
Initializing random number generator from current time
Extra file open flags: (none)
2 files, 10GiB each
20GiB total file size
Block size 16KiB
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing sequential write (creation) test
Initializing worker threads...
Threads started!
[ 5s ] reads: 0.00 MiB/s writes: 179.94 MiB/s fsyncs: 229.33/s latency (ms,95%): 0.035
[ 10s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.034
[ 15s ] reads: 0.00 MiB/s writes: 149.37 MiB/s fsyncs: 191.20/s latency (ms,95%): 0.035
[ 20s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.033
[ 25s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.035
[ 30s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.035
[ 35s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.035
[ 40s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.035
[ 45s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.035
[ 50s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.034
[ 55s ] reads: 0.00 MiB/s writes: 150.00 MiB/s fsyncs: 192.00/s latency (ms,95%): 0.035
[ 60s ] reads: 0.00 MiB/s writes: 148.75 MiB/s fsyncs: 190.40/s latency (ms,95%): 0.035
File operations:
reads/s: 0.00
writes/s: 9625.38
fsyncs/s: 192.62
Throughput:
read, MiB/s: 0.00
written, MiB/s: 150.40
General statistics:
total time: 60.6091s
total number of events: 595067
Latency (ms):
min: 0.01
avg: 0.41
max: 724.54
95th percentile: 0.03
sum: 242281.89
Threads fairness:
events (avg/stddev): 148766.7500/1811.96
execution time (avg/stddev): 60.5705/0.00
5.2 隨機讀寫性能
相比順序讀寫,隨機讀寫測試更具挑戰性,因為它涉及多個小塊數據的隨機位置讀寫。在該測試中,Flexus X 實例的表現依然穩健,盡管隨機讀寫的速度較順序讀寫有所下降,但整體依舊保持在較高水平,足以應對數據庫查詢等需要頻繁小塊數據讀寫的場景。
隨機讀寫測試數據準備命令
sysbench --threads=32 --time=30 --test=fileio --file-num=1 --file-block-size=8192 --file-total-size=20G --file-test-mode=rndrw --verbosity=5 prepare
執行結果
[root@flexusx-e724 ~]# sysbench --threads=32 --time=30 --test=fileio --file-num=1 --file-block-size=8192 --file-total-size=20G --file-test-mode=rndrw --verbosity=5 prepare
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
1 files, 20971520Kb each, 20480Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0
21474836480 bytes written in 136.14 seconds (150.44 MiB/sec).
隨機讀寫評測命令
sysbench --threads=4 --time=60 --report-interval=5 fileio --file-num=2 --file-total-size=20G --file-test-mode=seqwr run
上述命令用于運行 **sysbench** 的磁盤 I/O 性能測試,主要評估磁盤的隨機讀寫性能。參數說明如下:
--threads=32:設置為使用 32 個線程同時進行測試,模擬高并發環境下的性能。
--time=30:測試持續時間為 30 秒。
--test=fileio:運行 sysbench 的文件 I/O 測試模塊。
--file-num=1:測試時創建 1 個文件。
--file-block-size=8192:設置文件塊大小為 8192 字節(8KB)。
--file-total-size=20G:測試文件的總大小為 20GB。
--file-test-mode=rndrw:測試模式為隨機讀寫,即隨機地從文件中讀取和寫入數據。
--verbosity=5:設置輸出詳細程度為 5,提供更詳細的測試結果信息。
該命令通過多線程的隨機讀寫操作,評估系統在高并發和大數據隨機訪問場景下的磁盤性能表現。
命令執行結果如下
[root@flexusx-e724 sysbench-1.0.20]# sysbench --threads=32 --time=30 --test=fileio --file-num=1 --file-block-size=8192 --file-total-size=20G --file-test-mode=rndrw --verbosity=5 run
WARNING: the --test option is deprecated. You can pass a script name or path on the command line without any options.
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)
Running the test with following options:
Number of threads: 32
Initializing random number generator from current time
Extra file open flags: (none)
1 files, 20GiB each
20GiB total file size
Block size 8KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
DEBUG: Opening file: test_file.0
Initializing worker threads...
DEBUG: Worker thread (#0) started
DEBUG: Worker thread (#0) initialized
DEBUG: Worker thread (#1) started
… …
DEBUG: Worker thread (#30) initialized
DEBUG: Worker thread (#31) initialized
Threads started!
Time limit exceeded, exiting...
(last message repeated 31 times)
Done.
File operations:
reads/s: 5705.56
writes/s: 3803.67
fsyncs/s: 96.13
Throughput:
read, MiB/s: 44.57
written, MiB/s: 29.72
General statistics:
total time: 30.2080s
total number of events: 290141
Latency (ms):
min: 0.00
avg: 3.33
max: 930.12
95th percentile: 0.52
sum: 966180.93
Threads fairness:
events (avg/stddev): 9066.9062/942.78
execution time (avg/stddev): 30.1932/0.04
6. 評測結果分析與總結
通過一系列性能測試,華為云 Flexus X 實例在 CPU、內存和磁盤 I/O 等多個方面均展現了出色的表現,特別是在多線程處理和大數據處理場景中,體現了極高的穩定性和可靠性。具體來看:
- 在 CPU 性能方面,Flexus X 實例通過高效的多線程處理,在長時間計算任務中保持了優異的穩定性,表現出極小的執行時間偏差。
- 在內存性能測試中,實例的內存讀寫速度表現出色,均勻的線程執行時間進一步證明了其在高負載情況下的卓越處理能力。
- 對于磁盤 I/O,測試結果顯示出極佳的讀寫效率,尤其是在隨機讀寫場景下,Flexus X 實例表現出色,能夠應對高并發的數據操作需求。
總體來說,華為云的 Flexus X 實例憑借其強大的硬件配置和優化的網絡架構,成為了處理計算密集型、存儲密集型以及網絡密集型任務的理想選擇。它不僅適用于企業級用戶,還能很好地滿足開發者和數據密集型應用的需求。
本次評測的結果充分展示了 Flexus X 實例的高性能與可靠性,特別是在需要高計算性能和大規模數據處理的場景下,其表現無疑具有顯著優勢。對于正在尋找高效云解決方案的用戶,Flexus X 實例無疑是一個極具競爭力的選擇,能夠助力企業和開發者在實際應用中充分發揮其潛能。
審核編輯 黃宇
-
cpu
+關注
關注
68文章
10859瀏覽量
211682 -
云計算
+關注
關注
39文章
7793瀏覽量
137379 -
內存
+關注
關注
8文章
3023瀏覽量
74029 -
磁盤
+關注
關注
1文章
376瀏覽量
25205
發布評論請先 登錄
相關推薦
評論