廣東省示范校建設(shè)專題網(wǎng)站推廣系統(tǒng)
GCC for openEuler是基于開源GCC開發(fā)的編譯器工具鏈(包含編譯器,匯編器,鏈接器),在openEuler社區(qū)開源發(fā)布,并通過鯤鵬社區(qū)免費提供二進制包,支持aarch64處理器架構(gòu)。
關(guān)鍵特性
-
支持鯤鵬微架構(gòu)芯片及指令優(yōu)化
-
通過軟硬協(xié)同提供相較開源GCC更高的性能
-
高性能計算典型應用性能深度優(yōu)化
-
支持自動反饋優(yōu)化,實現(xiàn)數(shù)據(jù)庫等場景性能倍增
測試環(huán)境
CPU: 鯤鵬 920 128 core
內(nèi)存:500G
硬盤:500G SSD
操作系統(tǒng):openEuler 20.03
測試數(shù)據(jù)庫:postgreSQL 13.6 + Yukon 1.0.1
測試工具:pgbench
測試案例
案例編號 | 案例說明 |
---|---|
Basic_Performance_Test_001 | 數(shù)據(jù)更新 |
Basic_Performance_Test_002 | 空間包含查詢 |
Basic_Performance_Test_003 | 數(shù)據(jù)寫入(復制) |
測試 SQL
Basic_Performance_Test_001
update t_polygon_gis set geom= ST_Buffer( ST_MakePoint(random()+117, random()+31), 0.016) where id >899 and id<1000;
Basic_Performance_Test_002
select count(*) from public.shopserver a, bj_1 b where ST_Contains(b.smgeometry, a.smgeometry);
Basic_Performance_Test_003
create table t_polygon_gis_copy as select id,geom from t_polygon_gis;
測試步驟
我們將通過在同一機器上測試通用 GCC 和 GCC for openEuler 對于特定場景的性能進行對比測試。
-
使用 GCC for openEuler 和通用 GCC 分別編譯 postgreSQL 13.6 數(shù)據(jù)庫
- 創(chuàng)建兩個獨立的用戶 pggcc 和 pgopengcc 用來進行測試
- 安裝通用 GCC
- 安裝 GCC for openEuler ,可參考鯤鵬社區(qū)官方文檔
- 設(shè)置環(huán)境變量,確保 pggcc 和 pgopengcc 使用正確的 GCC 程序
- 使用 configure 配置,然后編譯即可。
-
編譯 Yukon 1.0.1
Yukon 的編譯可以參考 Yukon 的官方文檔進行操作。
-
設(shè)置數(shù)據(jù)庫參數(shù)
- 設(shè)置數(shù)據(jù)庫最大連接數(shù)為 1000
-
開始測試
測試通過 pgbench 單線程和多線程結(jié)合的方式進行測試。
pgbench 命令示例
pgbench test -r -n -t 20 -c 100 -j 50 -U yukontest -p 25432 -P 5 -f Business_Performance_Test_001.sql
其中:
test
:測試使用的數(shù)據(jù)庫-t 20
: 每個客戶端執(zhí)行的事務(wù)數(shù)-c 100
: 客戶數(shù)-j 50
: 線程數(shù)-U yukontest
: 數(shù)據(jù)庫用戶名-p 25432
: 數(shù)據(jù)庫連接端口號-f Business_Performance_Test_001.sql
: 測試案例文件
測試結(jié)果
測試案例 | 性能提升(GCC for openEuler 對比 通用 GCC) |
---|---|
Basic_Performance_Test_001 | 28.89% |
Basic_Performance_Test_002 | 7.45% |
Basic_Performance_Test_003 | 18.53% |
測試結(jié)論
通過測試的結(jié)果我們可以看到,GCC for openEuler 相對于通用的 GCC 在數(shù)據(jù)庫的使用中有較為明顯的性能提升。最高可提升 28%。