MariaDB·社群動態·MariaDBonPower8(下)
背景
上一期月報MariaDB on Power8我介紹了下 MariaDB 為 Power 處理器所做的一些優化,但是並沒有給出實際測試的效果,這次月報我們借到了一臺Power8的機器,有機會親自試一把 MariaDB 在 Power 上的表現。
環境
一切不交代測試場景的Benchmark都是Benchmarketing。
因為Power和Intel之間對標的CPU型號我無法得知,因此這個測試僅僅用來觀察MariaDB/MySQL在Power和Intel之間一些特質的差異,而非效能的直接對比。
Power 這邊我們拿到的是 PowerVM 虛擬化的32核Power8機器,Intel這邊用的是我們日常測試的E5-2630機型,虛擬機器 vs 物理機,兩者的價格我也沒有資料,所以不要直接對比效能,不要直接對比效能,不要直接對比效能!
Power戰隊
處理器規格:
processor : 0
cpu : POWER8 (architected), altivec supported
clock : 3425.000000MHz
revision : 2.1 (pvr 004b 0201)
處理器核數:
[root@plx sysbench]# cat /proc/cpuinfo | grep processor | wc -l
32
記憶體:
[root@plx sysbench]# free -g
total used free shared buff/cache available
Mem: 30 7 3 0 19 22
Swap: 15 0 15
Intel戰隊
處理器規格:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 45
model name : Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz
stepping : 7
cpu MHz : 2294.709
cache size : 15360 KB
physical id : 0
siblings : 12
core id : 0
cpu cores : 6
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 x2apic popcnt aes xsave avx lahf_lm arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
bogomips : 4589.41
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:
處理器核數:
$cat /proc/cpuinfo | grep processor | wc -l
24
記憶體:
$free -g
total used free shared buffers cached
Mem: 189 53 135 0 0 2
-/+ buffers/cache: 50 138
Swap: 1 0 1
CPU理論效能測試
首先我們用sysbench簡單測試下CPU的計算能力。
測試命令:
sysbench --test=cpu --cpu-max-prime=20000 --num-threads=$num run
我在每個平臺上至少執行了3次測試,只有連續三次測試結果差異極小的時候,才認為最後一次測試結果有效。因為Power8是一臺虛擬機器,並不能保證宿主機任何時候都只有我在用。
下面是原始測試資料的表格:
Power CPU理論測試
執行緒 | 總耗時(s) | 平均延時(ms) | 95%延時(ms) |
1 | 201.67 | 20.17 | 20.19 |
4 | 66.61 | 26.64 | 33.18 |
8 | 59.90 | 47.90 | 106.78 |
16 | 49.18 | 78.62 | 119.75 |
32 | 37.37 | 119.36 | 119.86 |
64 | 37.37 | 237.32 | 349.90 |
128 | 37.38 | 469.16 | 619.61 |
512 | 37.38 | 1671.31 | 2179.63 |
Intel CPU理論測試
執行緒 | 總耗時(s) | 平均延時(ms) | 95%延時(ms) |
1 | 827.08 | 82.71 | 83.02 |
4 | 206.97 | 82.77 | 83.24 |
8 | 103.45 | 82.72 | 83.14 |
16 | 60.02 | 95.96 | 114.39 |
32 | 47.52 | 151.89 | 230.74 |
64 | 47.53 | 303.26 | 350.64 |
128 | 47.53 | 604.46 | 695.92 |
512 | 47.53 | 2360.40 | 2759.46 |
CPU理論效能對比
(注:比值指的是相同執行緒數下,Intel耗時是Power的多少倍)
執行緒 | Power總耗時(s) | Intel總耗時(s) | 比值 |
1 | 201.67 | 827.08 | 4.10 |
4 | 66.61 | 206.97 | 3.11 |
8 | 59.90 | 103.45 | 1.73 |
16 | 49.18 | 60.02 | 1.22 |
32 | 37.37 | 47.52 | 1.27 |
64 | 37.37 | 47.53 | 1.27 |
128 | 37.38 | 47.53 | 1.27 |
512 | 37.38 | 47.53 | 1.27 |
從上面三個圖我們可以總結一些硬體上的特性:
- 單核心效率Power要高於Intel。3.425GHz 的 Power8 耗時是 2.6GHZ 的 E5-2630 的 1/4,CPU頻率只有1.3倍的差異;
- 併發足夠高時,效能差異並沒有那麼大,耗時穩定在1.27倍左右。而核心數Power也是Intel的1.33倍。
場景
本次測試共有三種場景:
- MariaDB 10.1.10 on Power
- MariaDB 10.1.10 on Intel
- RDS MySQL 5.6.16 on Intel
為何沒有 MySQL on Power 呢,因為編譯不過。。。
Buffer Pool全部為16G,資料檔案大小為8G上下,保證資料可以全部載入記憶體。
測試命令:
./sysbench --db-dirver=mysql --mysql-host=127.0.0.1 --mysql-port=3001 --mysql-user=root --test=tests/db/select.lua --mysql-table-engine=innodb --oltp-table-size=500000 --oltp-tables-count=64 --max-time=1800 --max-requests=2000000000 --num-threads=$num run
為什麼只測讀?因為Power主機和Intel主機上使用的硬碟不一樣,HDD vs. SDD,測寫就完全沒有意義了,HDD會被SSD吊打。
因為做過PREPARE之後就直接開測,沒有關過MySQL,因此測試時資料都是在記憶體中的,不會產生物理IO。
下面是測試結果原始資料的表格:
(注:TPS變動比例指當前執行緒數下的TPS相對於上一輪測試的TPS的比值)
MariaDB on Power
執行緒 | TPS | 平均耗時(ms) | 95%耗時(ms) | TPS變動比例 |
1 | 14279.19 | 0.07 | 0.08 | |
4 | 41563.43 | 0.09 | 0.12 | 291.08% |
8 | 63601.75 | 0.12 | 0.18 | 153.02% |
16 | 94346.29 | 0.17 | 0.23 | 148.34% |
32 | 119444.32 | 0.26 | 0.45 | 126.60% |
64 | 129451.95 | 0.49 | 0.82 | 108.38% |
128 | 123414.89 | 1.03 | 1.75 | 95.34% |
256 | 112408.11 | 2.27 | 4.00 | 91.08% |
512 | 113163.74 | 4.52 | 8.59 | 100.67% |
768 | 105875.56 | 7.24 | 15.53 | 93.56% |
RDS MySQL on Intel
執行緒 | TPS | 平均耗時(ms) | 95%耗時(ms) | TPS變動比例 |
1 | 10742.70 | 0.09 | 0.11 | |
4 | 40061.40 | 0.10 | 0.12 | 372.92% |
8 | 68544.88 | 0.12 | 0.14 | 171.10% |
16 | 109659.96 | 0.14 | 0.16 | 159.98% |
32 | 149450.12 | 0.21 | 0.39 | 136.29% |
64 | 145596.26 | 0.44 | 0.75 | 97.42% |
128 | 139679.85 | 0.91 | 4.96 | 95.94% |
256 | 141907.18 | 1.80 | 11.73 | 101.59% |
512 | 61794.87 | 8.28 | 25.79 | 43.55% |
MariaDB on Intel
執行緒 | TPS | 平均耗時(ms) | 95%耗時(ms) | TPS變動比例 |
1 | 9673.51 | 0.10 | 0.12 | |
4 | 37394.20 | 0.11 | 0.13 | 386.56% |
8 | 47347.03 | 0.17 | 0.19 | 126.62% |
16 | 107496.94 | 0.15 | 0.18 | 227.04% |
32 | 140805.33 | 0.22 | 0.35 | 130.99% |
64 | 137045.70 | 0.46 | 0.66 | 97.33% |
128 | 138472.96 | 0.92 | 0.36 | 101.04% |
256 | 134908.32 | 1.90 | 7.23 | 97.43% |
512 | 131814.55 | 3.88 | 19.04 | 97.71% |
下面是對比的表格:
MySQL vs MariaDB on Intel
(注:變化率是指MariaDB的數值相對於MySQL的數值的比值的百分比)
執行緒 | MySQL TPS | 平均耗時(ms) | 95%耗時(ms) | MariaDB TPS | 平均耗時(ms) | 95%耗時(ms) | TPS變化率 | 平均延時變化率 | 95%延時變化率 |
1 | 10742.70 | 0.09 | 0.11 | 9673.51 | 0.10 | 0.12 | 90.05% | 111.11% | 109.09% |
4 | 40061.40 | 0.10 | 0.12 | 37394.20 | 0.11 | 0.13 | 93.34% | 110.00% | 108.33% |
8 | 68544.88 | 0.12 | 0.14 | 47347.03 | 0.17 | 0.19 | 69.07% | 141.67% | 135.71% |
16 | 109659.96 | 0.14 | 0.16 | 107496.94 | 0.15 | 0.18 | 98.03% | 107.14% | 112.50% |
32 | 149450.12 | 0.21 | 0.39 | 140805.33 | 0.22 | 0.35 | 94.22% | 104.76% | 89.74% |
64 | 145596.26 | 0.44 | 0.75 | 137045.70 | 0.46 | 0.66 | 94.13% | 104.55% | 88.00% |
128 | 139679.85 | 0.91 | 4.96 | 138472.96 | 0.92 | 0.36 | 99.14% | 101.10% | 7.26% |
256 | 141907.18 | 1.80 | 11.73 | 134908.32 | 1.90 | 7.23 | 95.07% | 105.56% | 61.64% |
512 | 61794.87 | 8.28 | 25.79 | 131814.55 | 3.88 | 19.04 | 213.31% | 46.86% | 73.83% |
MariaDB on Intel vs Power
(注:變化率是指Power平臺的數值相對於Intel平臺的數值的比值的百分比)
執行緒 | Intel TPS | 平均耗時(ms) | 95%耗時(ms) | Power TPS | 平均耗時(ms) | 95%耗時(ms) | TPS變化率 | 平均延時變化率 | 95%延時變化率 |
1 | 9673.51 | 0.10 | 0.12 | 14279.19 | 0.07 | 0.08 | 147.61% | 70.00% | 66.67% |
4 | 37394.20 | 0.11 | 0.13 | 41563.43 | 0.09 | 0.12 | 111.15% | 81.82% | 92.31% |
8 | 47347.03 | 0.17 | 0.19 | 63601.75 | 0.12 | 0.18 | 134.33% | 70.59% | 94.74% |
16 | 107496.94 | 0.15 | 0.18 | 94346.29 | 0.17 | 0.23 | 87.77% | 113.33% | 127.78% |
32 | 140805.33 | 0.22 | 0.35 | 119444.32 | 0.26 | 0.45 | 84.83% | 118.18% | 128.57% |
64 | 137045.70 | 0.46 | 0.66 | 129451.95 | 0.49 | 0.82 | 94.46% | 106.52% | 124.24% |
128 | 138472.96 | 0.92 | 0.36 | 123414.89 | 1.03 | 1.75 | 89.13% | 111.96% | 486.11% |
256 | 134908.32 | 1.90 | 7.23 | 112408.11 | 2.27 | 4.00 | 83.32% | 119.47% | 55.33% |
512 | 131814.55 | 3.88 | 19.04 | 113163.74 | 4.52 | 8.59 | 85.85% | 116.49% | 45.12% |
這個測試結果跟上一篇月報中IBM給出的官方測試對比有很大差異。
我們就來看看這些測試結果反映了些什麼問題:
- 如果只看 MariaDB on Power 和 MySQL on Intel 的結果,我會以為 Power 在高併發時效能更穩定,但看了 MariaDB on Intel 的測試結果之後,意識到這是 MariaDB Thread Pool 的功勞,並不是Power平臺的優勢;
- 對比 MySQL on Intel 和 MariaDB on Intel 可以明顯的看到,16併發和256併發是明顯的分水嶺,16併發之前MySQL優勢明顯,16併發到256併發之間兩者差距不大,256併發之後,MariaDB完爆MySQL;
- 看 MariaDB 在 Power 和 Intel 平臺下的表現,16併發之前 Power 優勢會明顯一點,16併發之後 Intel 就追上來了並且超越了 Power。這跟我們上面做的 CPU 理論測試結果差不多,大家可以上去翻表格,16執行緒之前 Power 效率要高於 Intel,但是之後基本就穩定了;
- 所以,官方的Benchmark永遠不可靠,自己動手才是硬道理。
相關文章
- Centos下安裝mariaDB方法CentOS
- 龍蜥社群一週動態 | 1.10-1.14
- 龍蜥社群一週動態 | 3.14-3.18
- Linux下的靜態庫、動態庫和動態載入庫Linux
- 10月回顧 | Apache SeaTunnel社群動態與進展一覽Apache
- Ubuntu 下使用 CloudFlare 動態域名UbuntuCloud
- 阿里下場社群團購阿里
- Centos6下使用yum安裝MariaDBCentOS
- linux下的靜態庫與動態庫Linux
- android下java的靜態庫和動態庫AndroidJava
- mysql(mariadb)啟動失敗解決方法MySql
- 如何在Linux下編譯安裝MariaDBLinux編譯
- Setup MariaDB Master/Slave Replication for Docker MariaDBASTDocker
- Cloud Kernel SIG月度動態:釋出 Anolis 8.8 映象、kABI 社群共建流程Cloud
- 【Mariadb】利用MariaDB Galera Cluster實現mariadb的叢集環境
- 簡述Linux下的靜態庫和動態庫Linux
- Linux下的靜態連結與動態連結Linux
- Linux下的共享庫(動態庫)和靜態庫Linux
- Linux環境下建立靜態庫和動態庫Linux
- App極限瘦身: 動態下發soAPP
- 淺析PowerBuilder下動態SQL語句UISQL
- Linux下MySQL/MariaDB Galera叢集搭建過程LinuxMySql
- CentOS 6.6下編譯安裝MariaDB-10.0.24CentOS編譯
- 中國移動社群生態報告:獨家騰訊QQ資料揭祕“群社交”
- Linux下快速靜態編譯Qt以及Qt動態/靜態版本共存Linux編譯QT
- 社群動態|SelectDB 聯合傳智教育推出免費 Apache Doris 中文影片教程Apache
- linux 下動態連結實現原理Linux
- CentOS 下安裝 LEMP 服務(nginx、MariaDB/MySQL 和 php)CentOSNginxMySqlPHP
- 固態儲存行業領導者矽格半導體加入龍蜥社群,共同推動開源生態建設行業
- linux下靜態庫、動態庫編譯及makefile書寫Linux編譯
- Linux下建立靜態庫、動態庫以及簡單的makefileLinux
- 盒馬下場,阿里博弈社群團購阿里
- 說說圖靈社群的下單圖靈
- MariaDB安裝
- MariaDB簡介
- 資料揭祕“群社交”:2015年中國移動社群生態報告
- [動態代理三部曲:下] - 從動態代理,看Retrofit的原始碼實現原始碼
- centos6.5下編譯安裝mariadb-10.0.20CentOS編譯