潮声隔雨深 · 2020年10月28日

鲲鹏HCIA认证之实战指导

转自:CSDN
作者:楚疏笃

利器在手,轻松开发实战

1.性能测试
数据库性能测试
大数据性能测试
HPC性能测试(高性能计算)
2.应用软件移植调优(基于PostgreSQL)
环境准备
1.性能测试
2.性能调优
3.软件打包
4.软件安装测试
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

image.png

./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;
更多鲲鹏HCIA认证练习题请关注中国芯动态
推荐阅读
关注数
2809
内容数
81
我芯扶摇九万里
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息