1、PB 级地震数据并行计算系统调优最佳实践摘要:随着地震勘探采集力度加大,地震数据的体量更是达到了新的高度,同时也使得地震数据的处理规模和处理周期线性增长,对软硬件系统设备在计算特征、计算需求、计算性能等方面提出了更高的要求,对资源利用率性能要求也水涨船高。针对这些问题,结合实际生产环境,提出了一套系统化的解决方案,通过地震数据的计算特征,设计开发布控了一套能处理 PB 级地震数据体量的系统结构和高并行处理模式;在计算需求方面,对系统和软件性能进行了统一优化,提高了资源利用率,整个解决方案不仅能够满足 PB 级地震数据的高并发的处理需求,还具有良好的经济性、可扩展性,在对实际推广使用大规模集群体
2、系结构有很好的参考价值。关键词:并行计算系统;PB 级地震数据;系统调优赵玉梅,程实,郑玉霞,张红杰,王向辉,杜吉国(中国石油东方地球物理勘探有限公司研究院)开发应用 1引言随着地震数据量急剧增加和专业应用软件的大型化,对数据处理并行化的计算能力要求越来越高,未来更大规模的数据量和高并行处理能力之间的配比会不断攀升,也会不断突破极限,对现有大规模集群的架构会提出更高的要求。本文主要对PB级地震数据处理在大规模集群并行计算的效率提升进行综述,从软件和系统架构等方面,对数据处理的应用性能优化关键核心技术进行研究分析。在大型化应用软件、大规模集群系统和生产项目的资源支持下,用实际的地震数据和生产环境
3、进行压力测试,完成数据库架构和内核参数、系统参数、调度系统的调优;并持续提升大规模集群下数据库和调度等方面的性能,形成一套大规模集群系统和数据库管理的解决方案,以实现在资源统一调度和计算高并行性的最佳配置,从而提高作业的运行效率和设备的使用效能。2PB 级地震数据计算特征和系统架构2.1地震数据计算特征数据地震数据的处理规模由 TB 级提升至 PB级甚至未来的 EB 级,系统架构从单节点多核转到多节点多核,以实现处理能力的扩展。地震数据的计算特征,分为计算密集、数据密集、交互密集三种重要的计算,对大规模集群的架构需求也不一样,对计算能力,传输能力,响应能力侧重点也各不相同。目前地球物理勘探应用
4、系统中,不同应用类型在处理大数据有不同的算特征,在常规地震数据处理过程中,有达上千 GB 或者 TB 的作业,有从数据中抽取几十个 TB 或者 GB 的数据做参数试验,要求作业总体运行时间短,而用图形化方式显示的地震数据,数据量在几 MB 到几十 MB,要求系统响应短。大数据量必然需要大计算,如果利用单进程进行数据处理,几十 TB 的地震数据只是简单地输入输出操作,就需要十几个小时,对整体数据的单步处理就会需要几天到几十天的运行时间,要完成整个工区的数据处理,似乎成了不可完成的任务,所以对地震数据并行处理成为缩短处理周期必须采取最有效的方法。而传统的数据处理模式是按次序读取地震数据,然后对数据
5、一次计算,最后输出计算结果,本质是串行处理,现在把地震数据分割成若干独立作者简介:郑玉霞,女,本科,中级工程师,主要研究的方向为高性能计算效能、云平台管理、作业调度效率际贸易学专业,高级经济师,现在中石化石油勘探开发研究院从事海外项目经济评价工作。石油工业计算机应用COMPUTER APPLICATIONS OF PETROLEUMMarch.20232023年3月1092023年3月石油工业计算机应用的小块,把作业任务分配到多个节点多个核进行计算,提高并行能力,提升设备利用率。2.2 系统架构PB 级地震数据计算特征之一就是并行计算机的高密度读写操作和复杂计算占比很大,目前石油行业采用的通用
6、集群架构规模一般有上百个节点,形成很多计算孤岛,没有汇聚所有计算资源以完成对 PB 级地震数据的处理,当集群规模达到千节点以上时,对 PB 级数据的处理规模是适用的。除了有计算能力相匹配的大规模集群设备,还有相应的并行软件系统,包括节点管理、数据管理、调度管理、友好交互界面等。本次测试搭建了 1600多个节点的超大规模集群和主从架构数据库,以及自动并行引擎模式的运行环境,主力应用软件的80%处理模块都可以并行运行,依托实际生产项目和实际生产环境进行了多次一千到一万个输入输出作业的压力测试。3性能调优技术和策略性能调优是一个很大的课题,本文调优的范围只局限在系统管理层和软件管理层,对大数据的并行
7、计算性能进行研究分析和调优,尽可能提升系统运行效率,减少系统的瓶颈,提高数据库整体的性能。3.1 性能调优的方法性能优化的方法有很多种:一种是硬件级调优,简言之,就是更换性能更优的硬件,比如更快更大的内存条、SSD 固态硬盘等,系统效能会极大提高,现实却是大规模集群统一更换设备的可能想很小;最好的性能优化就是运行级调优,即从运行环境上调整,通过监控系统性能和计算时效率来跟踪问题所在,通过改变一些系统运行参数,修改数据库参数,更新调度系统程序,调试作业参数等,也可以极大的提升系统整体运行效率,且具有成本低、易操作、效果好等优点。整个优化先从系统调整开始,通过标准化作业测试,以确保系统运行处于正常
8、状态,调优之前,先要了解系统性能的极限,PB 级地震数据的高并行化计算属于高密集性读写操作,当大量并行作业同时进程访问地址空间,一般的缺省内存页和打开文件数是不能满足高并发下的计算需求,需要对系统内核参数的最大文件数、最大进程数、共享内存页等参数进行调整,去除系统瓶颈。接下来对应用系统调整,重点是对数据库和调度系统的调优,为了同时能分发万个以上作业,必须对数据库参数设置读写分离,以支持超大规模的并发访问;在压力测试的高并发的场景中,当大量作业请求时,对调度系统也产生了很大的压力,优化相关程序,发现调度中存在不合理限制控制规则,修改参数和指标,提升调度系统的性能。3.2调优策略搭建和配置了 16
9、00 多个节点大规模集群,创新研发了主从架构和读写分离技术,根据用户对数据的访问特征,提供了不同的读写连接,隔离了数据读写间的相互影响,提高了高并发下数据访问的规模,实现了服务端的负载均衡。主从数据库模式在两个节点有相同的数据库,起到了数据库备份的作用,提高了数据库的安全性。主从数据库能有效地分流了数据库访问压力,降低主数据库的负载,很好地提升系统的性能,优化用户体验。对数据库的读写分离策略,一般配置成主数据库(master)完成写操作,从数据库(slave)完成读操作,主数据库利用主从复制将自身数据的改变同步到从数据库集群中,然后主数据库负责处理写操作(当然也可以执行读操作),从数据库负责处
10、理读操作,不能执行写操作,根据压力测试结果,可以部署多个从数据库提高读操作的速度,减少主数据库的压力,提高系统总体的性能。数据库的默认参数的配置在大图 1 系统架构1102023年3月赵玉梅,等:PB 级地震数据并行计算系统调优最佳实践规模集群环境中,性能往往无法达到最优,当数据库服务器的并发请求量过大时,最大连接数的合理性将决定数据库的性能,根据服务器性能进行评估设定,连接数不是越大越好,过多的连接可能会导致数据库服务器僵死。大规模作业并发下数据库采用灵活的流复制,不同的事务设置不同的同步级别,异步流复制技术,“先写日志后写数据”核心思想,极大的减轻了 I/O 的压力。其中作为流复制基础 W
11、AL 相关参数的设置,是为了保证事务的特久性和数据的完整性,降低了数据在变更过程中失败的风险,从而提高数据库的性能。大规模作业并发作业不但对数据库性能有很大影响,对作业调度系统也产生巨大压力,甚至会使调度系统崩溃。在 2000、4000、8000、10000 万个并行作业,调度系统存在不同程度的存在假死、卡死、死掉等状态,同时还存在作业分配混乱现象,一个作业会有两个作业号和两个作业会有相同作业号,甚至还有不同比例作业丢失现在,针对存在的问题,对作业调度系统进行优化升级。4调优实践对数据库进行相关研究分析,首先组建了 1600多个节点的大规模集群和搭建主从架构数据库服务器;其次用相同条件下生成千
12、万个输入数据为100G 的、可重复提交的测试作业,模拟作业大数量产生的高并发模式,并记录和收集大量的性能数据,确保一万个以上作业能正常运行,用这些性能数据找出所需调整的核心参数;第三对大批量作业发送时调度系统出错和许可无响应延迟等存在的问题进行分析,完善调度系统功能。4.1 核心参数调优实测(1)对数据库服务器的系统核心参数进行调整,首 先 对 fs.file-max 参 数 从 165536 调 整 到6553600,解决作业根本无法运行的问题,即打开文件数不够;其次对 Huge_page 参数从缺省改成 2048kB,对系统内存比较大的情况下,使用_参数可以极大提高数据库服务器的性能。(2
13、)对影响数据库性能的核心参数进行优化配置,首先是 shared_buffers 参数,后台进程从用户接收到请求后将不会再直接去读取和写入数据库对象文件,而是通过在 RAM 中的 buffer 中处理数据,当 share_buffer 大于系统 RAM 的 25%,可获得一个非常好的性能,测试结果说明设置成一个更大值,即 40960MB,物理内存的 40%,不但能使一万个作业全部正常运行,而且数据库服务器也能运行的平稳高效。如果设置太高,需要同时增加相关参数的配置,否则会造成系统性能下降。其次对 wal_buffers 参数,这个参数是把数据库的 WAL 记录写入缓存区,然后写到磁盘上,这个缓冲
14、区的大小缺省是 16M,当万作业的高并发时,这个数值必须大于设置为 50M,测试系统开销是 514431.86 秒,为了保证作业正常运行,调整参数大小后,系统开销降低到了 360617.36 秒,降低了 30%。最后对万作业并行计算不能忽略连接数 max_connections 参数的调整优化,当并发连接请求量很大时,调高该参数值,会以增加并行连接数量,提高作业成功率。测试显示,通过核心参数深层次的优化后整体性能大幅提高 20%,对PB级地震数据的处理,在这套有效的优化方案下,完全可以支撑万作业的高并发运行。(3)对调度系统的优化,完善作业调度系统,保证大批量作业并行发送图 2 实测参数配置图
15、 3 实测参数1112023年3月石油工业计算机应用图 4 实测参数配置表 1 实测参数结果图 5 大量并行作业提交时间图 6 实测结果1122023年3月赵玉梅,等:PB 级地震数据并行计算系统调优最佳实践表 3 作业运行成功率情况图 7 单数据库和主从数据库连接数、系统负载图 8 单数据库和主从数据库服务器内存变化、系统打开文件数表 2 测试结果1132023年3月石油工业计算机应用时调度系统的稳定性和效率。通过修改程序解决了调度繁忙时导致作业重复发送、作业丢失、作业归档时间过长等问题,特别是修改了用户删除调度系统里显示已完成作业时长时间无响应,很影响用户使用效果的问题。4.2应用效果(1
16、)在 1600 多个节点集群上配置单数据库和主从数据库服务器,同时发送10000 个输入输出作业,总输入数据量 1PB,单数据库和主从数据库的连接数、CPU、负载等性能对比,测试结果,性能发挥的很好,如表格 8 和图 9,图 10显示。对比测试单节点数据库服务器和主从架构数据库服务器在生产环境下的性能。主从数据库有效地分流了数据库访问压力,各种数据库和系统资源的占用比单个服务器都有明显的降低,能支撑更大规模的作业运行。(2)完成了对数据库参数、系统内核参数持续优化。使用主从数据库模式,依托实际生产环境进行了一千到一万个作业的多轮不同组合测试,编写脚本对作业运行中的参数记录进行实时记录,包括连接
17、数、CPU、负载等情况。图 9 主从数据库模式下同时运行多种作业时数据库连接数和内存情况从上图测试结果看,作业越多,访问数据库的模块越多,数据库和系统的开销越大,合理配置数据库服务器以及系统内核、数据库参数是保障大规模作业运行的关键。同时运行 10000 作业时,数据库最大连接数达到 31782,内存变化量达到 100GB,最大打开文件数达到 70 多万。图 10 同时运行一万个作业数据库及系统资源占用情况从测试结果来看,核心参数和作业数的匹配,对提高系统的稳定性,提升作业成功率,其效率和可扩展性复合预期,完全能达到海量数据处理的要求。(3)完善优化了批量后台作业并行提交作业效率,提高了作业提
18、交效率,后台作业,提升作业调度系统性能。通过对调度系统的改进以及对数据库及内核参数的优化,能完成 PB 级地震数据的大批量作业的高并发,具备了支撑千节点上同时运行万作业的能力。优化后,性能整体了 30%多,提高了万级数量作业的成功率和运行效率。5 总结本文从对 PB 级地震数据处理方式并行计算效能方面进行探讨,从数据库、调度方面进行完善优化,性能进一步提升,形成稳定支撑大规模生产环境的GeoEast-iEco 平台;完善了作业调度系统,保证大批量作业时调度系统的稳定性和效率,对大型物探软件系统的架构和开发具有很好的参考价值。实测效果复合预期,很好地满足了 PB 级地震数据在并行处理和提效方面的
19、需求,打造高效、稳定、功能完善的软件示范平台。总而言之,经过这一系列的分析调优下来,对于系统来说,应用层的性能提升相当可观,同时也在优化的过程中建立起了一套自己独有的思考方式,虽说目前优化下来的这套配置并不是最完美层的,但是它确实最适合系统的。参考文献:1 胡辉,崔鹏,邓琼等.PostgreSQL 高可用实战 M.第一版.电子工业出版社,2022.3.2 陈文光.大数据与高性能计算机J.大数据,2015,(1):29-34.3 徐少波,白雪莲,曾强,等.GeoEast 地震数据处理解释一体化软件系统J.石油工业计算机应用,2016,24(3):6-11.4曾宇,王洁。中国高性能技术及标准现状分析J.信息技术与标准化,2006,24(10):9-12.图 9 主从数据库模式下同时运行多种作业时数据库连接数和内存情况图 10 同时运行一万个作业数据库及系统资源占用情况114