(计算机科学与技术专业论文)sip短信中心在多核平台上的性能分析和优化.pdf_第1页
(计算机科学与技术专业论文)sip短信中心在多核平台上的性能分析和优化.pdf_第2页
(计算机科学与技术专业论文)sip短信中心在多核平台上的性能分析和优化.pdf_第3页
(计算机科学与技术专业论文)sip短信中心在多核平台上的性能分析和优化.pdf_第4页
(计算机科学与技术专业论文)sip短信中心在多核平台上的性能分析和优化.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机科学与技术专业论文)sip短信中心在多核平台上的性能分析和优化.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京邮i u 人学硕1 :研究生毕业论义 7 洲5 洲8 8 删8 3y 1 独创性声i 刿 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他人 已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机构的学位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 申请学位论文与逢抖若葡不实之处,本人承担一切相关责任。 ,: 本人签名:_ 刍辑日期:q u 厶三乙上二 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保留并向国 家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借阅;学校可以 公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇 编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权二抟。非保密论文注释:本学位 论文不属于保密 本人签名: 导师签名: 日期:勘f21 圭:逝7 日期:兰! ! :兰! 【7 北京邮电人学顾1 j 研究生毕业论文 独创性声明 北京邮i 乜人学颂l :研究生毕业论文 摘要 slp 短信中心在多核平台上的性能分析和优化 摘要 随着电信业越来越多的选择通用计算机设备来替代昂贵的专用设备, 电信软件也不断面临通用计算平台变革的挑战。多核平台从诞生开始就 受到业界的广泛关注,如今已经成为通用计算平台的主流。因此,如何 挖掘多核平台的性能潜力,成为电信软件面临的新的挑战。 本论文首先从理论基础和方法论的层面为电信软件在多核平台上的 开发和优化给出依据,介绍了在多核平台上如何对软件性能进行评估以 及进行性能优化所要注意的事项,然后阐述一款真实电信软件s i p 短 信中心的性能分析和优化过程,将理论和实践联系在一起,力图给 读者一个清晰的多核平台上电信软件开发的认识。 在分析优化过程中,我们通过改进编解码算法、对软件进行多进程 和多线程的改造,并联系操作系统对动态内存管理的具体算法进行分析, 使得短信中心在基线性能和可扩展性两个方面都有了质的飞跃。而且整 个优化过程以详细完备的测试为基础,使得每一步的优化有据可依,提 高了开发的准确性和全面性。 关键词:电信软件多核优化并行性 1 1 1 北京邮i u 人学硕l :研究生毕业论文摘要 , 北京邮一也人学顾l j 竺堕t 兰堡些堡塞 垒堕堕竺! _ _ - _ _ - - _ - _ _ _ _ _ - _ - - _ - _ _ - _ _ - _ _ - _ _ - - _ - _ _ - 一一一 t h ee v a l u a t i n ga n do p t i m i z a t i n go f s i p s m s c e n t e ro nm u i j t i c o r ep l a t f o r m a b s t r a c t n o w a d a y s ,t e l e c o ms o f t w a r e i sn o l o n g e rd e p e n d e n t o n s p e c i f i e d e q u i p m e n t s ,b u tc a l li m n o ng e n e r a l p u r p o s ec o m p u t e r s ,b yw h i c ht h ed e s i g n , d e v e l o p m e n ta n dm a i n t e n a n c e c a nb em u c he a s i e r a tt h es a m et i m e ,i no r d e r t oa d d r e s si s s u e ss u c ha sp o w e rc o n s u m p t i o na n dh e a t ,m u l t i c o r ec o m p u t e r d e v i c e sa r eb e i n gw i d e l yu s e d ,a st h er e s u l to fw h i c h ,t h es e r i a li n f r a s t r u c t u r e c a nn ol o n g e rb ea d a p t e dt ot h e s en e wt r e n d s h o wt om a x i m i z ep a r a l l e l i s mi s b e c o m i n gt h en e w c o n c e r n i nt h i s p a p e r , t h et h e o r e t i c s a n dm e t h o d o l o g yf o re v a l u a t i n ga n d o p t i m i z a t i n ga r eg i v e na st h eb a s i cf o u n d a t i o nf o rt h ed e v e l o p m e n to ft h e t e l e c o ms o f t w a r eo nm u l t i c o r ep l a t f o r m t h eb a s e l i n ep e r f o r m a n c ea n d s c a l a b i l i t ya r et h ek e ya s p e c t sw ef o c u s e do ni nt h ep r o c e s s b ys p e c i f i c a l l y d e s c r i b i n gt h ee v a l u a t i n ga n do p t i m i z a t i n gp r o c e s so f ar e a lt e l e c o ms o f t w a r e , s i ps m sc e n t e r t h e o r ya n dp r a c t i c ew i l lb el i n k e dt o g e t h e rt og i v er e a d e r sa c l e a rk n o w l e d g eo ft e l e c o ms o f t w a r e sd e v e l o p m e n to nm u l t i c o r ep l a t f o r m i nt h i sa n a l y s i sa n do p t i m i z a t i o np r o c e s s ,w ei m p r o v e dt h ee n c o d i n ga n d d e c o d i n ga l g o r i t h m ,e m p l o y e dm u l t i - p r o c e s sa n dm u l t i - t h r e a dd e s i g np a t t e r n s t oi n c r e a s et h ep a r a l l e l i s m ,a n da n a l y z e ds p e c i f i c a l l yt h ed y n a m i cm e m o r y a l l o c a t i o na l g o r i t h mo ft h el 仆xk e r n e l ,a l lo f w h i c hm a d et h ep e r f o r m a n c e a n dt h es c a l a b i l i t yaq u a l i t a t i v el e a po v e r t oi m p r o v et h ea c c u r a c ya n d c o m p r e h e n s i v e n e s s aw e l ld e s i g n e dt e s ti n f r a s t r u c t u r ew o u l d b ep r e s e n t e d k e yw o r d s :t e l e c o m es o f t w a r em u l t i - c o r eo p t i m i z a t i o n p a r a l l e l i s m v 北京邮电人学硕i j 研究生毕业论义a b s t r a c t , 北京邮i 乜人学硕1 :4 0 f 究生毕业论文目录 目录 第一章绪论l 1 1 研究背景l 1 2研究目的1 1 3 研究思路和方法2 1 4 论文的结构3 第二章多核处理器和软件性能优化理论介绍4 2 1 多核趋势及其对电信软件的影响4 2 1 1 多核处理器的发展4 2 1 2 电信软件的特点6 2 1 3 多核趋势带来的挑战8 2 2 多核模式下的软件分析方法。1 0 2 2 1阿姆达尔定律1 0 2 2 2 锁和锁竞争。1 2 2 2 3 性能分析的方法1 3 2 3l i n u x 平台多核性能优化l5 2 3 1 l i n u x 进程和线程的概念1 5 2 3 2l i n u x 对多核处理器的支持1 7 2 3 3 并行性能优化。1 8 2 4 本章小结2 l 第三章s i p 短信中心介绍2 2 3 1 s i p 短信中心概述2 2 3 2s i p 短信中心的结构和功能2 2 3 2 1 s i p 短信中心的网络结构2 2 3 2 2 短信中心功能概述。2 3 3 3s i p 短信中心消息处理流程。2 4 3 3 1 应用服务器之间短消息发送流程2 4 3 3 2 s i p 终端之间短消息发送流程2 6 3 3 3s i p 终端向应用服务器发送短消息流程2 7 3 3 4 应用服务器向s i p 终端发送短消息流程2 7 3 3 5 s i p 短信中心拦截收到的回执2 8 3 3 6拆分消息处理流程2 9 3 3 7 用户上线后短消息查询流程3 0 3 4 本章小结3 0 第四章s i p 短信中心的基线性能分析和优化3 l 4 1 基线性能3 l 4 2 测试环境3 2 4 2 1 硬件。3 2 4 2 2 软件3 2 4 2 3 测试环境的部署3 2 4 3 s i p 短信中心基线性能测试3 3 v i i 北京邮i 乜人学硕t :g f 究生毕业论义 目录 4 4 s i p 短信中心基线性能优化3 4 4 4 1短消息的编解码。3 5 4 4 2 编解码问题的分析3 7 4 4 3 编解码的改进。3 8 4 4 4 测试和分析4 0 4 5 本章小结4 l 第五章s i p 短信中心性能可扩展性的分析和优化4 2 5 1 性能可扩展性一4 2 5 2 s i p 短信中心多进程优化4 2 5 2 1 s i p 短信中心性能分析4 3 5 2 2 s i p 短信中心多进程设计模式4 4 5 2 3 s i p 短信中一t x , 部消息驱动机制4 6 5 2 4 测试和分析4 6 5 3 s i p 短信中心的多线程优化4 8 5 3 1 协议栈性能问题的分析。4 8 5 3 2 多线程改进的方法5 0 5 3 3 测试和分析5 l 5 4 解决多线程内存锁同步的问题一5 3 5 4 1 动态内存管理5 3 5 4 2 内存锁同步问题的分析5 4 5 4 3 s i p 协议栈的进一步优化5 5 5 4 4 测试和分析5 7 5 5 本章小结5 8 第六章 结论和未来工作6 0 6 1 论文小结。6 0 6 2 未来工作6 0 参考文献6 2 附录“ 缩略语“ 致谢6 5 v i i i 北京邮电人学硕f ? 研究生毕业论文 第一章绪论 1 1 研究背景 第一章绪论 随着电信技术的发展,越来越多的电信软件运行在通用计算机设备之上,这样不 但可以节省硬件成本,而且运用现代软件工程的高效开发模式,可以在控制软件成本 的前提下为用户提供更加丰富的业务。与此同时,通用计算机设备正在经历着从单核 平台向多核平台的剧变,电信软件业也将不得不面临多核时代的挑战。多年以来,处 理器的发展都没停止前进的脚步,每一次的性能突破都将计算机的应用领域进一步的 扩大。但是自2 0 0 2 年以来,单纯提升处理器主频来提高性能已经越来越困难了,于 是多核技术呼之欲出。多核为计算机用户带来前所未有的并行性体验的同时,也为软 件的设计开发带来了挑战。对于软件业,特别是电信软件这种对性能和稳定性有着很 高要求的行业,如果无法应对多核的挑战就只能在浪潮中覆没。 本文根据了一款真实的电信软件s 口短信中心的开发和优化过程,描述了其 在多核平台上设计、开发、优化的整个过程。s i p 短信中心应用在中国电信的网络上, 为用户提供手机和互联网客户端电信软件的互联互通,是软交换和下一代网络的典型 应用。在整个软件的设计优化过程中,本文着重从思路和方法着手,将本软件的开发 与经典的软件工程和性能分析理论相结合,对理论验证和软件测试过程进行了详细的 描述,希望从上述角度来展示电信软件在多核平台上性能评估和优化的方法。 1 2 研究目的 并行技术不是一个崭新的课题,从多处理器结构到芯片级多处理器,已经有很多 针对并行技术的研究,并且取得了不少的成果。邹佳和他的的团队详细地评估了 o p e n s e r 在多核平台上的应用,并且给出了详细的优化和改进的策略,取得了不错 的成绩【4 j ;另外也有很多团队针对w e b 服务器在多核平台上进行评测和优化【5 】,但 是这些软件往往和真实的电信软件有所差距。之前已经有一些组织从事电信软件的研 究工作,但是所作的工作还远远不够,尤其随着电信业新时代的到来,电信软件受到 计算机技术影响与日俱增,这又赋予了电信软件一些新的特征。 在电信业新的发展趋势的影响下,多核和电信软件紧密结合。从这个角度看来以 往的研究往往着眼于其中的一点,鲜有将多核趋势和电信软件结合在一起进行考虑的 例子。再者,多数的研究往往过分依赖实验环境,在评测和研究的时候往往使用这一 些实验品试验设备和软件,这些设备和软件往往和现网中运行的软件和设备有所 北京邮电人学硕l :研究生毕业论文第一章绪论 差异,这些差异经常掩盖了很多事实,使得研究忽略的一些特征或者与事实有所偏差。 比如邹佳团队【4 】对o p e n s e r 研究只着眼于s i p 消息的接收和发送,而没有考虑业务 逻辑和处理,使得他们对o p e n s e r 的性能考虑重点放在网络传输能力方面。但是, 现网运行的电信软件与此还是有着较大的差距。 针对这些问题,我们选用了一个在现网运行的真实的电信软件一s i p 短信中心 进行研究,希望自己的研究成果能对电信软件的设计、开发、优化起到借鉴作用。 主要的,我们希望能够通过这篇论文达到以下的效果: 1 将电信软件的开发和多核发展趋势紧密的结合起来; 2 对真实的电信软件进行评估和分析,以期得到真实的结果; 3 从各个方面对软件进行考虑,避免出现以偏盖全的问题: 4 能够从经典的软件开发和性能分析理论中得到启示。 基于上述考虑,我们会在后文中详细描述s i p 短信中心优化过程的思路和方法, 并通过严密的实验来加以验证。 1 3 研究思路和方法 本文将电信软件性能( p e r f o r m a n c e ) 分为以下两个方面进行讨论: 1 b a s e l i n ep e r f o r m a n c e :基线性能,这里指软件在单核上的性能表现。 2 s c a l a b i l i t y :可扩展性,指软件随着c p u 内核数量的增长,其性能的持续增 长比率。通常用加速比( s p e e d u p ) 进行衡量。即nc o r e sp e r f o r m a n c e b a s e l i n e p e r f o r m a n c e 。 电信软件在多核平台上的优化,也体现为其基线性能和可扩展性的优化。基线性 能的优化是最基本的,如果基线性能本身就很低,提高可扩展性也没有多大意义,因 为这意味着需要投入很高的硬件成本。但另一方面,基线性能很高,并不意味着软件 的可扩展性也会高,如果基线性能很高,而可扩展性很低,则意味着软件存在“多核 瓶颈,软件的性能无法随着硬件性能的提高而提高,这同样是无法接受的。 所以,本研究着重于同时解决电信软件的基线性能和可扩展性。我们的优化手段 也从这两方面入手。 本文基本研究步骤如下: 1 测试软件在单核或多核上的性能表现,记录测试结果; 2 借助于性能分析工具,分析测试结果,找出性能瓶颈; 3 设计优化方法,在多核平台上对软件进行有针对性的优化; 4 重复上述步骤,直到结果满意为止。 在针对s i p 短信中心的优化过程中,我们做到了以下几点: 首先,我们对s i p 短信中心的逻辑和功能特征进行研究,深入测试了s i p 短信中 2 北京邮l 【1 人学硕i :研究生毕业论文第一章绪论 心的基线性能。 然后,针对s i p 短信中心在解码算法上的缺陷,改进x m l 编解码算法,提高s i p 短信中心的基线性能。经过优化,x m l 解码所占的c p u 时问从3 2 8 9 降到了0 0 7 , 并将基线性能从2 1 0c a p s 提高到了2 8 0c a p s 。 最后,我们全力提高短信中心的并行性,使得可扩展性得到了显著的提高。第一: 从整体上将短信中心改进成多进程架构,成功解决了由于数据库访问而产生的巨大时 间开销问题;第二:使用多线程方式优化了协议栈的性能;第三:进一步消除动态内 存分配时造成的锁竞争问题,降低串行算法所占比例。 在整个分析和优化的过程中,参阅了诸如l i n u x 、l i b c 、r e s i p r o c a t e 、o p e i l s w s 等开源工程,编写、修订和阅读了十余万行代码,最终经历了三期的开发阶段,完成 了整个s i p 短信中心的优化设计工作。其间,我们结合阿姆达尔定律进行计算,使整 个优化过程有了理论依据,为优化过程提供了方向性的指导。而且我们深知测试是验 证优化结果的重要环节,所以每一次的改进都是以测试作为基础,充分考虑了软件的 各个功能模块。更重要的是,上述优化是针对现网中真实的软件得出的结论,而且联 系了多核趋势和电信软件特性两个方面,最后的结果也令人非常满意。 1 4 论文的结构 除了本章绪论之外,本篇论文主要包括了以下章节: 第二章,阐述了多核趋势对电信软件产生的影响以及软件分析和优化时所涉及的 理论和方法。 第三章,从网络结构和功能的角度介绍了本论文所分析和优化的电信软件 s i p 短信中心。 第四章,介绍了什么是基线性能,以及对s i p 短信中心基线性能的测试、分析和 优化。 第五章,采用多进程、多线程的方式对s i p 短信中心可并行性进行了分析和优化。 第六章,对论文进行全面的总结,并提出s i p 短信中心在未来需要改进的地方。 其他内容还包括课题和论文的总结,并附有参考文献和致谢等。 北京邮电人学硕i :研究生毕业论文第二章多核处理器和软件性能优化理论介绍 第二章多核处理器和软件性能优化理论介绍 2 1 多核趋势及其对电信软件的影响 2 1 1 多核处理器的发展 中央处理器简称c p u ,是计算机核心的部件,它由运算逻辑部件、控制部件和 寄存器部件组成,承担着计算机绝大部分的控制和运算功能。因此处理器技术的每一 次提升都会对计算机世界带来意义深远的影响。 早在1 9 6 5 年,英特尔的共同创始人、名誉主席戈登摩尔( g o r d o nm o o r e ) 在 准备一个关于存储器发展趋势的报告、绘制数据时无意间发现了一个惊人的趋势,而 更令人震惊的是这一基于统计学得出的结论竟然准确的预测了此后几十年计算机发 展的趋势,这就是著名的摩尔定律( m o o r e sl a w ) 6 1 。摩尔定律指出:计算机芯片 每隔1 8 到2 4 个月,它所包含的晶体管数量就会翻一番,而性能也会随之提高一倍【7 】。 此后,摩尔定律成为了许多工业对于性能预测的基础,如图2 1 所示,在3 0 多年的 时间里,i n t e l 芯片上的晶体管数量增加了4 0 0 0 0 多倍,从1 9 7 1 年推出的第一款4 0 0 4 的2 3 0 0 个增加到了1 0 亿多个。 集 成 电 路 内 晶 体 管 数 目 以1 8 个月趋势的增长 姚长:。 x ,o ? ,一,黼 ,- w 4 m l l , ,嘲 ,:, 1 1 1 二1 摩尔定律示意图【7 1 4 北京邮电人学硕 - i j t :究生毕业论文第二章多核处理器和软件性能优化理论介绍 几十年来,业界始终以主频的提高来表征处理器性能的提升,同时作为业界领袖 的英特尔在每隔1 8 到2 4 个月的时间里就推出一款新产品,而这款产品必然拥有前辈 两倍的主频。可是当技术发展到今天,这种趋势开始改变,人们对处理器性能的需求 已经不仅仅是更高的主频、更快的速度更小、更廉价、更好的散热性,这些需求 已经逐渐的左右了处理器技术的发展趋势。而且从体系结构来看,传统处理器体系结 构技术面临瓶颈,晶体管的集成度已经超过了上亿个,很难单纯通过提高主频来提升 性能,而且主频的提高也带来功耗的提高。从应用需求来看,日益复杂的多媒体、科 学计算、虚拟化等多个应用领域都呼唤更为强大的计算能力。单纯通过提高主频来提 高性能的做法已经渐渐偏离了新需求的方向,通过提高晶体管密度来提高性能的产品 带来了巨大的发热和漏电的现象,使得新产品的开发举步维艰,摩尔定律遇到前所未 有的危机哺j 。 为了解决需求和产品之间的矛盾,业界开始对处理器技术做出新的探索,许多崭 新的想法进入我们的视野;但是到目前来看,解决这个问题最好的方法就是单核处理 器向多核处理器转变。多核处理器有效的避免了晶体管密度的问题,在提高速度的同 时,大幅降低了处理器的能耗。图2 2 展示了多核在解决耗电问题上的优势。由图2 2 a 所示,在单核条件下提高c p u 时钟频率2 0 ,将会得到1 3 的性能提升,但是同时 要求提高7 3 的耗电量;相对的,如果降低2 0 的时钟频率,将会节省4 9 的耗电 量,但是同时会有1 3 的性能损失。多核的情况如图2 2 b 所示,在2 2 a 的基础上添 加一个内核,而每一个内核降低2 0 的时钟频率,那么双核的情况下将会有7 3 的 性能提升,但是耗电量几乎和原来最大频率时是一样的【9 】。由此可见,多核处理器在 提高性能的同时,较好的解决了能耗的问题。 1 。7 孤 o v e r l o c k e d ( + 2 0 ) m a xf r e q u e n c yu n d e r k ) c k e d ( - 2 嘲 图 - - 2 a 依赖时钟频率的性能和耗电比较图f 9 】 北京邮电人学硕l :研究生毕业论文第- 二章多核处理器和软件性能优化理论介绍 1 7 3 x1 7 3 x o v e r - c l o c k e d + 2 0 ) p l a ) f r e q u e n c yi u a l - c o c e ( 2 0 ) 图二- 2 b 多核下的性能和耗电比较图【9 1 多核处理器最直接的发展被认为是始于i b m 。i b m 在2 0 0 1 年发布了双核r i s c 处理器p o w e r 4 ,它将两个6 4 位p o w e r p c 处理器内核集成在同一颗芯片上,成为首 款采用多核设计的服务器处理器。在u n i x 阵营里,两大巨头h p 和s u n 也相继在 2 0 0 4 年2 月和3 月发布了名为p a r i s c 8 8 0 0 和u l t r a s p a r ci v 的双核处理器。而真 正意义上让多核处理器进入主流桌面应用,是从队阵营正式引入多核架构开始的。 a m d 在2 0 0 5 年4 月推出了它的双核处理器o p t e r o n ,专用于服务器和工作站。到2 0 0 6 年5 月,英特尔发布了其服务器芯片x e o n 的新成员d e m p s e y ,随后到2 0 0 6 年1 1 月 又推出了4 核产品。 如今在微型计算机上使用的多核处理器都是使用的芯片多处理器架构。芯片多处 理器( c h i pm u l t i p r o c e s s o r ,c m p ) 就是将多个计算内核集成在一个处理器芯片中, 从而提高计算能力。按照计算内核的对等与否,c m p 可分为同构多核和异构多核。 计算内核相同、地位对等的成为同构多核;计算内核不同、地位不对等的称为异构多 核,异构多核多采用“主处理器+ 协处理器的设计。目前大多数的多核处理器都是 同构多核,但是也有异构多核的产品,如i b m 、索尼和东芝等联手设计推出的c e l l 处理器就是异构处理器的典范【l 0 1 。 2 1 2 电信软件的特点 电信软件是提供电信服务,并可以满足一定质量需求的通信软件系统。此处电信 服务包括一方或是多方通信中可能涉及到的各种功能集合,如:信令传送、媒体转换 等。当然特定电信软件只需完成其中某项功能,通过整体协作完成所有功能。 电信软件涉及的范畴非常大。由于电信软件和其他通用类型软件具有不同的应用 场景,因此也具有不同的特点。图2 3 所展示的是电信软件区别于一般系统软件和应 用软件的特性【i l 】。 6 一一 墨淼蔷燃 北京邮i 【i 人学硕l :研究生毕业论文 第一二章多核处理器和软件性能优化理论介绍 oo 图2 - 3 电信软件的特点 电信软件的特点主要有以下六点: 1 消息驱动 电信软件的一个非常重要的特点就是消息驱动,即电信软件对收到的消息进行处 理,并以消息为纽带来连接各个功能实体,分工协作,共同实现特定的功能。消息驱 动具有诸多优点,例如易于标准化、易于扩充、易于分析等,是大部分电信软件所具 备的特点。 2 事务特性 电信软件的处理动作基本都是基于事务型的。事务是由一系列的动作或状态组成 的处理逻辑序列,这些动作或状态要么都做要么都不做,并且需要在这些动作或状态 中传递上下文。很多软件,所需要的消息行为能力都是类似的,但是因为其各个模块 对事务逻辑处理的要求不同,就会导致很大的变化,因而对定制性要求很高。事务处 理的过程复杂多变,是定制此类软件时处理的重点。 3 实时性要求高 电信软件特别是核心网软件对实时性都有很高的要求。 4 可靠性要求高 一般电信软件都要求能达到9 9 9 9 9 的可靠性。 5 性能要求高 在电信网络上每分每秒都有海量数据流过,要在允许的时间内处理如此庞大的数 据而且要达到很高的可靠性,因此对性能的要求远远高于普通软件。 6 安全性要求高 对软件的安全考虑越来越受业界关注。尤其是电信软件,处理的更是个人私有数 据,为保护用户的私人信息和合法权益、为保障电信网络的顺畅运行,电信软件的安 全性正得到越来越多的重视。 7 北京邮电人学硕1 j 研究生毕业论文 第- 二章多核处理器和软件件能优化理论介绍 其中消息驱动和事务特性是电信软件的行为特征,而对实时性、可靠性、性能和 安全性的要求则是电信软件非行为特征。在开发电信软件的时候,在关注电信软件特 性的同时,电信软件和一般应用软件相同的特性也不能被忽视,这些特性包括了易维 护、易复用等。 2 1 3 多核趋势带来的挑战 也许就在数年前,当用户抱怨软件性能的时候,得到的回答往往会是“去升级你 的硬件吧。而且,这样的回答总是可以解决问题,在单核平台上,拥有更快的处理 器就能让程序运行的更快些。可是如今,用户将自己的c p u 从单核升级到双核甚至 四核,确确实实升级了自己的硬件,可是性能问题却经常得不到解决。这样的情况在 多核时代经常发生,原因是传统的软件设计方案并不适用于多核平台,没有发挥出多 核处理的优势之处。所以,多核平台需要相应的适合在多核平台上运行的软件系统, 这就给软件业带来了更多的挑战。 1 多核趋势对传统串行编程方式的挑战 串行的编程方式对性能提升的贡献正在日益降低,甚至反而严重降低性能,比如 在某些情况下多核平台上的串行程序的性能表现得相当糟糕。其中的原因我们可以归 纳为以下几点【1 2 】: 时钟频率无法持续的提高。 内存访问和i o 的速度远远低于c p u 主频,即便c p u 主频提高,但整体运 算的速度仍会受限在这些瓶颈。 经过多年对指令集并行技术的探索,处理器和编译器已经在这个方法继续提 升。 虽然在多核平台下串行编程方式的缺陷正越来越多的暴露在人们面前,但是如今 众多的电信软件依然是串行架构的;一些采用了并行设计的软件也往往不能最大程度 挖掘多核平台的潜能。由此可见,在多核平台下,对串行编程方式的改进已经迫在眉 睫。 2 基于多核平台的并行技术 由上所述,传统串行编程方式使得电信软件的发展举步维艰;随着多核技术的日 渐成熟并得到广泛应用,并行编程逐渐成为多核平台下软件设计的首选。 通过多核模式来提高性能的关键在于提高软件处理的并行性,而不是单纯提 高主频,性能的度量不再以主频为唯- n 度。 当某一个内核在等待内存访问和i o 的时候,整个系统不会处于等待状态, 因为其他的内核依然可以并行的执行其他指令。 8 , 北京邮电人学颁i :研究生毕业论文第二章多核处理器和软件性能优化理论介绍 多核实际上给处理器和编译器技术发展丌拓了一个新的方向,不同于指令集 的并行技术,在多核平台上应用并行技术的着眼点则更宏观,着重在线程和 进程调度级别上的并行。 3 基于多核平台并行编程的注意事项 在单核处理器上,多线程的概念已经存在了数十年。目前,大多数的现代应用程 序都以这样或者那样的方式使用并行编程技术。但是,当开发人员在面向多核处理器 开发应用程序时,需要对以下几个非常重要的方面加以特别考虑【1 3 】。 ( 1 ) 有效分担负荷 在面向多核体系结构开发应用程序的时候,只有有效地采用并行技术并仔细分配 各模块的工作负载才能够达到最高的性能。目前,许多单核平台上的应用程序都采用 多线程技术来改善程序对用户的响应时间。但是,这也正是单核处理器上的多线程技 术的一个非常明显的局限性。实际上,因为单核处理器只能将多个指令流交错执行, 并不能真正将它们同时执行,所以,单核结构上的多线程应用程序的性能就受到了限 制。在单核平台上,多线程一般都被当做是一种能够实现延迟隐藏的有效编程手段。 单核平台上的这种性能瓶颈在多核体系结构中就不存在了。在多核平台上,各线 程根本不需要为了得到某种资源而挂起等待,因为各线程都是在相互独立的执行核上 并行运行的。例如,假设有两个线程都要执行移位操作,那么,在单核平台上,两个 线程需要竞争唯一的移位单元,因而必须顺序执行:而对于双核平台而言,因为存在 两个移位单元,所以两个线程能够并行执行而无须竞争。 多核平台为开发人员提供了一种优化应用程序的渠道,那就是通过仔细分配加载 到各处理器核上的工作负载就能够得到性能上的提升。并且,开发人员也可以对应用 程序代码加以优化,使其能够更加充分地使用多个处理器资源,进而达到提升应用程 序性能的目的。 ( 2 )逻辑顺序和时间顺序不再一致 在面向多核平台设计多线程应用程序的时候,开发人员必须采取与面向单核平台 时不同的设计思想。在单核平台上,为了简化并行应用程序的编写和调试,开发人员 可能会作一些假设。但是这些假设可能不适用于多核平台。对于这两种平台,设计思 想的不同之处主要体现在存储缓存( m e m o r yc a c h i n g ) 和线程优先级( t h r e a dp r i o r i t y ) 两个方面。 在存储缓存方面,多核平台上的每个处理器核都拥有自己的c a c h e 。在某个时间 点上,一个处理器核上的c a c h e 与另一个处理器核上的c a c h e 可能会出现不同步的现 象。假设有两个线程分别运行在双核处理器的两个执行核上运行,而两个线程分别对 邻近的存储器单元进行读写操作。由于c a c h e 存储器是基于局部性原理来工作的,故 不同的数据可能存放在c a c h e 的同一行中。因此,即使某个线程所需的位于某个c a c h e 9 北京邮电人学硕i :研究生毕业论文 第一二章多核处理器和软件性能优化理论介绍 块中的数据没有被重写过,存储系统还是可能会将该c a c h e 块标记为无效。这个现象 就是众所周知的伪共享( f a l s es h a r i n g ) 问题。但是在单核平台上,因为只有唯一的 c a c h e 供各线程共享,所以就不存在c a c h e 同步问题。 在单核与多核平台上采用相同的线程优先级策略也会导致不同的程序行为。例如, 假设一个应用程序有两个进程,这两个进程的优先级不同在进行性能优化的时候, 开发人员会假定优先级较高的线程可以一直享用执行资源,而不会受到优先级较低线 程的干扰。这在单核平台上是正确的,因为操作系统的调度程序不会为优先级较低的 线程分配c p u 资源,而对于多核平台而言,因为调度程序是在不同的执行核上调度 这两个线程,所以两个线程是同时执行的,也就是说在这种条件下,线程的优先级不 起作用。如果开发人员仍然遵循优先级较高的线程不会受到优先级较低线程的干扰的 思想对代码进行优化,这样的代码在多核和多处理器系统上运行就会非常不稳定。 2 2 多核模式下的软件分析方法 在电信用户与r 俱增的今天,软件的负荷越来越多,如果不能更多的挖掘系统性 能,稳定性方法也会受到影响。下面就从理论的层面来介绍如何评估修改软件使得并 行性获得提升。 2 2 1 阿姆达尔定律 当我们在处理大型任务时,我们会将任务划分为许多不同的子任务,然后同时处 理这些子任务;以为这样就能够大幅度提高性能。在子任务完全不相关的情况下,获 得性能提升是显然的;但是大多数实际情况并没有如此简单,各子任务之间有着数据 或者时序上的联系,处理时有着严格的时间顺序,在这种情况下,性能的提高不够明 显。关于性能的量化有很多指标,其中一种就是加速比。所谓加速比就是用最优串行 算法的执行时间除以并行程序的执行时间所得到的。加速比能够准确描述对程序并行 化之后所获得的性能收益。如公式2 1 所示g 加艄= 鬻黎鬻豁 公式2 1 加速比定义 在上述加速比定义的基础上,当增加处理器核数量( 进而增加物理线程数量) 时, 又该如何确定应用程序所能够获得的性能提升上限呢? 基恩啊姆达尔( g e n ea m d a h l 于1 9 6 7 年所提出的阿姆达尔定律能够计算并行程序相对于最优串行算法在性能提升 上的理论最大值。 阿姆达尔定律采用一种非常直观、清楚的表述,它将程序划分为可加速( 采用串 1 0 北京邮i 乜人学硕i :研究生毕业论文 第- 二章多核处理器和软件性能优化理论介绍 行算法设计) 与不可加速( 采用并行算法设计) 两大部分,程序总的加速比是一个关 于串行算法部分所占比例f 以及并行算法部分性能加速程度n 的函数。如公式2 2 所 示: s ( 嚣) :l b ,那么在获得锁b 之前, 必须已经获得等级更高锁a ;而获得了锁b 之后,程序不可以再申请锁a 。在这种严 格等级制度保护之下,设计就可以避免死锁的发生。 ( 2 ) 避免过多进程和线程。 过多的进程和线程意味着两点性能损失:很少的工作划分给进程和线程,更多的 开销花在了进程线程的创建和终止;交互开销和共享硬件资源代价增大。对于此问题 也有一些聪明的解决方案,比如采用线程池和任务调度程序。对于l i n u x 操作系统, 使用t o p 命令可以查看当前系统的平均负载( l o a da v e r a g e ) 。一般实验表明每分钟 内竞争一个c p u 内核的进程数不大于3 ,则系统性能良好;如果超过5 个这说明系 统平均负载过高。 ( 3 ) 均衡负载。 并行也分为两种情况,即对称并行和流水线并行。对称并行即并行的各单元之间 是等价的,所执行的操作完全等同;流水线并行则意味着一次加工必须顺序经过流水 线的每一个单元,而多个加工可以并发执行在流水线的各个单元。对于对称并行则不 容易发送负载不均衡的问题,但是现实中大多数的并行都需要采用流水线并行或者结 合两种并行策略。 要达到负载均衡往往依赖于两个工作:设计和调整。通常来说,设计在负载均衡 中是至关重要的。良好的设计不光是意味着可以直接实现负载均衡,而更重要的是让 系统可以调整。调整即t u n e ,t u n e 的过程依赖于软件的可测性和可配性,这些需要良 北京邮i 乜人学硕i j 研究生毕业论文第二章多核处理器和软件性能优化理论介绍 好的设计来保证。 2 4 本章小结 本章从多核处理器发展对电信软件的影响入手,引出了多核模式下软件分析的重 要理论:阿姆达尔定律以及锁竞争问题,然后还介绍了性能分析的一般方法。最后本 章着重强调了l i n u x 平台下如何针对多核处理器进行优化,指出了一些影响软件可扩 展性的问题并介绍了改进的思路和方法。 2 l 北京邮l 乜人学硕i j 研究生毕业论文 第三章s i pj i i 信中心介绍 第三章s i p 短信中心介绍 3 1s i p 短信中心概述 在下一代网络迅速发展的今天,各大运营商都开始新的软交换i m s 来替代传统 电路交换来提供许多丰富多彩的增值业务。短信中心正是为中国电信用户设计制作的 一款电信软件产品。它通过与软交换i m s 系统、应用服务器设备以及短消息网关的 配合,实现软交换i m s 系统的短消息分发以及软交换i m s 系统与异网短消息互通。 短消息中心通过s i p 协议与软交换设备互通,通过s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论