GeoEast海量数据处理资源优化配置技术研究与应用——计算机论文
随着地震勘探的不断深入,野外采集方法随之不断发展进步,宽方位宽频带高密度地震勘探在国内外已日趋主流,随之而来的数据量成几何级数增长,对计算机软硬件配置提出了更高的要求,对存储系统在存储容量、数据可用性以及I/O性能等方面带来了巨大的挑战。同时,GeoEast系统作为国内自主研发的首款地震资料处理解释一体化软件,在进行海量数据处理过程中,也提出了更高的要求。我们在海量数据处理设备方面,还处于摸索阶段,目前在计算资源硬件选用了Intel E5-2670 CPU和万兆网络,同时也配备了多套高性能存储系统,但在处理过程中仍然存在着较多问题,问题主要集中体现在I/O性能方面。针对GeoEast软件在海量数据处理时的I/O效率较低这一问题,我们做了多方面的研究。本文主要介绍如何从软件硬件两方面对海量数据处理系统进行优化配置,从而提高海量数据处理的整体性能。为海量数据处理的软硬件优化配置提供一定的参考。
一、海量数据处理系统的硬件配置
作为国内首套海量数据处理系统,该系统在硬件架构的选型和配置上做了大量的调研和探索,计算节点选用了Intel Xeon E5-2670的8核cpu处理器,主频为2.7GHz,该处理器支持大内存的配置。内存配置为128GB,配置了5块600GB的SAS硬盘,配备了2400TB的高性能并行存储系统,采用10GbE的万兆网将系统进行互联。计算能力达到50Tflops。
该套系统的计算能力已基本满足海量数据处理的需求,但在实际生产过程中仍然还存在着系统运行效率较低、数据I/O瓶颈、GeoEast处理系统与多种并行文件系统(GPFS、OneFS、PanFS)的兼容性等一系列疑难问题,针对这些问题做了大量的研究,并提出了一定的优化技术解决方案。
二、存在的问题及解决方案
1、GeoEast处理系统与多种高性能并行存储间的兼容性优化技术
非海量数据处理作业量不大且数据量小,使用普通的DAS存储便能满足要求。但对于两宽一高地震勘探的海量数据处理,由于数据量高达几十甚至上百TB,需要同时发送数百个作业,这样势必对存储提出了更高的要求。普通DAS存储已无法满足海量数据并发存取的要求,该套海量数据处理系统选择了高性能存储来进行海量数据的并发读写,主要采用GPFS、PANFS和ONEFS等多种并行文件系统。针对这几种高性能存储,在相同的应用环境下,分别在GeoEast处理系统上做了一系列的测试,测试主要分为操作系统级测试和应用软件测试两个部分。系统级测试主要是针对各文件系统进行了iozone读写性能测试,测试结果如表3.1所示。应用软件测试方面是使用不同的文件系统在GeoEast处理软件中进行海量数据的读写压力测试,同时发送500个读写20GB数据的作业,分析作业运行过程中软件交互操作速度以及作业运行的平均时间,测试结果如表3.2所示。
文件系统类型 (16台) |
Iozone 写带宽(GB/s) |
Iozone 读带宽(GB/s) |
ONEFS |
3.46 |
5.56 |
GPFS |
4.47 |
5.57 |
PANFS |
3.27 |
3.59 |
表3.1不同类型高性能存储在操作系统级上的iozone读写性能测试结果
文件系统 类型 (16台) |
写带宽 (GB/s) |
读带宽 (GB/s) |
交互作业 (打开SeisView) |
同时发送500个作业 平均读写22GB数据 的作业时间(s) |
稳定性 |
ONEFS |
6.2 |
8.6 |
需等25秒 |
15360 |
好 |
GPFS |
18 |
23 |
需等3分钟 |
48000 |
较好 |
PANFS |
16 |
16 |
需等10秒 |
15392 |
最好 |
表3.2不同类型高性能存储在GeoEast处理系统上的兼容性测试结果
通过对测试结果的分析表明:各文件系统与GeoEast软件之间存在着一定的兼容性差异,结果表明PNAFS和ONEFS文件系统无论从海量的交互操作方面,还是批量作业运行效率、稳定性等综合性能方面都有较好的优势。虽然GPFS文件系统在其他软件中的并发存取效果较好,但在GeoEast处理系统上的应用效果却略逊一筹,针对这一问题,结合GeoEast软件的读写特点对GPFS并行文件系统进行优化研究,从而提高GPFS并行文件系统在GeoEast处理系统上的并发存取效率。
GPFS并行文件系统有两种使用模式,GPFS Client和CNFS模式。其中GPFS Client在I/O节点和计算节点都要安装GPFS软件,每个Mount节点都会负责管理一部分元数据,目的是为了将元数据的管理分布化,在多节点大量数据并发时能提高系统元数据的处理能力。CNFS模式是只在I/O节点上安装GPFS软件,I/O节上挂载GPFS文件系统后通过CNFS export出去,供其他计算节点进行访问,它是GPFS与NFS的结合。CNFS模式的好处便在于GPFS的元数据操作只需要在不多的几个节点之间进行。通过对I/O节点的监控以及测试结果的分析,这几个I/O节点本身没有成为整个系统的瓶颈,系统的I/O吞吐量不会有太大的影响,在NFS缓存的帮助下,反而还有所提高。
由于GeoEast软件中数据读写均为一道道读写,在数据读写时要不断地对中间数据进行list操作,获取相应的元数据信息。而GPFS为了保证其POSIX标准,在相应某些命令式需要做多节点之间元数据的同步保证磁盘和内存里元数据的一致性。这种类型的操作对GPFS而言开销较大,若元数据节点越少,反而性能会更好。
通过对GPFS的两种应用模式在GeoEast处理系统上的并发存取效率进行测试,测试结果如表3.2所示。结果表明GPFS的CNFS模式较GPFS Client模式在GeoEast软件中的应用效果及交互速度均有很大的提升。因此采用GPFS的CNFS模式来代替GPFS Client模式,解决了GPFS在GeoEast处理系统上并发存取效率低的问题。
文件系统挂载方式 |
segyinput(s) |
geodiskout(s) |
total(s) |
交互操作 |
GPFS CLIENT |
686.826 |
2222.66 |
3115.29 |
交互慢 |
CNFS |
370.062 |
919.556 |
1303.07 |
交互正常 |
表3.2 GPFS Client模式与CNFS模式在GeoEast软件中的应用测试结果
2、oracle数据库的优化配置
GeoEast处理系统采用的是oracle数据库管理模式,两宽一高地震资料处理的一大特点就是数据量大,在作业多、数据量大的情况下会与oracle数据库之间进行频繁地通讯,产生多个访问oracle数据库的进程,对软件、oracle服务器产生巨大的负载,据多次观察软件与oracle数据库之间的通讯进程能高达三四千个,无论是CPU还是内存,对oracle数据库服务器都造成巨大的压力。Oracle数据库服务器的超负荷运转势必会降低软件的应用效率,当oracle数据库繁忙时往往表现为软件交互速度慢、反应迟钝、作业运行速度慢等一系列现象。为提高软件的应用效率,分别从内存的配置和oracle数据库所用硬盘的类型两方面对oracle数据库服务器进行优化配置研究,并取得了较好的效果。同时,在实际生产过程中出现了单个项目同时只能运行168个作业的现象,显然已不能满足海量数据处理同时要发送几百上千个作业的需求,通过对oracle数据库的研究,找出了对作业个数限制消除的方法。
(1)增加oracle服务器的内存
当软件与oracle数据库之间的通讯进程较多时,会出现内存被耗尽而去调用swap交互区的情况,图3.1为oracle服务器内存不够而使用交换区的情况。当机器开始使用swap交换区时,机器的性能会急剧下降,从而直接影响到软件系统的整体性能,无论是作业的速度还是软件的交互效率,都会受到严重的影响,因此oracle服务器的内存大小也是影响海量数据处理效率的一大因素,适当增加oracle服务器的内存大小可从一定程度上提高软件系统的整体性能。通过多次测试研究表明,目前高密度海量数据处理的oracle服务器内存大小为128GB较为合适,太小会导致内存不够而使用交换区,太大会导致内存的浪费。
图3.1 oracle服务器内存耗尽使用交换区的情况
(2)oracle数据库所在磁盘类型的选择
众所周知,SSD固态硬盘在读写速度上要比普通的机械硬盘快,特别是随机读写速度方面,较传统硬盘有较大的优势。Geoeast软件在数据处理过程中会频繁访问oracle数据库,特别是在作业多、数据量大的情况下,数据库所在磁盘的速度会对软件的效率产生一定的影响,在面对频繁大量随机读写oracle数据库的情况下,如果采用SSD固态硬盘作为oracle数据库磁盘,软件的的性能会有一定的提升。
(3)消除单个项目同时运行的作业个数限制
海量数据处理由于数据量高达几十甚至上百TB,单个项目需要同时运行数百个作业,在实际生产过程中由于受到oracle数据库的限制,最多只能同时运行168个作业,其他作业虽然从后台作业调度中看是处于ACTIVE状态,但作业实际上没有运行,需要等待前面的作业做完后才会运行,通过修改oracle数据库参数,可消除该限制,从而提高软硬件的运行效率。具体修改过程如下,使用oracle账号连接要修改的工区。
%sqlplus test/test(要修改的工区名称)
SQL*Plus: Release 10.2.0.1.0 - Production on Fri Aug 23 21:28:02 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> desc ps_leveled_index;(查看该工区下是否还有操作,若正在生成索引时工区就会被锁,暂时无法修改,确保工区是在无操作情况下才能修改)
Name Null? Type
----------------------------------------- -------- ----------------------------
INDEX_ID NOT NULL NUMBER(10)
SEISMIC_DATA_SET_ID NUMBER(10)
KEYWORD_NUMBER NUMBER(10)
FIRST_KEYWORD_CODE NUMBER(6)
SECOND_KEYWORD_CODE NUMBER(6)
THIRD_KEYWORD_CODE NUMBER(6)
FORTH_KEYWORD_CODE NUMBER(6)
FIFTH_KEYWORD_CODE NUMBER(6)
READABLE VARCHAR2(1)
DESCRIPTION VARCHAR2(2000)
CREATED_BY VARCHAR2(32)
CREATE_DATE DATE
MODIFIED_BY VARCHAR2(32)
MODIFY_DATE DATE
SQL> alter table ps_leveled_index drop constraint pk_ps_leveled_index; (解除作业同时可发送的个数限制)
Table altered.
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
3、GeoEast软件配置优化
在GeoEast数据处理系统中地震数据是分块存放的,存放在磁盘下的地震数据文件会根据软件中设定的单个数据文件大小的值将文件分为多块存放,在GeoEast2.5版本下缺省为10GB,单块地震数据的大小不能超过地震数据文件大小限制所设置的值,若超过地震数据将被自动拆分。在高密度宽方位资料处理中,单个数据量可高达几百GB,如果地震数据文件大小的限定值定义的太小,势必会导致地震数据分块太多,从而在数据目录下产生多个数据文件块。在软件交互界面和磁盘数据所在目录查看数据时,如果数据块文件个数太多,在系统统计数据的大小时会加重系统负载,从而影响交互的效率。若将SeismicFileSizeLimit值适当调大,可以减少地震数据目录下数据块文件的个数,查看数据时交互的反应速度也会随之增快。
图3.3 GeoEast软件单个文件大小设定
三、结束语
作为首次对高密度宽方位海量数据处理系统的计算机软硬件配置研究,通过对软硬件各方面的探索及优化配置,取得了一定的成效。但还存在着较大的提升空间,例如:I/O方面的性能依然存在着很大的潜力。在软硬件的兼容性方面还有待进一步的探索研究,更好地满足海量数据处理的需求,提高处理效率和机器的利用率。
- 2025年中科院分区表已公布!Scientific Reports降至三区
- 官方认定!CSSCI南大核心首批191家“青年学者友好期刊名单”
- 2023JCR影响因子正式公布!
- 国内核心期刊分级情况概览及说明!本篇适用人群:需要发南核、北核、CSCD、科核、AMI、SCD、RCCSE期刊的学者
- 我用了一个很复杂的图,帮你们解释下“23版最新北大核心目录有效期问题”。
- 重磅!CSSCI来源期刊(2023-2024版)最新期刊目录看点分析!全网首发!
- CSSCI官方早就公布了最新南核目录,有心的人已经拿到并且投入使用!附南核目录新增期刊!
- 北大核心期刊目录换届,我们应该熟知的10个知识点。
- 注意,最新期刊论文格式标准已发布,论文写作规则发生重大变化!文字版GB/T 7713.2—2022 学术论文编写规则
- 盘点那些评职称超管用的资源,1,3和5已经“绝种”了