合肥网络公司

【企隆网络】服务器性能改进的几种方法
更新:2013年5月2日 点击数:20501次

  影响服务器性能的因素

  服务器的性能就是指一个服务器响应用户请求的能力,服务器的性能对于一个系统来说至关重要。为了提高服务器的性能人们进行了许多尝试,也采用了许多技术和方法,但是这些技术和方法往往缺乏适用性。

  通过对前人的研究分析可以发现,在服务器的优化方而存在这种问题的原因主要有两个:一方面是服务器性能评测造成的,一方面是选用优化方案时考虑不全面造成的。

  现行的服务器性能评测工具在对服务器进行评测时,其实是由一台或几台计算机模拟客户机,与被测的服务器进行通信,它们其实组成的只是一个局域网的环境,这与真正的广域网的环境有一定的差别。

  另外,评测工具在选择网络负载时,虽然已经尽可能的接近真实负载,但是与持续的高频率负载要求仍有差距;再者,在性能测试指标的选择与分析上也不够合理,造成了分析结果不够公正、可靠。而在选用优化服务器的方法时,往往只是考虑服务器这一个方面,很少结合具体的应用环境。所以就造成了评测结果不够科学,应用环境考虑不够全面,服务器性能优化缺乏针对性。因此在具体的应用环境下优化服务器的性能需要另外考虑以下两个主要因素:网络特性和负载特点。

  网络特性是指服务器所在网络情况,是广域网还是局域网,是高速网络(传输速率在1OOMb/s以上的网络就叫做高速网络)还是低速网络,在不同的网络中相关的传输数据的类型、网络相应时间、吞吐量,利用率等网络特性不尽相同,所以要加以区分,具体情况具体分析。

  而在负载特点方面,由于在对服务器进行评测时,一个非常关键的因素就是负载的选择。评测工具虽然有多种,但是它们都在选择负载上做足了功课。关于负载特点的研究主要目的就在于对服务器性能进行评测时,可以根据这些特点,选择模拟最真实的负载的评测工具以便获得最贴近事实的服务器性能评测数据,以便更好的对其进行分析和得出优化方案。

  服务器优化方法

  在对服务器进行优化时要根据真实的应用系统的情况和特征来采取有针对性地优化方案。首先根据不同的网络特性来看:在局域网中,降低M T U (最大传输单位)值对可以避免复制数据和求校验,而通过优化select系统调用或在Socket事件处理器中执行计算可以优化请求并发管理,利用HTTP1.1持续连接等都可以使系统性能得到相应的改善,但在广域网的环境下却没有什么大的作用,有的甚至恰恰相反。

  例如:减少用户连接的MTU会增加服务器处理开销,采用网络延迟、带宽限制和使用HTTP1.1的持续连接在广域网中不会对服务器性能有什么大的影响。在广域网中,终端用户的请求的等待时间依赖于与网络延迟的程度,连接带宽限制情况。对于广域网,软硬中断在网络处理中占有很大的分量,所以采用适应的中断处理机制将会给服务器的响应能力带来很大的好处;将服务器定位在内核和将基于进程设计改为基于事务处理也可以不同程度的提高服务器的性能。

  关于负载,除了对负载的特征进行分析以便在评测时更好地再现真实负载之外,还要考虑服务器所在的网络环境下负载的情况。人们不仅要求服务器满足正常的工作负载要求,而且在高峰时期依然要保持较高的吞吐量。但是,服务器在高负载的情况下的性能表现往往低于人们的期望。

  服务器过载的情况分为两种:一种为瞬间过载,即云主机暂时的、短时间的超载,这种情况主要是由服务器负载的特点引起的。大量的研究表明,请求的网络通信量分布是自相似的,即请求的通信量可以在很大范围内有显著的变化。这就造成服务器常常短时间的超载,但这样情况持续的时间一般很短。一种是服务器长时间的超载,这种情况一般是由某一特殊事件引起的,例如服务器受到拒绝服务攻击或者发生了“活锁”现象。

  第一种服务器超载情况是不可避免的,但第二种情况则可以通过对服务器改进来改善。抛开恶意的攻击不算,仔细分析服务器处理信息包的过程可以发现,造成系统在超载情况下性能下降的根本原因是高优先级处理阶段对CPU的不公平抢占。

  因此,如果限制高优先级处理阶段对CPU的占用率,或者限制处理高优先级的CPU个数,都可以减轻或者消除收包活锁现象。具体的可以采用以下的方法:

  一、采用轮询机制。为了减少中断对系统性能的影响,在负载正常的情况下采用“下半处理” 的方法就非常有效,而在高负荷情况下,采用这个方法仍然会造成活锁现象,这时可以采用轮询机制。虽然这个方法在负载正常的情况下会造成资源的浪费和响应速度降低,但在网络数据频繁到达服务器时就要比中断驱动技术有效的多。

  二、减少上下文切换。这种方法不管服务器在什么情况下对性能改善都很有效,这时可以采用引入核心级(kerne1—leve1)或硬件级数据流的方法来达到这个目的。核心级数据流是将数据从源通过系统总线进行转发而不需要使数据经过应用程序进程,这个过程中因为数据在内存中,因此需要CPU操作数据。

  硬件级数据流则是将数据从源通过私有数据总线或是虽等DMA通过系统总线进行转发而不需要使数据经过应用程序进程,这个过程不需要CPU操作数据。这样在数据传输过程中不需要用户线程的介入,减少了数据被拷贝的次数,减少了上下文切换的开销。

  三、减低中断的频率(主要是针对高负荷情况的方法)。这里主要有两种方法:批中断和暂时关闭中断。批中断可以在超载时有效的抑制活锁现象,但对服务器的性能没有什么根本性的改进;当系统出现接收活锁迹象时,可以采用暂时关闭中断的方法来缓和系统的负担,当系统缓存再次可用时可以再打开中断,但这种方法在接收缓存不够大的情况下会造成数据包丢失。

  服务器性能是整个系统的关键环节,提高服务器的性能也是长久以来人们一直关注的课题。这里通过对服务器的工作原理和现有的优化方法和技术的分析,得出了对待服务器性能的提高也应该具体问题具体分析,要在具体的应用环境中,根据其特点来采取相应的优化措施。

 


0


上一篇:【企隆网络】了解网站情况必须掌握的百度三剑客!

下一篇:【企隆网络】关于服务器安全的日常维护

友情链接

|上海陶粒|陶粒|北海富丽华大酒店|嘉润凯莱大饭店|建筑陶粒|上海闵行陶粒|上海嘉定陶粒|安徽养羊场|上海宝旭纸制品有限公司|上海惠益陶粒制品有限公司|上海陶粒|安徽波尔山羊|陶粒混凝土|浙江陶粒|山东陶粒|田丰农牧业有限公司

服务咨询热线: 0551-65545263  18019545422关键字: 合肥网络公司合肥网站建设合肥网站优化合肥网站推广

首页 - 网站地图 - XML - 关于我们 - 成功案例 - 联系我们
版权所有 © 合肥企隆网络科技有限公司 | 网站备案号:皖ICP备13009525号-1
公司地址:合肥市临泉路与合瓦路交口上城国际名座518

在线客服

在线客服

在线客服

在线客服

企隆网络

扫一扫 加微信