鯤鵬HCIA認證之實戰指導

1.性能測試

數據庫性能測試

TPCC - 測試模型
TPC-C是針對OLTP的基準測試模型,可以衡量數據庫的性能和硬件性價比,是廣泛應用並關注的一種測試模型
TPCC測試模型是一個大型的商品批發銷售公司,它擁有若干個分佈在不同區域的商品倉庫。
每個倉庫負責爲10個銷售點供貨,其中每個銷售點爲3000個客戶提供服務。
平均每個訂單有10項產品。
所有訂單中約1%的產品在其直接所屬的倉庫中沒有存貨,必須由其他區域的倉庫來供貨。
每個倉庫都要維護公司銷售的100000種商品的庫存記錄
TPCC - 交易類型
新訂單
支付操作
發貨
訂單狀態查詢
庫存狀態查詢
TPCC - 性能衡量指標
流量指標
性價比(tpmC)
BenchmarkSQL測試流程
BenchmarkSQL編譯安裝(JDK7或以上版本)–》創建配置文件–》配置數據庫連接–》場景配置–》數據準備–》執行測試
支持數據庫
Oracle,PostgreSQL,EnterpriseDB,DB2,SQL Server,GaussDB
BenchmarkSQ- 場景配置

參數 說明
warehouse 指定倉庫數量
loadWorkers 指定裝載數據的併發數
Terminals 指定併發用戶數
runMins 指定測試時間
runTxnsPerTerminal 指定每個Terminal運行的事務數量,runMins必須等於0。 limitTxnsPerMin:指定每分鐘總事務數
terminalWarehouseFixed 指定每個終端是否綁定固定warehouse

BenchmarkSQL衡量標準
tpmC(NewOrders)
tpmTOTAL(TPS)
BenchmarkSQL - 性能優化思路
優化文件系統
調整數據庫參數

大數據性能測試

大數據(Big data),又稱爲巨量資料,指的是在傳統數據處理應用軟件不足以處理的 大或複雜的數據集的術語
典型應用領域
電商/零售領域,金融領域,醫療領域,交通領域,教育領域,環保領域,輿情領域

大數據基準測試套件 HiBench
支持的框架 hadoopbench、sparkbench、stormbench、flinkbench、gearpumpbench
支持的開源版本組件 Hadoop、Spark、Storm、Kafka、Flink

HiBench - 測試分類(六種)
micro,ml(機器學習),sql,graph,websearch,streaming
HiBench - 測試流程
開始–》安裝HiBench–》修改配置–》執行測試腳本–》查看測試報告–》結束
主要性能指標:Throughput(吞吐量),數值越高,性能越優
HiBench測試 - 性能優化思路
調整數據分片數、任務並行度(影響數據文件大小和數目,修改參數後,需要重新導入數據)
調整Spark Executor數目、CPU核數、內存以及Spark Driver內存大小

HPC性能測試(高性能計算)

HPC(High Performance Computing)高性能計算,是通過高速網絡將大量服務器 進行互聯形成計算機集羣,與高性能存儲一起,求解科研、工業界最複雜的科學計算 問題(科學研究領域三大範式:理論科學,實驗科學,計算科學)。
典型應用領域:環境科學,生命科學,材料學/化學,天文物理,能源,製造
HPC典型應用
WRF
氣象研究
實時NWP
理想模擬
數據同化
地球系統模型耦合
示範訓練和教育支持
WRF模擬系統
WRF模擬系統主要包含WPS和WRF兩部分模塊
WPS–WRF預處理系統,用來爲WRF模型準備輸入數據;如果只是做理想實驗(idealized modeling),就不需要用WPS處理真實數據
WRF模塊:就是數值求解的模塊(ARW,NMM)
性能測試 - WRF測試流程
確認系統環境–》安裝依賴庫–》安裝WRF–》運行測試算例–》查看性能指標–》性能優化
性能優化思路
運行算例時使用MPI參數設置OpenMP線程或通過綁核提高WRF運算性能。
更換AHC編譯器和optimized-routines-master數學庫重新編譯WRF,運行算例, 對比性能數據。
使用應用特徵分析工具對WRF進行分析,根據分析結果對造成阻塞的點進行優化 來提升性能。

2.應用軟件移植調優(基於PostgreSQL)

環境準備

軟件準備
1.代碼遷移工具–Porting Adviso x86
2.PostgreSQL包 鯤鵬
3.BenchmarkSQL包 x86
硬件準備
1.基於x86的彈性雲服務器
2.基於鯤鵬計算的彈性雲服務器

1.性能測試

X86平臺:
在X86平臺使用代碼遷移工具分析PostgreSQL源碼
詳情見應用遷移步驟
鯤鵬服務器:
#升級GCC編譯器版本
yum -y install gcc gcc-c++ automake zlib zlib-devel bzip2 bzip2-devel bzip2-libs readline readline-devel bison ncurses ncurses-devel libaio-devel openssl openssl-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
ls
tar -xvf gcc-7.3.0.tar.gz
ls
cd gcc-7.3.0
./configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,fortran,lto --enable-plugin --enable-initfini-array --disable-libgcj
make -j 96
make install
gcc -v
上傳PostgreSQL到home
tar -zxvf postgresql-11.3.tar.gz
cd postgresql-11.3
./configure -prefix=/home/pgsql
mkdir /home/pgsql
make -j 64
make install
/usr/sbin/groupadd -g 1001 postgres
/usr/sbin/useradd -u 1012 -m -g postgres postgres
su - postgres
/home/pgsql/bin/initdb -D pgsql/
/home/pgsql/bin/pg_ctl -D pgsql/ -l logfile start
/home/pgsql/bin/psql -U postgres
create database tpcc;
cd /home/postgres/pgsql/
vi pg_hba.conf
#PostgreSQL數據庫,IP地址段表示允許訪問PostgreSQL數據庫的地址段,
#此處可配置爲“0.0.0.0/0”,表示允許所有主機訪問
# host  all all 0.0.0.0/0 trust
vi postgresql.conf
# “listen_addresses =‘*’”,表示監聽所有IP地址。
#重啓pgsql數據庫
cd ..
/home/pgsql/bin/pg_ctl -D pgsql/ stop
/home/pgsql/bin/pg_ctl -D pgsql/ start
X86平臺
#確保安裝了jdk
yum -y install java-1.8.0-openjdk
上傳BenchmarkSQL包
chmod -R u+x BenchmarkSQL/
cd /home/BenchmarkSQL/run/ 
cp props.pg arm_postgres.properties 
vi arm_postgres.properties

在這裏插入圖片描述

./runDatabaseBuild.sh arm_postgres.properties
./runBenchmark.sh arm_postgres.properties
./runDatabaseDestroy.sh arm_postgres.properties

2.性能調優

鯤鵬平臺
cd /home/
ls
卸載pgsql數據庫
rm -rf /home/postgresql-11.3
rm -rf /home/pgsql/
rm -rf /home/postgres/logfile
rm -rf /home/postgres/pgsql/

#第二次安裝-- postgresql:
tar -zxvf postgresql-11.3.tar.gz
cd postgresql-11.3
./configure -prefix=/home/pgsql
mkdir /home/pgsql
vi src/Makefile.global
#在261行CFLAGS中,按“i”進入編輯模式,增加"-march=armv8-a+crc+lse"
make -j 64
make install
su - postgres
/home/pgsql/bin/initdb -D pgsql/
/home/pgsql/bin/pg_ctl -D pgsql/ -l logfile start
/home/pgsql/bin/psql -U postgres
create database tpcc;
cd /home/postgres/pgsql/
vi pg_hba.conf
#PostgreSQL數據庫,IP地址段表示允許訪問PostgreSQL數據庫的地址段,
#此處可配置爲“0.0.0.0/0”,表示允許所有主機訪問
# host  all all 0.0.0.0/0 trust
vi postgresql.conf
# “listen_addresses =‘*’”,表示監聽所有IP地址。
#重啓pgsql數據庫
cd ..
/home/pgsql/bin/pg_ctl -D pgsql/ stop
/home/pgsql/bin/pg_ctl -D pgsql/ start
#x86平臺再次測試
./runDatabaseBuild.sh arm_postgres.properties
./runBenchmark.sh arm_postgres.properties
./runDatabaseDestroy.sh arm_postgres.properties

3.軟件打包

鯤鵬服務器安裝:
yum -y install rpm-build
ll /root/rpmbuild/
cp /usr/local/src/postgresql-11.3.tar.gz /root/rpmbuild/SOURCES/
yum -y install readline-devel zlib-devel
cd /root/rpmbuild/SPECS/
vi pgsql.spec
------
Name:     postgresql
Version:  11.3
Release:  1%{?dist}
Summary:  This is a DB
License:  PostgreSQL
URL:      https://ftp.postgresql.org/
Source0:  postgresql-11.3.tar.gz
BuildRequires:   gcc
Requires: zlib-devel, readline-devel
%description
postgresql 11.3.
%prep
%setup -q
%build
%congigure
make %{?_smp_mflags}
%install
make install DESTDIR=%{buildroot}
%files
%defattr(-,root,root,-)
%{_prefix}
%changelog
------
rpmbuild -ba pgsql.spec
ll /root/rpmbuild/RPMS/aarch64/

4.軟件安裝測試

在新的一臺鯤鵬服務器安裝或者吧之前的postgresql刪除掉:
cp /root/rpmbuild/RPMS/aarch64/* /home
cd /home/
ls
rpm -ivh postgresql-11.3-1.el7.aarch64.rpm --nodeps --force
useradd pgsql
cd /root/
mkdir -p /data/pgsql/data
chown -R pgsql:pgsql /data
su - pgsql
initdb -D /data/pgsql/data
pg_ctl -D /data/pgsql/data -l logfile start
createdb test
psql test
CREATE TABLE COMPANY(ID INT PRIMARY KEY NOT NULL, NAME TEXT  NOT NULL);
INSERT INTO COMPANY VALUES (1, 'Hello');
select * from COMPANY;
DELETE FROM COMPANY WHERE ID=1;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章