-
一、 命题:鲲鹏BoostKit大数据算法优化【命题内容】∶基于Spark 2.4.5和Hadoop 3.2.0版本,Spark GraphX中Betweenness介数中心性算法,用于描述图数据中每个节点在图中与其它节点的连通程度,体现了结点在图中的重要程度。介数中心性算法可以支撑的应用包括:金融行业中用于评价客户的信贷风险;互联网行业中用于评价社交网络中的用户影响力及活跃度;政府行业中用于识别疾病传播的关键人员、地点;运营商行业中用于识别潜在关键客户。服务器规格限制:一个队伍3台虚拟机,每台虚拟机的规格:华为云鲲鹏通用计算增强型Kc18核、32GB内存。系统盘:高IO 40GB;数据盘:高IO 500GB;带宽4Mbit/s。操作系统: openEuler 20.03 64bit with ARMSpark开源组件中Betweenness算法采用公开网络数据集com-Amazon(点数量33万,边数量92万,http://snap.stanford.edu/data/com-Amazon.html),算法精度为75%,计算耗时为60Os,精度低、计算效率差,无法满足实际业务需求,期望从算法技术原理、鲲鹏亲和性适配角度,优化算法的精度和效率,精度提升到90%以上,计算耗时降低到90s以下【答题要求】:1、 算法交付软件需要可以运行在Spark平台上,并提供部署运行的指导文档。2、 保持Betweenness算法的对外使用接口,与开源Spark算法一致。【提示】从鲲鹏亲和性(多核并发、数据结构优化、通信优化)和算法原理(降低算法计算复杂度)优化Spark分布式组件的Betweenness算法二、鲲鹏BoostKit大数据介绍Spark - 基本组成和概念① spark core: 实现了spark的基础功能(任务调度,内存管理。错误恢复,与存储系统交互等),以及对弹性api数据集的API定义。② spark SQL: 是spark用来操作结构化数据的程序包,支持多种数据源hive,parquet,josn等。 Spark SQL 通常用于交互式查询,但这一领域同类产品太多,更多作为MapReduce的替代者,用于批量作业。③ spark streaming: 对实时数据进行流式计算的组件,提供了用来操作数据流的API,并于spark core中的RDD API高度对应。 Spark Streaming 流式batch处理。主要同类产品为storm。④ spark MUib: 提供常见的机器学习(ML)功能的程序库。 提供了机器学习相关的统计、分类、回归等领域的多种算法实现。其一致的 API 接口大大降低了用户的学习成本。⑤ GraphX 是spark面向图像计算提供的框架和算法库, 支持分布式,Pregel 提供的 API 可以解决图计算中的常见问题。资源管理组件Cluster Manager(集群资源管理器): 是指在集群上获取资源的外部服务,目前有以下几种。Standalone : Spark原生的资源管理,由Master负责资源的管理。Hadoop Yarn : 由YARN中的ResourceManager负责资源的管理。Mesos : 由Mesos中的Mesos Master负责资源的管理。应用程序Application (应用程序)︰ 是指用户编写的Spark应用程序,包含驱动程序( Driver )和分布在集群中多个节点上运行的Executor代码,在执行过程中由一个或多个作业组成。Driver(驱动程序) : Spark中的Driver即运行上述Application的main()函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境。ClusterManager通信,进行资源的申请、任务的分配和监控等;当Executor部分运行完毕后,Driver负责将SparkContext关闭。通常用SparkContext代表Driver。作业执行Worker(工作节点)∶ 集群中任何可以运行Application代码的节点,类似于YARN中的NodeManager节点。在Standalone模式中指的就是通过Slave文件配置的Worker节点,在Spark on Yarn模式中指的就是NodeManager节点。Master(总控进程): Spark Standalone运行模式下的主节点,负责管理和分配集群资源来运行SparkAppliation。Executor(执行进程): Application运行在Worker节点上的一个进程,该进程负责运行Task,并负责将数据存在内存或者磁盘上,每个Application都有各自独立的一批Executor。在Spark on Yarn模式下,其进程名称为CoarseGrainedExecutorBackend,类似于Hadoop MapReduce中的YarnChild。作业(Job ) : RDD中由行动操作所生成的一个或多个调度阶段。调度阶段( Stage ): 每个作业会因为RDD之间的依赖关系拆分成多组任务集合,称为调度阶段,也叫做住务集。( TaskSet )。调度阶段的划分是由DAGScheduler来划分的调度阶段有Shuffle Map Stage和Result Stage两种。任务(Task): 具体执行任务。 分发到Executor上的工作任务,是Spark实际执行应用的最小单元。DAGScheduler : DAGScheduler是面向调度阶段的任务调度器,负责接收Spark应用提交的作业,根据RDD的依赖关系划分调度阶段,并提交调度阶段给TaskScheduler。TaskScheduler : TaskScheduler是面向任务的调度器,它接受DAGScheduler提交过来的调度阶段,然后以把任务分发到Work节点运行,由Worker节点的Executor来运行该任务。三、 鲲鹏Spark算法加速库开源Spark组件在鲲鹏平台的部署运行编译Spark组件: cid:link_3编译Hadoop组件: cid:link_2编译Zookeeper组件: 编译Zookeeper组件: cid:link_1安装部署Spark组件: cid:link_4鲲鹏的Maven仓库: cid:link_8华为云的中央仓库: cid:link_7开源Spark组件性能调优Spark平台调优cid:link_5Spark算法调优cid:link_6开源Spark组件Betweenness算法测试1、 开源Betweenness算法下载地址:源码: cid:link_02、 添加MainApp.scala主程序,执行betweenness算法,获取结果,计算精度和执行时间3、 在鲲鹏服务器上编译打包hbse_2.11-0.1.jar4、 wget http://snap.stanford.edu/data/com-Amazon.html上传到HDFShdfs put com-amazon.txt/betweenness/com-amazon.txt*开源代码工程及运行脚本会发送给参数队列3、 运行算法spark-submit \--master yarn --deploy-mode client\--name "Betweenness_opensource" \--num-executors 6 --executor-memory 14G --executor-cores 4 --driver-memory 4G\--jars "./lib/scopt_2.11-3.2.0.jar" \./lib/hbse_2.11-0.1.jar-i hdfs://betweenness/com-amazon.txt -g hdfs://betweenness/com-amazon-groundTruth.txt其中hbse_2.11-0.1.jar是开源betweenness算法软件包scopt 2.11-3.2.0.jar是依赖包,下载地址: http://www.java2s.com/example/iar/s/download-scopt211320 j ar-file.html-i是标明原始数据集在hdfs的路径﹐-g是标明数据集求解结果在hdfs的路径,用来计算精度。Betweenness算法介绍(介数中心性算法)算法原理介数中心性算法计算图中介数中心性值最大的K个结点,是网络中心性重要的度量参数之一,同时也是图计算领域的基础算法。介数中心性算法的目的是衡量图中每一个结点与其它结点之间的互动程度,经过结点的最短路径数越多,该结点的介数中心性值越大,结点在图中的重要性也就越高。结点的介数中心性值是基于图中最短路径经过该结点的次数计算,最后选取图中介数中心性值最大的K个结点,输出这K个结点的编号和介数中心性值。算法定义介数中心性的定义: 图中每个结点的介数中心性等于图中所有结点对的最短路径经过该结点的次数除以结点对之间所有最短路径总条数。每个节点v的介数中心性可通过以下公式计算:σst(v) 是从结点s到t的最短路径的数量, σst(v) 是从结点s到t且经过结点v的最短路径数量。其中 σst(v)表示经过节点 v的s→t的最短路径条数, σst表示 s→t的最短路径条数。直观上来说,betweenness反映了节点v作为“桥梁”的重要程度。算法应用介数中心性算法可用于识别图上最重要的一批结点,可以支撑的应用包括:安平行业: 用于识别欺诈团伙中的核心成员、识别谣言传播的关键人员。金融行业: 用于评价客户的信贷风险。互联网行业: 用于评价社交网络中的用户影响力及活跃度。政府机关: 用于识别疾病传播的关键人员、地点。电信运营商: 用于识别潜在关键客户。鲲鹏BoostKit大数据:积极建设开源软件生态全面支持开源大数据支持开源Apache大数据各场景组件开源社区接纳ARM生态Hadoop、Hive、Hbase、Spark和Flink、ElasticSearch、Kudu等核心组件的开源社区支持ARM备注: Hadoop、ElasticSearch开源社区已经提供官方版本的ARM软件包鲲鹏镜像仓: cid:link_9开源数据虚拟化引擎openLooKeng , openLooKeng致力于为大数据用户提供极简的数据分析体验,让用户像使用“数据库”一样使用“大数据”。openLooKeng是一款开源的高性能数据虚拟化引擎。提供统一SQL接口,具备跨数据源/数据中心分析能力以及面向交互式、批、流等融合查询场景。同时增强了前置调度、跨源索引、动态过滤、跨源协同、水平拓展等能力。Spark组件提供原生的机器学习MLlib和图GraphX算法库,支持在分布式集群上运行。鲲鹏基于算法原理和芯片特征针对机器学习和图分析算法进行深入优化,实现相比原生算法性能提升50%。机器学习&图分析算法加速库提供以下算法优化,后续版本会持续更新增加算法。机器学习算法: 分类回归(随机森林、GBDT、SVM、逻辑回归、线性回归、决策树、PreFixSpan、KNN、XGBoost)算法、聚类(Kmeans、LDA、DBScan)算法、推荐(ALS)算法、特征工程(PCA、SVD、Pearson、Covariance、Spearman)算法图分析算法: 群体分析(极大团、弱团、Louvain、标签传播、连接组件、CC)、拓扑度量(三角形计数、Cluster Coefficient)算法、路径分析(最短路径、循环检测、广度优先搜索)、骨干分析(PageRank、亲密度、Kcore、Degree、TrustRank、PersonPageRank、Betweenness)算法、相似分类算法(子图匹配)、图表示学习类算法(Node2Vec)BoostKit图算法,加速亿级图谱分析某省级项目9000万节点,20亿边关系图谱社团发现类:基于业务场景选择实体,确定实体间的关系,从而构成具备业务属性的关系图谱。社团发现类算法能在此关系图谱上,挖掘抽象图中的关系稠密团体,为挖掘目标团伙提供数据基础。全量极大团挖掘算法:耗时1小时内,执行性能较友商提升6倍,局部稠密场景,友商是非精确求解,且无法算出结果。基于团渗透的社区发现算法:耗时1小时内,执行性能较友商提升5倍。BoostKit机器学习算法,加速十亿级样本特征分析某运营商局点,全量样本~10亿条,中标样本~10万条,模型精度由80%提升至99.9%。特征降维算法(PCA)∶提炼关键特征,降低计算复杂度,将 计算时间由5小时降低为1小时 ;聚类算法(DBSCAN)︰提取重要样本,降低专家复核成本, 从10万级样本规模降低为千级样本规模 。SVD的英文全称是Singular Value Decomposition,翻译过来是奇异值分解。这其实是一种线性代数算法,用来对矩阵进行拆分。拆分之后可以提取出关键信息,从而降低原数据的规模。因此广泛利用在各个领域当中,例如信号处理、金融领域、统计领域。在机器学习当中也有很多领域用到了这个算法,比如推荐系统、搜索引擎以及数据压缩等等。SVD算法不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。图分析算法优化方案:分布式PageRank算法1. 内存占用优化:基于稀疏压缩的数据表示,使得算法的内存占用下降30%,有效解决大数据规模下的内存瓶颈问题2. 收敛检测优化:简化收敛检测过程,使整体任务量减少5%-10%。3. 全量迭代+残差迭代组合优化:有效降低前期数据膨胀带来的shuffle瓶颈,整体性能可提升 0.5X-2X 。通过算法计算模式的自适应切换,整体shuffle量减少50%,性能较优化前平均提升50%+
-
背景:某股份制银行新一代核心系统以客户服务为中心,支撑产品化运营,提供存、贷、汇等核心服务,并支持其他专业系统的账务、核算,记录全面、精细化的交易数据,为智能化管理、分析提供基础数据支持。新一代核心系统在进行业务分布式改造之外,还同步进行了国产化改造和云原生容器化部署。为能发挥核心应用在当前的开发框架、云化基础设施的软硬件结合最佳性能,验证老系统向全新架构规模迁移可行性,该行搭建了新一代核心业务系统技术验证平台对各类新产品和新技术进行功能和性能测试验证,调整优化软硬件基线配置,探索分布式架构下的最佳实践。 挑战:该平台主要包括分布式云原生应用、分布式数据库和缓存数据库三大部分。其中云原生应用以容器形式部署在国芯服务器上,分布式数据库部署在国芯裸金属服务器,并搭配NVME高性能硬盘,操作系统全部采用国产OS。该行核心业务是基于HCS全栈云容器服务进行的云原生改造和上云方案规划。从集成设计上面向行内CPaaS统一容器云平台,进行CCE容器集群的纳管和运维指标流对接;从技术场景上支持容器集群中各业务系统关联的namespace与各容器业务Pod子网的关联,满足云内云外、云间容器业务南北向流量安全防护的要求。为了验证新平台、新架构下的系统性能,该行开发部门选取了较为复杂的联机交易场景,系统架构和业务流程如下:微服务化架构:网关、存款服务、内部账服务、统一序列号、分布式事务等各服务,均以微服务架构运行在CCE容器集群中;服务注册发现:各类微服务会定期维持到服务注册中心的心跳,同时定期拉取微服务清单和配置信息,实现配置更新及服务发现;压测流程设计:业务请求从压力机或终端进入,首先会通过网关服务,调用存款服务的接口,存款服务根据业务类型,依次调用周边统一序号、SEATA、内部账等服务,并结合业务逻辑,进行多次的数据库操作。业务流量从压力机到应用侧,然后到数据库层,最终完成后返回结果。 图一:某股份制行新一代核心业务系统架构 对比于传统架构,云原生化的分布式业务系统在进行微服务改造、容器化部署之后,整体架构更为复杂,各类服务间大量使用RPC远程调用通信,具有网络请求高频,时效性要求严,数据强一致性要求高的特点。其中网络上的高频请求带来的时延累计开销,对于SDN云网在云原生网络扁平化和高速直通方面提出更高要求,同时其对数据强一致性的要求也为分布式数据库带来了挑战。 分析与对策:展开分析这些挑战之后,我们针对该行新一代分布式新核心系统,分阶段先后针对分布式系统架构、分布式数据库、和业务端到端性能优化,进行了专项调优。 一、 分布式系统架构调优该行全栈云所采用的软SDN Overlay网络中,负责VXLAN隧道解封装的隧道端点VTEP,广泛分布在算力资源节点、软SDN网元节点、集中式裸金属网关节点、增强型裸金属交换机或者硬专线交换机上,且虚拟机和裸金属节点分属不同的接入交换机,导致各节点间互访的流量路径较为复杂。考虑到分布式架构下的高频RPC访问场景,为追求最佳性能,我们建议该行针对分布式架构单独设计网络部署模型,收敛虚拟机应用、容器化业务、分布式数据库的VPC网络模型,基于IaaS和容器的扁平化网络、三层专线BL发挥交换机的硬件转发能力、以及分布式数据库基于HCS裸金属高速网络加速东西向流量等优化措施,大幅度提升了云平台对于分布式业务的性能支撑水平。 二、 分布式数据库调优从传统集中式数据库迁移至分布式数据库挑战巨大,既要充分发挥分布式数据库海量数据高并发的优势,也要避免架构由集中式转变为分布式带来的影响,为此在数据库层面采用了下列优化措施,1. 减少自增列的使用,规避分布式数据库自增属性列的写入效率不及集中式数据库的不足;2. 批量优化:对数据表以账号进行了哈希水平分片,并且在每个分片内也以账号字段哈希分区,通过多分片多分区并行执行的方式,发挥分布式数据库并行性能优势;3. 内存/磁盘管理策略优化:定时策略清理服务器buff/cache,高并发读写时,规避因服务器缓存释放不及时造成TPS和时延的不稳定;4. 条带化:数据库NVME盘由LVM进行管理,对于分布式数据库DN节点这种I/O密集型服务,尽可能降低读写延迟。 三、 业务应用端到端性能调优通过业务单笔交易的全链路时延分析,经过上述优化之后的交易时延开销,主要来自于分布式应用和微服务框架、RPC调用和数据库事务处理,根据这些瓶颈点,在应用层,继续在缓存优化、批量优化和通讯优化三方面进行进一步优化,1. 缓存优化:对于高频访问且相对静态的参数类库表,采用Redis缓存来优化数据访问效率;对于SQL预编译的结果进行缓存,规避应用侧SQL预编译的时间开销;对于注册中心提供本地服务列表内存缓存、本地服务列表文件缓存的多级缓存策略,提升高可用能力和访问效率。2. 批量优化:在资源允许的范围内进一步提高任务处理的并发度,将批量任务化整为零,通过进行合理的任务分片全面提升批处理的效率,同时通过减小单个事务的规模,尽量避免大事务的产生。3. 底层通讯优化:微服务高频交互的场景下,将服务间的通讯协议由HTTP协议优化为基于Socket长连接的bolt协议,提升通讯效率。 处理结果:经过跨经三个多月的三轮调优及压测,在相同配置基线下,基于鲲鹏服务器的华为HCS云原生平台在业务平均响应时延、TPS等关键指标明显优于基于X86国产化服务器的其他云平台。调优组织涉及参与方众多,包括银行业务部门、云平台提供商、数据库提供商、国产操作系统提供商、硬件提供商等;调优涉及的业务应用层次复杂,包含多个层面多维度关联调优:业务层->技术平台层->数据库->操作系统层->云平台软件层->基础设施硬件层等。通过这次核心业务性能调优的实战,我们证明了我司是真正具备全面软硬技术栈以及多软件技术栈专家资源和技术储备的厂商,在核心业务全要素上云和调优场景中,能够成为客户的左膀右臂,加速其核心业务系统基于华为云Stack全栈云平台上云的速度与决心。 经验和教训:针对银行新一代核心业务的性能调优,是一个系统性的工作;并且基于全面云原生容器化的分布式改造在金融行业也是一个具有开创引领特征的行业架构创新,先验经验不多,各个层级的综合挑战繁多,需要从下面三个方面进行规划和持续完善:1- 组织层面,无论是对于客户自身,还是云厂商而言,因为云化核心业务的调优,要求复杂场景下的调优方案,对于不同领域专家协同作战能力有很高诉求,双方都需要配套组织级的综合作战能力。2- 工具层面,核心业务调优面对的是业务端到端全链路场景下的问题识别和优化,对于业务层面的交易链路发现和检测、综合业务拓扑、云内网络和数据中心物理网络的统一视图,在工具配套上有非常迫切要求,以避免出现问题黑盒,对于调优本身和未来的投产运维保障带来风险。3- 服务层面,项目驱动的方式,面对行业级的趋势和诉求,在支撑范围和容量上存在短板,需要从可规模复制的维度上,定向沉淀和构建金融关键业务调优的专业服务能力。
-
背景:互联网核心业务基于流量搜推广,实现广告变现。 搜推业务的数据源来自大数据系统。因此互联网云服务化核心算力诉求集中在搜推广、大数据、门户与视频、AI。 其中大数据业务伴随客户量、数据量线性增长。典型业务架构如下: 关键挑战:客户大数据业务上云目前规模有限,典型客户将数据放在线下,弹性分析负载放在线上,呈现存算分离形态。如何提供满足客户业务高性价比大数据算力,成为互联网大数据上云的关键点。解决方案: 鲲鹏算力相比X86算力有几个明显优势:1) 鲲鹏物理核,无HT之间的争抢,L1/L2Cache容量更大。相比X86在高负载条件下性能更加平稳,单核主频相比X86略低,对于IO密集大数据性能无明显劣势 2) 单核内存带宽。 鲲鹏整机160核,相比X86算力,内存通道相同整机内存带宽相当。单核内存带宽相比X86内存大带宽高1倍。3) 采用擎天架构,整机网络带宽一致,相比X86算力,单核网络带宽高1倍4) 鲲鹏物理核相比X86矢量单元多1倍,基于矢量优化可以进一步提升整体性能。 5) 鲲鹏应用使能套件BoostKit 大数据场景OmniRuntime全栈加速库 加速方案加速效果OmniRuntime算子加速Native SQL引擎加速OmniRuntime参数调优调优精准度提升OmniHBaseGSI二级索引优化非rowkey建立索引表,提升效率OmniShuffle 加速内存预提数据交换,小iO聚合业务效果:基于TPC-DS Q29重载业务领先X86算力性能28%。规格CPU内存磁盘Q29性能打分km2.32xlarge.81281024G10 * 1T ESSD100ac8.32xlarge.81281024G10 * 1T ESSD78经验总结:云上大数据数据处理计算部分可以采用鲲鹏算力,实现性价比提升。 特别是面向重载业务场景,即单核带宽敏感、内存带宽敏感的大数据业务场景收益更明显。与此同时,大数据业务场景HCE OS\毕昇编译器\Omni 大数据加速库全栈加速库,实现指令效率大幅提升。释放鲲鹏算力优势。展望:鲲鹏算力在工艺受限条件下,单核计算性能面向X86竞争压力较大,对于非计算敏感的大数据业务,存在场景化优化的可能性。鲲鹏采用物理核与X86超线程核竞争,相比超线程核单核性能更加平稳,单核访存带宽、网络存储带宽更优。这部分差异化优势是鲲鹏大数据算力的核心差异化优势的来源。重载大数据业务条件细分场景,需要进一步识别。鲲鹏物理核硬件单元,包含加解密、压缩单元,矢量单元。 从单元数量和能力都领先X86,需要结合大数据向量化,压缩卸载等进行优化,充分释放鲲鹏硬件单元优势。实现性能超越。
-
背景:25年需要完成某服务鲲鹏切换,鲲鹏资源规模上量,使鲲鹏成为终端云高性能、高可靠、高安全的第二算力选择。基于该背景,华为云联合A云广告业务,深入关键业务场景,持续进行全栈性能调优,整体业务性能优于C7,成为鲲鹏调优的一个标杆案例。本次会议对A云广告业务鲲鹏切换及调优过程进行复盘交流, 识别调优过程改进点,帮助完善调优总结,形成最佳实践,能力外溢其他项目,达成600+服务鲲鹏切换、百万核规模上量的目标。挑战:如何在客户牵引鲲鹏过程中建立信心,确保性能不劣于x86,能够保证业务稳定可靠,是首要解决的问题。面对时延敏感型应用,如何在主频劣于x86的情况下,保证时延不下降,对性能调优后团队带来巨大挑战。同时,调优过程中存在的现网业务和基础用例之间的负载特征不一致,会导致客户现网部署遇到性能瓶颈。分析与对策:系统分析客户特定应用场景的典型负载,梳理鲲鹏全栈解决方案,包括:加速库、OS、调优参数、编译优化等。通过多轮迭代优化,匹配最佳调优方案,并通过软硬协同实现鲲鹏芯片算力的能力全释放。服务KC2调优前P99时延(ms)特征服务:P99.9 时延KC2调优后P99 时延(ms)特征服务:P99.9时延C7P99 时延(ms)特征服务:P99.9时延调优项调优效果约束限制召回635253替换Glibc+Kqmalloc库降低1ms 反馈编译优化降低3ms依赖业务侧流水线改造OS 切换HCE2.0 降低4ms 代码大页优化降低2ms依赖镜像默认配置改造毕昇编译优化降低1ms依赖业务侧流水线改造检索25.5220.120.28OS切换HCE2.0降低3ms 内核参数优化:cluster-aware降低0.4ms 毕昇编译优化降低1ms依赖业务侧流水线改造反馈编译优化降低 1ms依赖业务侧流水线改造特征服务251421代码大页优化降低1ms依赖镜像默认配置改造OS切换HCE2.0降低4ms OS 内核参数优化:cluster-aware降低1ms Nuwa平台调度48u->32u,实现不跨numa降低 5ms MEP532737OS切换HCE2.0降低4ms 代码大页优化降低 2ms依赖镜像默认配置改造OS 内核参数优化:cluster-aware降低1ms 毕昇JDK替换降低2ms依赖业务侧流水线改造Nuwa平台调度48u->32u,实现不跨numa降低 9ms MEP模型TVM转换重编译降低 8ms适配arm向量指令集处理结果:在关键时延敏感型业务,广告业务的调优过程中,耗时2月+,实现4个业务模块的调优,从劣于x86 30%+调优到基本持平,个别子场景,优于x86 15%的效果。总结: 展望:随着智能时代的到来,软件定义硬件正逐渐取代硬件定义软件的主流形态。如何借助软件能力、算法优势、编译器配合,充分释放硬件性能,是鲲鹏竞争力提升的第二曲线。需要以业务应用为突破口,在战略引导下,深入洞察,赋能硬件和下一代芯片演进,这具有重要意义。
-
基于全新一代鲲鹏算力支持Z转码业务降本增效项目背景伴随直播、点播等业务快速兴起,所有互联网门户基本提供了相似能力。从本质看,基于流量广告变现的模式决定了互联网入口的业务形态。头厂商算力规模XX万到XXX万核水平,高性价比视频转码成为视频转码刚性诉求。业务部署架构以离线转码为例,通过转码服务器将主播原始视频在转码服务器进行格式和帧率转码,满足终端客户不同诉求,通过CDN进行分发。 对于实时性要求不高的场景,互联网厂商基于CPU软编算法实现码率、画质、带宽之间的平衡,同时满足客户业务弹性关键诉求。 基于鲲鹏CPU转码方案与关键优势1. 鲲鹏采用物理核高负载性能更加平稳 鲲鹏物理核独占计算单元、指令流水线,性能平稳无争抢、切换。从现网实际表现看,整机负载80%以上条件下,性能平稳,无掉帧等现象。与此同时物理核配套访存cache单元、访存带宽明显优于X86算力,倍增。最新一代鲲鹏CPU主频2.9GHz,性能问题,无降频。X86超线程核,内部通用计算单元、Cache,在高负载条件下存在性能降低或者波动 2. SVE矢量单元数量相比X86高1倍,性能更优 面向视频转码场景,本身是对帧内、帧间压缩。存在大量像素并行处理,基于CPU 矢量单元(单指令多数据)并行处理是业界性能加速的典型范式。由于鲲鹏采用物理核形式售卖,物理核单价相比X86超线程核更低。从矢量单元数量角度,每个鲲鹏物理核包含2个SVE矢量单元,每个X86超线程核1个AVX矢量单元。由于512位矢量运算降频问题,大量业务在128或者256位宽的矢量单元进行运算,因此在矢量运算部分,鲲鹏相比X86可以提升1倍性能。 3. H264/H265加速库+毕昇编译加速,释放鲲鹏算力优势,领先友商10%以上 总结:基于鲲鹏物理核优势,从矢量单元规模、高负载算力平稳性、场景化加速能力,鲲鹏在转码场景相比X86、友商ARM性能更优,同时鲲鹏目录价相比X86更优,是互联网头部厂商转码算力降本增效利器。
-
背景与挑战:web场景是互联网算力突破的广泛场景,主流开源web软件、框架已经支持了ARM生态。面向互联网web业务,鲲鹏如何相比X86构筑差异化竞争力,实现性价比的超越? 对于客户基于Nginx自建ELB典型场景,https短连接多、加解密CPU消耗占比高特征,是否存在软硬件协同优化手段和性能提升手段。 解决方案:以Nginx为例,核心的时延和吞吐在于https OpenSSL加解密过程。通过鲲鹏硬件实现加解密过程加速成为性能提升的关键路径。鲲鹏CPU从硬件设计角度内置硬件加解密单元KAE 云服务实例支持硬件KAE单元的虚拟化,支持kAE系列实例提供加解密关键能力。帮助客户自动完成启用kAE能力相关配置。该单元支持典型的加密算法: 云服务使能KAE license, 基于硬件SR-IOV虚拟化提供kAE系列实例。兼容OpenSSL标准接口,应用层调用无修改。 以Nginx为例,全栈加速能力如下: 业务效果1) 实测相比X86 CPU性能提升60%~70%。客户已广泛使用。2) 目前网络ELB服务已经全面配套鲲鹏kAE2实例,实现业务降本XX%。总结与展望: 鲲鹏算力需要结合细分场景、鲲鹏硬件优势、生态加速能力持续构筑差异化竞争力。在最大规模互联网场景上大胆进行系统取舍和业务创新。 在后摩尔定律,工艺红利、封装红利逐步消失。 面向领域的指令执行效率是未来提升性能和性价比的关键路径。kAE单元通知支持压缩、解压缩能力,面向大数据场景同样具备性能优势和收益。
-
1. AI火热的大背景下,公共模型与私有模型的发展之路在人工智能快速发展的当下,公共模型与私有模型正朝着不同但又相互补充的方向发展:公共模型的发展趋势:a) 性能持续提升与架构创新:公共模型将不断追求性能的提升,通过架构创新来实现智能和成本之间的平衡。如混合专家模型(MoE)架构已被广泛应用,未来会有更多类似的架构创新,使公共模型在处理不同任务时能更高效地激活部分参数,减少计算资源的浪费,提高推理效率。b) 开源生态的繁荣与社区协作加强:开源公共模型的发展将更加迅速,像 Hugging Face 这样的平台将汇聚更多的开发者,他们会基于开源模型创建越来越多的衍生产品,推动公共模型在更多领域的应用和性能提升。社区协作也将加强,通过共享代码、交流心得,共同解决公共模型面临的问题,如安全性问题等。c) 与私有模型融合互补:公共模型不会完全替代私有模型,而是与私有模型相互融合。企业可能会在一些通用任务上使用公共模型,而在涉及敏感数据或特定业务场景时,结合私有模型进行补充,通过构建生成式 AI “协调层”,调用完成任务的最佳模型。私有模型的发展趋势:a) 数据安全与隐私保护驱动增长:对于金融、医疗、政务等对数据安全和隐私保护要求较高的行业,私有模型将得到更广泛的应用。企业和机构会倾向于将 AI 系统部署在自有服务器上,确保敏感数据在内部处理和存储,避免数据泄露风险。b) 定制化需求推动行业专用模型发展:企业为了更好地满足自身特定业务场景的需求,会越来越多地选择定制化的私有模型。通过结合自身的业务流程、数据特点等,对模型进行微调或重新训练,使私有模型在垂直领域的应用更加精准和高效,如按照品牌风格撰写广告文案、特定行业的数据分析等任务。c) 降低成本与提高效率的技术探索:虽然私有模型的初始投资较大,但企业会不断探索降低成本和提高效率的方法。例如,采用更高效的硬件架构、优化模型训练和推理算法等,同时,随着技术的发展,一些开源的模型开发工具和框架也将为私有模型的建设提供更多的便利,降低开发和维护成本。2. 基于鲲鹏云服务器构建普惠AI推理小模型私有模型发展道路上的困难: 对于中小企业而言,在私有模型算力底座的搭建上正面临两难困境:若基于 GPU/NPU 卡自建,初始投入动辄数十万甚至上百万,成本门槛极高,对资金实力有限的中小企业构成沉重负担;而若转向公共模型,又因业务数据敏感(如客户信息、交易数据等),存在数据泄露风险,难以满足隐私保护需求。更突出的矛盾在于,中小企业业务场景相对简单、团队规模有限,即便勉强承担成本搭建了私有算力底座,其实际业务对算力的需求往往远低于底座的承载能力,最终导致硬件资源闲置与资金投入的双重浪费,陷入 “不用公共模型怕泄密,自建私有模型又用不起、用不完”的困境。 开源技术栈 + 华为云能力:赋能鲲鹏云服务器快速构建专属 AI-Agent通过深度集成开源技术栈与华为云核心服务能力,可助力客户基于鲲鹏云服务器,以快速、便捷的方式搭建专属 AI-Agent 解决方案,大幅缩短从方案设计到落地应用的周期。具体落地层面,方案依托鲲鹏云稳定、高效的算力支撑,深度整合Ollama deepseek-r1:7b 模型与Dify 编排推理平台两大核心组件,为 AI 应用开发者打造了一套 “开箱即用” 的一站式开发环境。开发者无需投入大量精力进行底层技术适配与平台搭建,即可直接基于该环境完成模型调用、流程编排、功能调测等全环节操作,且整体方案具备高性价比优势,有效降低开发成本。基于此环境,开发者能够轻松实现多样化知识问答类应用的全流程开发与落地,例如企业智能客服系统(自动响应客户咨询)、个性化教育助手(定制化答疑辅导)、专业领域知识库(如医疗、法律行业知识查询)等,高效满足不同场景下的 AI 应用需求。 鲲鹏 kX1 实例 + HCE OS:低成本承载 DeepSeek 7B 小模型推理基于“鲲鹏 kX1 实例 + HCE OS”架构部署 DeepSeek 7B 小模型,可实现8 tokens/s 的推理性能。尽管相较于 GPU 实例,该性能在绝对数值上存在一定差距,但从实际业务场景出发,8 tokens/s 的吞吐速度完全能够满足智能问答类场景的交互需求 —— 无论是用户日常咨询、信息查询,还是基础问答服务,均能保障流畅的响应体验。更核心的优势在于其极致的成本控制:方案起步成本仅需300 余元 / 月,大幅降低了小模型推理场景的落地门槛,为追求高性价比的客户(如中小企业、个人开发者)提供了一套兼顾性能与成本的优质解决方案,助力其以低投入快速实现 AI 能力的部署与应用。 基于鲲鹏云服务器的 7B/14B 小模型:低成本赋能 AI 实践与行业智能化依托鲲鹏云服务器构建的 7B、14B 量级小模型,凭借 “轻量化部署 + 低门槛成本” 核心优势,精准覆盖两类核心用户群体,为不同场景下的 AI 应用落地提供高效解决方案:一、赋能人工智能从业者,加速创意验证与技术实践针对提示词工程师、AI 产品经理等 AI 领域从业者,该小模型可打造轻量化推理验证环境。其核心价值在于:低成本启动:以每月百元级的起步成本,大幅降低个人技术实践门槛,无需承担高额硬件投入即可拥有稳定的模型运行环境;高效兑现创意:搭配已完成调优的模型编排工具,从业者能快速将 AI 应用构想转化为可验证的原型,高效测试功能可行性、优化交互逻辑,实现 “小成本投入,大体验落地”,助力个人技术能力提升与创意迭代。二、服务中小企业,推动行业场景智能化升级面向驾校、律所等中小企业,该小模型可结合行业需求构建专属智能系统,解决企业数字化转型中 “成本高、落地难” 的痛点。驾校场景:低成本搭建科目一、科目四智能学习系统,企业可根据学员规模灵活选择模型数量,起步投入低、资源粒度可控,既能精准匹配教学需求,又能有效控制预算,提升学员学习效率与驾校教学服务质量;律所场景:集成专业法律知识库后,可快速构建自动法务咨询系统,实现常见法律问题的智能应答,减少人工咨询压力,降低企业人力成本,同时为客户提供 7x24 小时高效响应服务,提升律所服务效率与市场竞争力。 总结人工智能的未来,绝不局限于模型本身的迭代优化,也不止于算力的单纯升级 —— 更关键的是基于模型的上层应用创新。这种创新需要成千上万的开发者与 AI 从业者共同探索,但当前高昂的入门成本,却在无形中阻碍了探索的脚步。而依托鲲鹏 CPU 算力构建的普惠 AI 推理开发平台,正为这一困境提供了破局之道:它以更低廉的成本,为开发者们提供了切实有效的实践载体,让更多人能够轻松迈入 AI 应用创新的门槛,释放创造力。
-
背景: 业界算力按着类型分类包含通算、智算、超算。 云超算是云上关键负载类型,基于Hyperion-Research数据,全球云HPC算力占HPC总空间17%,5年平均增长率17.6%。 包含典型负载工业、科研、气象、能源、制药、金融、生命科学、渲染等广泛场景。芯片仿真作为其中一个细分场景,伴随国家芯片工业崛起,算力诉求持续增长,是未来云超算增长的关键机会和方向。 关键挑战: 芯片仿真算力成本占比较低,相比线下定制硬件如何提供足够的性能、效率,满足客户业务效率即仿真时长诉求是上云的关键。同时芯片仿真是数据敏感型业务,如何切入场景打消客户顾虑是关键挑战。 场景切入选择: 从芯片设计制造环节看,包含芯片设计、生产制造、测试过程。 越向前端数据敏感型越高,对应上云的意愿相对低。制造和测试环境相对数据敏感型更低,上云难度更小。 其中对于算力有强烈诉求的阶段,包含OPC、良品分析等过程。 这部分算力诉求和芯片的工艺、芯片晶体管密度直接相关,伴随国产芯片崛起,这部分算力持续增长。例如:OPC场景(光学畸变矫正仿真), 通过大量的计算仿真,弥补矫正掩膜版,最终实现设计与实际芯片预期一致。 再比如: 良品率检测,通过采集晶圆的图像信息,识别每个单元的良品情况。 容易理解,芯片复杂度、工艺水平直接决定了算力规模诉求。 解决方案: 1)从基础算力角度,选择高主频通用算力,结合生态兼容性可以选择X86、鲲鹏算力。 基于物理核、动态关核提升单核睿频3.6GHz+,单核内存带宽、OS性能优化、RDMA 7us低时延网络满足仿真高性能诉求。 即保障云上资源、算力统一,同时满足云上单核高性能诉求。2)头结点大内存容量诉求,可以选择M系列、E系列算力。基于400Gbps组网支持头结算任务的快速分发和收据收集,提升集群仿真训练效率。3)从调度器角度,可以选择Slum 或者多瑙等调度器,实现资源灵活。满足万核、十万核、乃至百万核集群调度和任务管理诉求。4)基于网络和LandingZone能力组合满足客户数据安全、传输安全。实现事前可控、事中可视、事后可审。5) 基于SFS Turbo,提供百万IO,20G带宽,1~2ms低时延高性能存储。 展望: 面向国产化芯片仿真,需要结合公司芯片积累,繁荣国产生态。面向HPC场景加速服务化能力构筑。提供一站式服务。结合灵衢关键能力,持续提升网络吞吐、降低时延,提升大规模集群线性度。
-
随着国产化替代浪潮的推进,鲲鹏处理器作为自主研发的高性能架构,与开源数据库 OpenGauss 的组合已成为企业级应用的核心选择。OpenGauss 作为华为主导的分布式关系型数据库,天然适配鲲鹏架构的 ARM 指令集,在性能优化、安全特性、高可用设计上深度协同。本文将从架构适配原理出发,详细讲解 OpenGauss 在鲲鹏环境下的部署流程、性能调优技巧及生产环境实践经验,助力企业快速落地国产化数据库方案。一、架构适配:为什么 OpenGauss + 鲲鹏是黄金组合?1.1 指令集深度协同鲲鹏处理器基于 ARM v8 架构,采用精简指令集(RISC)设计,具备低功耗、高并发、多核优势;而 OpenGauss 从内核层面针对 ARM 架构进行了指令优化,包括:汇编级指令替换:将热点函数(如数据加密、哈希计算)用 ARM Neon 指令重写,提升计算效率;内存访问优化:适配鲲鹏的三级缓存架构,优化数据预取策略,减少缓存命中率低的问题;多核调度适配:针对鲲鹏处理器的多 NUMA 节点设计,优化线程亲和性,避免跨节点调度开销。1.2 国产化生态闭环OpenGauss 作为开源国产数据库,与鲲鹏架构、欧拉(openEuler)操作系统共同构成 "芯片 - 操作系统 - 数据库" 的国产化生态闭环。该组合通过了严格的兼容性测试,在政务、金融、能源等关键领域已大规模落地,具备完善的技术支持和生态保障。1.3 核心优势互补特性鲲鹏架构贡献OpenGauss 数据库贡献性能多核高并发、硬件加速(如 AES)分布式架构、查询优化器、列存引擎安全硬件级可信执行环境(TEE)透明加密、访问控制、审计日志高可用双路 / 四路服务器冗余设计主备复制、故障自动切换、数据备份扩展性支持 CPU 扩展至 128 核以上水平分库分表、分布式事务 二、部署前准备:环境规划与依赖检查2.1 硬件环境要求(生产级配置)组件最低配置推荐配置CPU鲲鹏 920 2.6GHz(8 核 16 线程)鲲鹏 920 2.6GHz(32 核 64 线程)内存32GB(主备模式)128GB(分布式模式)存储SSD 500GB(系统盘)+ HDD 2TB(数据盘)NVMe SSD 1TB(系统盘)+ SAS 10TB(数据盘,RAID 5)网络千兆以太网25Gbps InfiniBand(分布式集群)操作系统openEuler 22.03 LTS(ARM64)openEuler 22.03 LTS(ARM64) 2.2 软件依赖安装OpenGauss 依赖以下组件,需提前在鲲鹏服务器上安装: # 1. 安装基础依赖包yum install -y gcc gcc-c++ make cmake zlib-devel libffi-devel openssl-devel libuuid-devel# 2. 安装Python 3.8+(OpenGauss管理工具依赖)yum install -y python3 python3-devel python3-pip# 3. 安装libatomic(ARM架构必需,原子操作支持)yum install -y libatomic# 4. 关闭防火墙和SELinux(生产环境可配置白名单)systemctl stop firewalld && systemctl disable firewalldsed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configsetenforce 0 2.3 系统参数优化(关键步骤)为适配 OpenGauss 的运行需求,需调整鲲鹏服务器的系统参数,编辑/etc/sysctl.conf: # 编辑系统参数配置文件vim /etc/sysctl.conf# 添加以下配置(针对鲲鹏ARM架构优化)net.ipv4.tcp_max_tw_buckets = 10000net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_syncookies = 1net.core.somaxconn = 65535net.core.netdev_max_backlog = 65535net.ipv4.tcp_max_syn_backlog = 65535vm.swappiness = 10 # 减少内存交换,提升性能vm.dirty_ratio = 30vm.dirty_background_ratio = 10kernel.shmmax = 68719476736 # 共享内存最大值(建议为物理内存的50%)kernel.shmall = 16777216# 生效配置sysctl -p 同时调整文件描述符限制,编辑/etc/security/limits.conf: # 添加以下配置* soft nofile 65535* hard nofile 65535* soft nproc 131072* hard nproc 131072 三、OpenGauss 部署:主备模式实战(鲲鹏环境)OpenGauss 支持单机、主备、分布式三种部署模式,本文以生产常用的主备模式为例,讲解在两台鲲鹏服务器上的部署流程(主节点:192.168.1.10,备节点:192.168.1.11)。3.1 下载 OpenGauss 安装包从 OpenGauss 官网下载适配 ARM 架构的安装包(选择 openEuler ARM64 版本): # 创建安装目录mkdir -p /opt/opengauss && cd /opt/opengauss# 下载安装包(示例版本:3.1.0,需替换为最新版本)wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.0/x86_openEuler_64bit/opengauss-3.1.0-openEuler-64bit.tar.bz2# 解压安装包tar -jxvf opengauss-3.1.0-openEuler-64bit.tar.bz2 3.2 配置免密登录(主备节点互信)主备节点需实现 SSH 免密登录,确保安装脚本可跨节点执行: # 在主节点生成密钥对(无需设置密码)ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa# 将公钥拷贝到备节点ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.11# 验证免密登录(无需输入密码即可登录)ssh root@192.168.1.11 3.3 编写部署配置文件创建cluster_config.xml配置文件,定义主备节点信息: <?xml version="1.0" encoding="UTF-8"?><ROOT> <!-- 全局配置 --> <CLUSTER> <PARAM name="clusterName" value="opengauss_cluster"/> <PARAM name="nodeNames" value="node1,node2"/> <PARAM name="gaussdbAppPath" value="/opt/opengauss/app"/> <PARAM name="gaussdbDataPath" value="/opt/opengauss/data"/> <PARAM name="gaussdbLogPath" value="/opt/opengauss/log"/> <PARAM name="dataBasePort" value="5432"/> <PARAM name="masterNode" value="node1"/> </CLUSTER> <!-- 主节点配置 --> <NODE name="node1" hostname="192.168.1.10" ip="192.168.1.10" azName="AZ1" azPriority="1"/> <!-- 备节点配置 --> <NODE name="node2" hostname="192.168.1.11" ip="192.168.1.11" azName="AZ1" azPriority="2"/></ROOT> 3.4 执行安装脚本 # 进入安装目录cd /opt/opengauss/opengauss-3.1.0-openEuler-64bit# 执行安装脚本(--help可查看参数说明)./install.sh -m primary -c ../cluster_config.xml -w 'OpenGauss@123'# 安装成功后,验证集群状态gs_om -t status --detail 3.5 安装验证 # 登录OpenGauss数据库gsql -d postgres -U gaussdb -h 192.168.1.10 -p 5432# 执行SQL查询,验证数据库状态SELECT version();SELECT node_name, node_role, node_state FROM pg_stat_replication; 若查询结果显示主备节点状态为Primary和Standby,且 replication 状态正常,则部署成功。四、性能调优:鲲鹏架构专属优化技巧4.1 数据库参数优化(postgresql.conf)针对鲲鹏处理器的多核、大内存特性,调整以下关键参数: # 编辑配置文件(主备节点需同步修改)vim /opt/opengauss/data/postgresql.conf# 核心优化参数max_connections = 8192 # 最大连接数(鲲鹏多核可支持更高并发)shared_buffers = 32GB # 共享内存(建议为物理内存的25%)work_mem = 64MB # 每个工作线程的内存(根据并发调整)maintenance_work_mem = 2GB # 维护操作内存(如索引创建)effective_cache_size = 96GB # 有效缓存大小(建议为物理内存的75%)wal_buffers = 16MB # WAL日志缓冲区checkpoint_completion_target = 0.9 # checkpoint完成目标(减少IO峰值)max_parallel_workers_per_gather = 8 # 每个查询的并行工作线程数(建议为CPU核心数的1/4)parallel_leader_participation = on # 领导者参与并行查询# 生效配置(无需重启数据库)gs_ctl reload -D /opt/opengauss/data 4.2 存储优化(针对鲲鹏服务器存储架构)使用 NVMe SSD 作为数据盘:鲲鹏服务器支持 PCIe 4.0 接口,NVMe SSD 可发挥最大 IO 性能,建议将数据目录和 WAL 目录分别挂载到不同的 NVMe SSD;关闭磁盘缓存刷新:在 RAID 卡配置中启用 "写缓存策略"(Write Back),提升写性能;文件系统选择:推荐使用 XFS 文件系统,格式化时指定-s size=4096(与鲲鹏处理器的内存页大小对齐)。4.3 网络优化(分布式集群场景)启用 RSS 中断均衡:鲲鹏服务器支持 RSS(接收端缩放),可将网络中断分散到多个 CPU 核心: # 启用RSSethtool -C eth0 rx-usecs 100ethtool -K eth0 rxvlan on 调整 TCP 参数:优化网络连接稳定性和吞吐量(已在部署前配置);使用 InfiniBand 网络:分布式集群建议采用 25Gbps 以上的 InfiniBand 网络,降低节点间通信延迟。4.4 性能测试验证使用gs_perf工具测试优化后的性能(对比优化前后的 TPCC、TPC-H 指标): # 执行TPCC测试(1000仓库规模)gs_perf -M tpcc -D testdb -U gaussdb -w 'OpenGauss@123' -s 1000 -c 64# 执行TPC-H测试(100GB数据量)gs_perf -M tpch -D testdb -U gaussdb -w 'OpenGauss@123' -s 100 -c 32 在鲲鹏 920 32 核服务器上,优化后 OpenGauss 的 TPCC 吞吐量可提升 30% 以上,TPC-H 查询延迟降低 20% 左右。五、生产环境实践:高可用与运维最佳实践5.1 主备切换实战OpenGauss 支持自动故障切换,也可手动触发切换: # 手动切换主备节点(在备节点执行)gs_ctl switchover -D /opt/opengauss/data# 切换后验证状态gs_om -t status --detail 5.2 数据备份与恢复 # 全量备份gs_basebackup -D /opt/opengauss/backup -h 192.168.1.10 -p 5432 -U gaussdb -F p -X stream -P -v# 恢复数据(需停止数据库)gs_ctl stop -D /opt/opengauss/datarm -rf /opt/opengauss/data/*gs_basebackup -D /opt/opengauss/data -h 192.168.1.10 -p 5432 -U gaussdb -F p -X stream -P -v -Cgs_ctl start -D /opt/opengauss/data 5.3 监控告警配置启用内置监控工具:OpenGauss 提供gs_monitor工具,可监控数据库状态、性能指标: gs_monitor -d postgres -U gaussdb -h 192.168.1.10 -p 5432 -w 'OpenGauss@123' -t 30 集成 Prometheus+Grafana:通过 OpenGauss 的导出器(exporter)将指标接入监控系统,配置 CPU、内存、IO、连接数等告警阈值。5.4 安全加固修改默认密码:生产环境需定期更换数据库管理员密码,复杂度需满足大小写字母 + 数字 + 特殊字符;配置访问控制:通过pg_hba.conf限制允许访问的 IP 地址: vim /opt/opengauss/data/pg_hba.conf# 添加白名单配置host all all 192.168.1.0/24 md5 启用透明加密:OpenGauss 支持数据文件透明加密,需在部署时指定加密密钥。六、常见问题与排查方案6.1 安装失败:libatomic.so.1 缺失问题原因:鲲鹏 ARM 架构缺少原子操作库。解决方案: yum install -y libatomicln -s /usr/lib64/libatomic.so.1 /usr/lib/libatomic.so.1 6.2 主备同步失败: replication 连接超时问题原因:防火墙未开放 5432 端口,或网络延迟过高。解决方案: # 开放端口(生产环境建议配置白名单)firewall-cmd --add-port=5432/tcp --permanentfirewall-cmd --reload# 检查网络延迟ping 192.168.1.11 -c 10traceroute 192.168.1.11 6.3 性能瓶颈:CPU 使用率过高问题原因:SQL 语句未优化,或并行查询参数配置不合理。解决方案:用gs_top查看占用 CPU 较高的会话和 SQL;优化 SQL 语句(添加索引、调整 join 方式);降低max_parallel_workers_per_gather参数,避免并行查询占用过多 CPU。七、展望OpenGauss 在鲲鹏架构下的部署与优化,核心在于架构协同和参数适配。通过本文的部署流程、优化技巧和实践经验,企业可快速搭建稳定、高性能的国产化数据库环境。随着 OpenGauss 4.0 版本的发布,其在分布式事务、HTAP 混合负载、AI 优化等方面的能力将进一步增强,与鲲鹏架构的协同效应也将更加显著。在国产化替代的大趋势下,掌握 OpenGauss + 鲲鹏的组合技术,不仅能提升企业 IT 架构的自主可控性,还能获得性能与成本的双重优势。建议运维和 DBA 人员深入理解两者的架构特性,结合业务场景进行针对性优化,充分发挥国产化软硬件的潜力。
-
案例介绍本案例通过常用的开发工具VS Code,通过cli直连云开发环境,实现本地代码编写调试,远程发布等功能。案例内容一、概述1. 案例介绍本案例选择VS Code作为开发工具,通过创建开发者空间云开发环境,并使用VS Code在本地进行代码编写调试,一键部署到云开发环境,让开发者以更符合自身开发习惯的作业模式体验华为开发者空间云开发环境。2. 适用对象企业个人开发者高校学生3. 案例时间本案例总时长预计60分钟。4. 案例流程说明:登录开发者空间云开发环境;本地下载cli文件;建立隧道连接云开发环境;通过VS Code完成代码编写调试发布。5. 资源总览本案例预计花费0元。资源名称规格单价(元)时长(分钟)华为开发者空间 - 云开发环境鲲鹏通用计算增强型 kc1 | 2vCPUs | 4G | HCE免费60二、环境配置1. cli方式创建云开发环境登录华为开发者空间,参考案例《华为开发者空间-云开发环境(虚机)CLI工具远程连接操作指导》完成“二. Web端创建和管理云开发环境”、“三. PC端创建和管理云开发环境中的1.开机、2.建立隧道连接”章节完成安装cli工具包、配置本地环境、创建云开发环境、开机、建立隧道连接的功能。 三、本地IDE直连云开发环境完成上传下载1. 下载VS Code 并安装 Remote-SSH 插件下载安装VS Code,官网链接 https://code.visualstudio.com/Download 。然后安装Remote-SSH插件,打开VSCode,在左侧点击“extensions”图标,在搜索框中搜索Remote-SSH,点击“install”进行安装。 安装成功之后,在左侧会显示一个远程链接图标。如下图所示:2. 连接云开发环境点击远程连接图标,新建远程连接。如下图所示: 在输入框中输入用户名和端口号,并回车。ssh -i "C:\Users\登录用户\.devenv\.ssh\IdentityFile\2689067ff1b24f87b24fc7581207445e" developer@127.0.0.1:1222注意:-i后跟的路径为该环境对应的私钥文件路径,需要替换为自己的路径;developer即为创建云开发环境时用户自定义的用户名,默认为developer;端口号即为步骤二环境配置中,连接云开发环境时,建立隧道所设置的本地监听端口号。选择保存配置文件并连接环境在右下角选择connect,如下如所示: 下载 VS Code Server连接远程开发环境成功,如下图所示: 3. 文件上传下载VSCode资源管理器-打开远程开发环境的目录。 上传一个文件,我们把本地一个测试文件拖拽到developer目录下,并用命令确认是否上传成功,结果显示如下: 下载文件类似,我们把远程开发环境的文件可以下载到本地,步骤如下: 四、本地IDE直连云开发环境完成代码开发1. 代码开发下面我们在VS Code上做一个代码运行,新建一个test文件夹,在test文件下建个Go文件夹,并建一个main.go的文件。将如下代码拷贝到main.go中: package mainimport ( "fmt" "io" "log" "net/http" "os" "time")func main() { // 注册处理函数到根路径 "/" http.HandleFunc("/", handler) // 获取端口参数,默认使用8080 port := ":8080" if len(os.Args) > 1 { port = ":" + os.Args[1] } // 启动 HTTP 服务器,监听指定端口 fmt.Printf("Starting server on http://localhost%s\n", port) err := http.ListenAndServe(port, nil) if err != nil { log.Println(err) }}// 处理 HTTP 请求func handler(w http.ResponseWriter, r *http.Request) { // 设置响应头内容类型为纯文本 w.Header().Set("Content-Type", "text/plain") // 处理 GET 请求 if r.Method == "GET" { fmt.Fprintf(w, "Hello, client! time: %v", time.Now().Format("2006-01-02 15:04:05")) return } // 处理 POST 请求 if r.Method == "POST" { body, err := io.ReadAll(r.Body) if err != nil { http.Error(w, "Failed to read request body", http.StatusInternalServerError) return } defer r.Body.Close() // 回显客户端发送的内容 fmt.Fprintf(w, "Received: %s", body) return } // 如果不是 GET 或 POST 请求,返回 405 Method Not Allowed http.Error(w, "Method Not Allowed", http.StatusMethodNotAllowed)}2. 项目编译打开远程终端。 使用命令进入到代码路径。cd test/go编译代码,依次执行如下命令:go mod init httpgo mod tidygo buildls./http3. 远程访问在浏览器通过本地端口访问:这样我们就可以在本地开发代码,直接编译并运行在远程开发环境上了!
-
应用程序原来使用 海思Hi616CPU环境,现在更换成鲲鹏920CPU环境 原来的程序可以直接切换到新的机器上吗 ,还是需要全部更换掉。从新购买
-
华为鲲鹏(Huawei Kunpeng)是华为公司基于自研的 ARM 架构处理器 打造的一系列计算产品和解决方案,是华为在信息技术领域推进 自主可控、安全可靠、高性能计算 的重要战略组成部分。一、鲲鹏的基本概念“鲲鹏” 最初指的是华为推出的一款 基于 ARM 架构的高性能服务器处理器,后来逐渐扩展为一个完整的 计算产业生态体系,包括:硬件:如鲲鹏系列服务器处理器(如鲲鹏 920)、TaiShan 系列服务器等;软件:如欧拉操作系统(openEuler)、GaussDB 数据库、昇思 MindSpore AI 框架等;云服务与解决方案:如华为云上的鲲鹏云服务;开发者生态与工具链:支持应用迁移、优化和开发,助力合作伙伴构建基于鲲鹏的产品。二、核心产品:鲲鹏处理器鲲鹏处理器 是华为自主研发的 服务器级 ARM 架构 CPU,其代表性产品是:鲲鹏 920(Kunpeng 920)发布时间:2019年架构:基于 ARMv8 指令集,华为自研设计制程工艺:7nm特点:高性能:多核设计,支持多达 64 核甚至更多,主频高,适用于大规模并行计算;高能效:相比传统 x86 架构服务器,在特定场景下功耗更低;面向大数据、分布式存储、ARM 原生应用等场景做了优化;应用领域:云计算、大数据、人工智能、边缘计算、电信与金融等行业核心业务系统。三、TaiShan 服务器华为基于鲲鹏处理器推出了 TaiShan 系列服务器,包括:TaiShan 200、TaiShan 5280 等型号主要用于:企业级数据中心政府、金融、电信、能源等关键基础设施对安全性、自主可控要求高的场景TaiShan 服务器通常搭载鲲鹏处理器,运行国产操作系统(如 openEuler),并适配国产数据库与中间件,形成完整的国产化信息技术解决方案。四、鲲鹏生态体系华为围绕鲲鹏打造了一个开放的 计算产业生态,目标是推动基于 ARM 架构的通用计算发展,主要举措包括:硬件开放:提供鲲鹏主板、服务器参考设计,让合作伙伴可以快速开发基于鲲鹏的产品;软件开源:如开源欧拉操作系统(openEuler)、数据库 GaussDB(部分开源)、AI 框架 MindSpore 等;使能伙伴:通过技术支持、培训、认证等方式帮助软件开发商、系统集成商迁移和优化应用,使其能在鲲鹏平台上高效运行;云服务支持:华为云提供 鲲鹏云服务,用户可以直接在云端使用基于鲲鹏的计算资源;开发者支持:提供编译器、工具链(如毕昇编译器)、迁移工具等,帮助开发者适配和优化应用。五、鲲鹏的战略意义自主可控:在当前国际环境下,鲲鹏作为国产化处理器,有助于减少对国外技术(如 Intel、AMD 的 x86 架构)的依赖;多样性计算:推动计算架构的多元化,与 x86 架构形成互补,满足不同场景的计算需求;国产信息技术体系:鲲鹏与欧拉、高斯、昇腾等一起,构成了华为推动的 “数字中国底座”,支撑政务、金融、能源等关键行业的数字化与安全需求;生态共建:通过开放合作,吸引全球和中国的软硬件企业加入,共同打造基于 ARM 的计算生态。六、简单类比(便于理解)可以把“鲲鹏”理解为华为版的“Intel/AMD 服务器芯片 + 与之配套的软硬件生态”。只不过:它基于的是 ARM 架构,而不是传统的 x86;它是由 华为自研,并且致力于构建一套 中国自主、安全、可控 的计算体系;不仅包括芯片,还涵盖了操作系统、数据库、云服务、工具链和开发者生态等。总结华为鲲鹏 是华为推出的基于 ARM 架构的 高性能服务器处理器及其计算生态体系,目标是推动国产化、自主可控的信息技术发展,构建面向未来的多样性计算生态。它不仅包括硬件芯片(如鲲鹏920),还包括 TaiShan 服务器、欧拉操作系统、数据库、云服务、开发者工具等,是华为在计算产业的重要战略布局之一。
-
2025年8月8日,华为云MaaS大模型即服务平台实践技术沙龙在九云科教集团成功举办。本次活动由华为云HCDG长沙核心组周毅、黄蓉发起,来自于北京并行科技、北京惠农通正、杭州泰师科技、湖南中科博远、湖南拓维信息、湖南科创信息等企业的30余位人工智能领域开发者齐聚一堂,活动围绕当前热门的MaaS平台展开深入讨论,共谋AI大模型的应用与发展。 长沙九云信息科技有限公司董事长高宏祥发表致辞,高度赞赏华为作为中国科技领军企业的担当精神,特别提到其自主创新的鸿蒙系统、昇腾AI等突破性成果。他希望与会开发者把握AI时代机遇,依托华为云等开放平台,共同探索智能教育、行业大模型等创新应用,推动AI生态高质量发展。 华为云DTSE技术专家分享了华为云在AI大模型和数字化转型的成功实践和技术积累,介绍了如何使用ModelArts Studio一站式大模型开发平台完成模型的训推与部署,结合平台提供的模型API、MCP、应用模板快速构建应用,实现行业应用的高效落地,并与企业开发者们深度探讨了平台底层能力。 华为云DTSE高级工程师在活动中,带领大家在华为开发者空间中体验了《基于DeepSeek和Dify构建心理咨询师应用》的案例,此案例使用Dify对接华为云MaaS平台,成功连接到基于昇腾训练的DeepSeek大模型,实现了心理咨询师应用的功能。这个案例的实操,让开发者了解到华为开发者空间为开发者提供的高效、稳定的开发环境,同时华为云MaaS平台作为Dify内置模型供应商,对接更加便捷。 华为云战略合作伙伴——金蝶软件的院校高级顾问杨名先生分享了“智联云途:华为云携手金蝶云苍穹探索智能时代新路径”主题演讲。金蝶云苍穹ERP深度融合华为云AI平台,通过技术共生、场景共创、生态共享,正在重塑企业数字化转型的路径。从底层架构的自主可控,到行业场景的深度渗透,再到开发者生态的繁荣,双方不仅为企业提供 “开箱即用” 的智能解决方案,更通过持续的技术创新与模式探索,引领智能时代的产业变革。这种 “云+端+AI”的协同模式,将成为推动中国企业数智化升级的核心引擎。 华为云伙伴——网久软件联合创始人&COO周建军先生分享了“基于华为云部署开源组件的方法”主题演讲,Websoft9 多应用托管与运维平台可以通过华为云商店一键购买并创建ECS实例,自动完成部署。支持多应用托管、可视化运维及资源扩展,10分钟内即可上线。 在集中讨论环节中,与会企业围绕MaaS平台、Agent开发技术、AI人才培养等展开深度交流。大家一致认为,MaaS平台通过提供预训练模型和低代码工具,可显著降低企业AI应用开发门槛;2025年被视为Agent技术商业化落地的关键元年,各行业都在积极探索智能体在业务流程优化、客户服务等场景的应用价值;而针对AI人才培养问题,与会代表建议通过校企合作建立实训基地,并开发体系化培训课程,重点培养既懂AI技术又熟悉行业应用的复合型人才,以支撑企业智能化转型需求。 华为云高级技术专家毛定宇为九云科教集团的产品总监周毅和运维部经理黄蓉,授予华为云开发者组织HCDG长沙站旗帜。这对于中部地区的开发人员来说是一个重要里程碑时刻,再次感谢长沙HCDG核心组成员们对于本次活动的辛勤付出和认真负责,相信长沙HCDG会在以后举办出更多有价值有意义的精彩活动、赋能越来越多的开发者。 HCDG(Huawei Cloud Developer Group 华为云开发者社区组织),是基于城市圈和技术圈,由开发者核心组自发开展的开放、创新、多元的社区技术交流组织。致力于帮助开发者学习提升、互动交流、挖掘合作,推动技术应用与本地产业结合、数智化转型和开发者文化发展。迄今为止,越来越多的社区和组织开始广泛的与HCDG进行密切的合作与往来,相信在今后的日子里,HCDG会以更加崭新的面貌出现在开发者视野中,我们期待越来越多优秀的开发者、创业者、运营人、产品人、老师、学生等加入到HCDG,让HCDG茁壮成长、遍地开花、节节高!
-
体验华为开发者空间鲲鹏系列案例,反馈改进建议,请直接在评论区反馈即可体验指导:案例中心
-
资源购买资源名称规格操作系统存储ECS鲲鹏通用计算增强型 km1.xlarge.4 4vCPUs 16GiBHuawei Cloud EulerOS 2.0 标准版 64位 ARM版系统盘:通用型SSD,40GiB安装必要的软件1.安装condamkdir -p ~/miniconda3wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh -O ~/miniconda3/miniconda.shbash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3rm -f ~/miniconda3/miniconda.shsource ~/miniconda3/bin/activateconda init --all创建虚拟环境conda create -n tigerbot python=3.9源码下载1.下载TigerBot的源码下载源码 git clone https://github.com/TigerResearch/TigerBotcd TigerBot中将requirments.txt的flash-attn==2.1.1注释掉,因为这个是使用GPU时才需要安装的依赖。pip install -r requirements.txt 2.下载模型pip install modelscope modelscope download --model TigerResearch/tigerbot-7b-chat-v3 --local_dir model/tigerbot-7bmodelscope download --model TigerResearch/tigerbot-7b-base-v3 --local_dir model/tigerbot-7b-base-v3这个模型下载在TigerBot路径下输入命令,然后就会将模型下载到TigerBot/model下。模型下载如下图所示。 启动项目1.修改代码修改基础推理代码vim infer.py将device的GPU启动修改为CPU启动方式。 修改web_demo.py代码,这里是新建一个web.py用来区分原来的基础代码基础的web_demo代码实现的UI界面比较单一,启动方式必须是选择一个模型来启动。我对代码进行了一些优化:1.将原来的GPU推理方式修改为CPU推理。2.启动路径设置为文件夹,文件夹下面包含的模型在web界面都能够切换使用。3.增加了新建对话和历史对话查看,优化了输入框和回答框。其新建的web.py内容如下:(vim web.py)import streamlit as stimport osimport torchfrom datetime import datetime# 自定义模块(确保该模块路径正确)from utils.modeling_hack import get_model# 设置页面标题st.set_page_config(page_title="TigerBot - 基础问答", layout="wide")st.title("TigerBot - 基础问答 (CPU Mode)")# 模型根目录MODEL_PATH = "/home/TigerBot/model"# 获取所有子文件夹作为模型选项try: models = [name for name in os.listdir(MODEL_PATH) if os.path.isdir(os.path.join(MODEL_PATH, name))]except FileNotFoundError: st.error(f"Model path '{MODEL_PATH}' not found.") st.stop()# 用户选择模型selected_model = st.selectbox("Choose a model", models)# 如果选择了模型,则加载模型if selected_model: model_dir = os.path.join(MODEL_PATH, selected_model) @st.cache_resource def load_model(model_path): print(f'Loading model from: {model_path}') return get_model(model_path=model_path) try: model, tokenizer, generation_config = load_model(model_dir) model.to('cpu') # 确保在 CPU 上运行 except Exception as e: st.error(f"Failed to load model: {e}") st.stop() # 初始化会话状态 if "messages" not in st.session_state: st.session_state.messages = [] if "history_sessions" not in st.session_state: st.session_state.history_sessions = [] # 侧边栏:新建对话 & 历史记录 with st.sidebar: st.header("对话管理") if st.button(" 新建对话"): st.session_state.messages = [] st.subheader("历史对话") for idx, session in enumerate(st.session_state.history_sessions): timestamp = session["timestamp"] title = f"{idx + 1}. {timestamp}" if st.button(title, key=f"session_{idx}"): st.session_state.messages = session["messages"] # 显示聊天记录(兼容旧版 Streamlit) chat_container = st.container() with chat_container: content_html = "" for message in st.session_state.messages: role = message["role"] content = message["content"].replace("\n", "<br>") color = "blue" if role == "user" else "green" content_html += f'<div style="margin:10px;padding:10px;border-left:3px solid {color};"><b>{role}:</b> {content}</div>' st.markdown(f""" <div style="max-height:500px;overflow-y:auto;border:1px solid #ccc;padding:10px;margin-bottom:10px;"> {content_html} </div> """, unsafe_allow_html=True) # 输入区域 user_input = st.text_area("请输入您的问题...", key="main_input") send_button = st.button("发送") # 处理用户输入 if send_button and user_input: st.session_state.messages.append({"role": "user", "content": user_input}) # 构造输入并推理 inputs = tokenizer(user_input, return_tensors='pt', truncation=True, max_length=512).to('cpu') outputs = model.generate( input_ids=inputs['input_ids'], attention_mask=inputs['attention_mask'], generation_config=generation_config ) full_response = tokenizer.decode(outputs[0], skip_special_tokens=True) st.session_state.messages.append({"role": "assistant", "content": full_response}) # 清空输入框并刷新 st.experimental_rerun() # 保存当前对话为历史记录 if send_button and user_input: current_session = { "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "messages": st.session_state.messages.copy() } st.session_state.history_sessions.append(current_session)2.推理基础推理运行代码为:python infer.py --model-path /home/TigerBot/model/tigerbot-7b运行之后的结果是这样的,在终端进行提问,会获得对应的回答,然后exit能够退出运行。原来web_demo.py的运行代码为:export PYTHONPATH='./' streamlit run apps/web_demo.py -- --model_path /home/TigerBot/model/tigerbot-7bWeb.py运行代码如下:export PYTHONPATH='./' #确保能够找到模块和包streamlit run apps/web.py -- --model_path /home/TigerBot/model运行之后的结果是这个就说明成功启动了,这里需要注意,需要将8501端口添加到安全组。然后打开http://123.249.104.17:8501网页在TigerBot大模型问答网页,能够选择tigerbot权重模型,选择的数量是自己从modelscope下载的。进行问答时在下面的问题输入框,点击发送就能够获得回答了,上面的白框能够看到问答记录。
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签