查字典论文网 >> 国产自主可控应用性用性能优化研究

国产自主可控应用性用性能优化研究

小编:

摘要:基于国产基础软硬件的自主可控技术是建立信息安全的重要保证。为了提高国产平台的业务应用系统的性能,本文提出了应用性能优化的技术,包括典型基础软硬件、数据库、中间件性能的优化,从实验结果看,这些技术提高了业务应用的性能。

关键词:自主可控;示范应用;性能优化

中图分类号:TP29 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.02.002

0 引言

随着网络和信息化的飞速发展,信息安全已与政治安全、经济安全、国防安全、文化安全共同成为国家安全的重要组成部分。信息安全威胁作为一种新的非传统安全威胁,正在对政治稳定、经济发展、公共利益乃至国家安全造成重要影响。信息安全问题已经成为世界各国信息化发展进程中面临的一个共性问题,各主要大国纷纷制定战略,采取措施,加强应对。美国奥巴马政府强调“美国的繁荣和安全依赖于网电空间”,成立网络空间司令部,启动“国家网络靶场”、“爱因斯坦”计划、“半人马”工程,大力发展网络侦察、监控、预警技术能力。

为应对信息安全威胁,我国近年来大力开展信息化基础设施的自主可控研究和实践推广工作,打造全国产自主可控产业已经被定为我国重点支持的六大战略性新兴产业之一。多家科研院所研究CPU、操作系统、数据库、中间件等基础软硬件,并形成较好的初步产品。“十二五”期间工信部重点开展上述基础软硬件产品的集成应用,期望以应用需求来牵引自主基础软硬件相关问题的解决。2012年工信部共批准全国十二家党政军单位开展常规性应用的应用研究及示范工程,2013年到2014年工信部启动10000台规模复杂业务应用示范工程。

1 国产基础软硬件现状

“十一五”和“十二五”以来,国家工业和信息化部大力推进我国信息化基础设施的国有化研制开发和市场推广。“十一五”期间国家已经研制成一批具有一定技术水平的基础软硬件产品。目前正在开展示范应用迁移、集成、优化、整合等应用示范研究工作,重点开展主要软硬件产品的体系整合、集成和适配的联合攻关,目前已整合形成两套基于国产基础软硬件的信息化产品体系,如图1所示。

目前我国自主研发的基础软硬件产品与国外的基础软硬件产品相比较,还存在较大的差距。

一、国产基础软硬件技术成熟度不高,技术储备明显不足。相对于Intel芯片、Windows操作系统、Oracle数据库等的商业化产品,国产基础软硬件研发时间短,人财物投入不足,应用实施案例少,通用性差,测试验证压力不够,产业化水平低,导致目前绝大多数国产基础软硬件的技术成熟度不够高,系统性能可靠性不高,虽然可以基本满足专用的、简单的业务应用需求(如办公系统、简单业务信息系统等),但是复杂环境、大规模、实时性并发性要求高的应用能力尚不够,很多问题还没有完整呈现出来。

二、国产基础软硬件的信息化生态环境尚待大力完善。目前全国产化计算环境虽然已经具备基本的工作支撑条件,但是信息化生态环境远未完善,比如日常工作所需的小工具还很缺乏,软件建模研发测试运维等全生命周期系统软件不完备,行业专用软件更是匮乏;同时,专门从事该领域系统工具、常用工具和专业性工具研发的组织和程序员很少。总之,整体信息化环境要实现从可用到好用,赢取一般用户的主动使用意愿尚存在较大差距。

三、国产基础软硬件的体系化能力尚不足,产业化程度差。目前国产基础软硬件基本上还是以科研院所为主体,资本雄厚的企业集团参与不同软硬件之间的技术整合工作不够,目前主要依赖攻关基地机制。这种非市场化的技术整合机制效果不显著,不同软硬件之间的产品整合存在较大的困难,虽然单个产品的技术能力较强,但是要达到1+12的效果很难。

四、基于国产基础软硬件的整体安全机制需要深入研究。目前各个独立的国产基础软硬件的安全技术相对比较先进,也通过国家权威安全机构的相关认证。但是,部分基础软件是基于国外开源代码改造而成,代码深入分析程度不足,可能存在深层次的安全缺陷,同时不同基础软硬件产品之间的安全机制集成和整合存在很大问题,安全体系化能力尚不足。目前的自主可控只是实现安全可靠的一个基本条件,要实现信息系统整体化的安全可靠还需要大量研究和实践工作。

2 基于国产基础软硬件的应用优化方法研究

工信部2012年以来持续推进示范应用工程,目的是借助于市场和用户的力量,以业务需求为牵引,多方加大投资,带动国产基础软硬件的深层次技术研发,以及不同基础软硬件应用整合能力的改善与优化,重点解决应用迁移、系统适配、性能优化等问题,积累经验,培养人才。

我们所进行的示范应用项目是在终端和服务器两端,实现五个典型业务应用从Windows+Intel技术体制迁移到飞腾CPU+中标麒麟操作系统技术体制。经过一年多的迁移集成适配攻关,不同基础软硬件产品可以保证基本兼容,形成基本满足学院主要受众使用的国产化业务信息系统。但是,总体而言,五个应用的综合集成性能与运行于国外计算环境的性能差距较大,相当于国外计算环境的6至7年前水平。深入分析,这种整体性能不佳的主要原因为:一方面是各个基础软硬件的技术成熟度不足,另一方面是不同系统是单独研发的,未能充分利用相互优势。

在全国产化的基础软硬件产业环境下,国产基础软硬件产品的功能和特性与传统普遍的软硬件产品存在一定差距,产品组合和选择余地和范围较窄,国产化软硬件生态环境很不完善。装备学院示范应用项目开展技术比较、测试验证、迁移优化、集成改造等工作,选择一套较为适合当前业务应用需求的国产基础软硬件应用支撑平台。该平台是一个基于国产自有知识产权的信息化体系,提供支持信息访问、传递、以及协作的集成化环境,实现特定业务应用的开发、集成、部署与管理;能支持个性化定制和业务规则适应性调整,为整体业务提供一体化、安全性高、适应性强的整体服务。示范应用项目的应用支撑平台体系如图2所示。 在示范应用研究初期,整体性能远远不能满足常规的用户体验需求,用户无法使用和接纳,5个并发用户的常规数据查询响应时间都会达到10秒以上,而且系统持续运行2小时之后,响应时间达到无法忍受的程度。为此,我们针对典型基础软硬件开展有针对性的优化技术研究。性能优化思路主要包括如下几个方面。

(1)参数配置优化。思路是调整X5、数据库、中间件、操作系统等相关设备组件的配置参数,减少检查项和检查次数,支持预编译,实现各组件协调运行。主要是X5业务架构平台、数据库、中间件、操作系统的参数配置简化或者省略,放宽或者撤销安全控制、完整性验证、系统日志等机制,力争提升登录和其他应用模块的处理速度。

(2)语句性能优化。思路是加强SQL语句处理性能分析,优化SQL语句。研发前期开展数据库日志分析,发现部分SQL语句的长度达到1000多个字符,有的SQL语句的查询范围过于宽泛,需要根据经验分析完善。

(3)界面渲染优化。思路是改变界面加载方式(由完全下载后一次性显示转换为一边下载一边显示),简化因界面美观效果所带来的额外处理,去掉不必要页面字段,把页面字段中动态加载的字段值修改为固定值,删除页面定时刷新,降低或关闭应用非强制需求的检查,执行步骤采取分步策略,样式表统一存放等措施开展。

(4)数据管理优化。主要开展优化数据库设计和部署、优化多库设计调整、数据库索引建立和使用等具体举措。

(5)浏览器配置优化。重点开展浏览器加载和配置策略、页面缓存、安全验证等具体举措。

3 应用层性能优化技术方法研究

下面主要从数据库优化和中间件优化两个方法介绍示范应用项目所采用的优化技术。

3.1 人大金仓数据库性能优化技术

示范应用项目使用人大金仓数据库,主要采取的优化技术措施为:

一、调整日志文件相关参数。

二、SQL语句优化。

主要措施包括:建立合理的索引,充分利用单列索引、组合索引、表达式索引等索引原理和优势,应用合理的索引;合理编写sql语句,比如批处理语句放在一个事务之中,使用like和操作符等;调整排序性能,大量的排序操作很昂贵,涉及到排序的操作比如distinct、intersect、except、orderby、group by、union等,尽量不使用distinct和group by操作,使用union all代替union;KingbaseES SQL优化,KingbaseES数据库采用了多版本并发机制(MVCC),虽保证了多用户访问时相互操作互不影响,但同时也损失了一些聚集操作的性能,要根据应用需求选择合适的SQL语句。

3.2 中创中间件性能优化技术手段

示范应用项目使用中创中间件InforSuite AS V6,主要采取的技术举措的思考是:不管是YGC还是FullGC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。

一、Java启动参数

Java启动参数共分为三类。一是标准参数(一),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;二是非标准参数(-X),默认JVM实现这些参数的功能,但是并不保证所有JVM实现都满足,且不保证向后兼容;三是非Stable参数(-XX),此类参数各个JVM实现会有所不同,将来可能会随时取消,需要慎重使用。

二、GC性能方面的考虑

对于GC的性能考虑,主要参考两个方面的指标:吞吐量throughput(工作时间不算GC的时间占总的时间比)和暂停pause(Gc发生时应用程序对外显示的无法响应)。

另外一个对于应用程序流畅性运行影响的因素是young generation的大小。young generation越大,minorcollection越少;但是在固定heap size情况下,更大的young generation就意味着小的tenured generation,就意味着更多的major collection(major collection会引发mminor collection)。

NewRatio反映的是young和tenured generation的大小比例。NewSize和MaxNewSize反映的是younggeneration大小的下限和上限,将这两个值设为一样就固定了young generation的大小(同Xms和Xmx设为一样)。

如果希望,SurvivorRatio也可以优化survivor的大小,不过这对于性能的影响不是很大。SurvivorRatio是eden和survior大小比例。

一般而言,server端的app会有以下规则:首先决定能分配给vm的最大的heap size,然后设定最佳的young generation的大小;如果heap size固定后,增加young generation的大小意味着减小tenured generation大小。让tenured generation在任何时候够大,能够容纳所有live的data(留10%-20%的空余)。

年轻代大小选择应遵循的原则:

・响应时间优先的应用:尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择)在此种情况下,年轻代收集发生的频率也是最小的。同时,减少到达年老代的对象。

・吞吐量优先的应用:尽可能的设置大,可能到达Gbit的程度,因为对响应时间没有要求,垃圾收集可以并行进行,一般适合8CPU以上的应用。

・避免设置过小.当新生代设置过小时会导致:YGC次数更加频繁;可能导致YGC对象直接进入旧生代,如果此时旧生代满了,会触发FGC。 三、年老代大小选择

响应时间优先的应用:年老代使用并发收集器,所以其大小需要小心设置,一般要考虑并发会话率和会话持续时间等一些参数。如果堆设置小了,可能会造成内存碎片,高回收频率以及应用暂停而使用传统的标记清除方式;如果堆大了,则需要较长的收集时间。最优化的方案,一般需要参考以下数据获得。

・并发垃圾收集信息、持久代并发收集次数、传统GC信息、花在年轻代和年老代回收上的时间比例。

・吞吐量优先的应用:一般吞吐量优先的应用都有一个很大的年轻代和一个较小的年老代。原因是,这样可以尽可能回收掉大部分短期对象,减少中期的对象,而年老代仅存放长期存活对象。

四、较小堆引起的碎片问题。

因为年老代的并发收集器使用标记,清除算法,所以不会对堆进行压缩。当收集器回收时,会把相邻的空间进行合并,这样可以分配给较大的对象。但是,当堆空间较小时,运行一段时间以后,就会出现“碎片”,如果并发收集器找不到足够的空间,那么并发收集器将会停止,然后使用传统的标记,清除方式进行回收。如果出现“碎片”,可能需要进行如下配置:

・-XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩;

・-XX:CMSFullGCsBeforeCompaction=0:上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩。

五、JVM参数的设置

特别是-Xmx,-Xms,-Xmn,-XX:SurvivorRatio,-XX:MaxTenuringThreshold等参数的设置没有一个固定的公式,需要根据PV old区实际数据YGC次数等多方面来衡量。为了避免promotion faild可能会导致Xmn设置偏小,也意味着YGC的次数会增多,处理并发访问的能力下降等问题。每个参数的调整都需要经过详细的性能测试,才能找到特定应用的最佳配置。

4 结论

本文在国产基础软硬件所形成的服务器端和终端计算环境下,以示范应用为基础,研究开展应用需求为牵引的整体性能优化的技术路线和具体举措。实验证明,上述措施在示范应用中能够起到较好效果,在30个用户并发请求的情况下,一般性查询和事务处理响应时间可以实现在8秒以内,复杂事务处理和查询响应时间可以保证在15秒内完成。但是基于国产软硬件的集成适配和性能优化是个长期工作,还需要开展很多基础性研究,同时以应用需求为牵引大力推动各方技术力量联合攻关。

热点推荐

上一篇:基于Hadoop处理小文件的优化策略

下一篇:如何对幼儿进行德育教育论文 幼儿园关于德育教育之类的论文