解析如何改善和优化 Web 服务器性能

简介:

Web服务器概述 
Web系统在现在网络中广泛使用,而Web服务器则是Web系统的一个重要组成部分。完整的Web结构应包括:HTTP协议,Web服务器,通用网关接口CGI、Web应用程序接口、Web浏览器。 
Web服务器是指驻留在因特网上某种类型计算机的程序。它是在网络中信息提供者基干HTTP的为实现信息发布、资料查询、数据处理等诸多应用搭建基本平台的服务器,其主要功能是提供网上信息浏览服务。当Web浏览器(客户端)连到服务器并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。 
Web服务器在web页面处理中大致可分为三个步骤:第一步,web浏览器向一个特定的服务器发出Web页面请求;第二步,Web服务器接收到web页面请求后,寻找所请求的web页面,并将所请求的Web页面传送给Web浏览器;第三步,Web服务器接收到所请求的web页面,并将它显示出来。 
web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。在Web上,常见的大多数表单核搜索引擎上都是用的是CGI脚本。


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


   通过对前人的研究分析可以发现,在web服务器的优化方而存在这种问题的原因主要有两个:一方面是服务器性能评测造成的,一方面是选用优化方案时考虑不全面造成的。 
现行的服务器性能评测工具在对Web服务器进行评测时,其实是由一台或几台计算机模拟客户机,与被测的Web服务器进行通信,它们其实组成的只是一个局域网的环境,这与真正的广域网的环境有一定的差别。


   另外,评测工具在选择网络负载时,虽然已经尽可能的接近真实负载,但是与持续的高频率负载要求仍有差距;再者,在性能测试指标的选择与分析上也不够合理,造成了分析结果不够公正、可靠。而在选用优化Web服务器的方法时,往往只是考虑Web服务器这一个方面,很少结合具体的应用环境。所以就造成了评测结果不够科学,应用环境考虑不够全面,Web服务器性能优化缺乏针对性。因此在具体的应用环境下优化Web服务器的性能需要另外考虑以下两个主要因素:网络特性和Web负载特点。 
网络特性是指web服务器所在网络情况,是广域网还是局域网,是高速网络(传输速率在1OOMb/s以上的网络就叫做高速网络)还是低速网络,在不同的网络中相关的传输数据的类型、网络相应时间、吞吐量,利用率等网络特性不尽相同,所以要加以区分,具体情况具体分析。


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


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


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


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


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


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


 因此,如果限制高优先级处理阶段对CPU的占用率,或者限制处理高优先级的CPU个数,都可以减轻或者消除收包活锁现象。具体的可以采用以下的方法: 
一、采用轮询机制。
为了减少中断对系统性能的影响,在负载正常的情况下采用“下半处理” 的方法就非常有效,而在高负荷情况下,采用这个方法仍然会造成活锁现象,这时可以采用轮询机制。虽然这个方法在负载正常的情况下会造成资源的浪费和响应速度降低,但在网络数据频繁到达服务器时就要比中断驱动技术有效的多。


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


 三、减低中断的频率(主要是针对高负荷情况的方法)。
这里主要有两种方法:批中断和暂时关闭中断。批中断可以在超载时有效的抑制活锁现象,但对服务器的性能没有什么根本性的改进;当系统出现接收活锁迹象时,可以采用暂时关闭中断的方法来缓和系统的负担,当系统缓存再次可用时可以再打开中断,但这种方法在接收缓存不够大的情况下会造成数据包丢失。 
Web服务器性能是整个Web系统的关键环节,提高Web服务器的性能也是长久以来人们一直关注的课题。这里通过对Web服务器的工作原理和现有的优化方法和技术的分析,得出了对待Web服务器性能的提高也应该具体问题具体分析,要在具体的应用环境中,根据其特点来采取相应的优化措施。


本文转自寒意博客园博客,原文链接:http://www.cnblogs.com/hnyei/archive/2012/03/14/2395328.html,如需转载请自行联系原作者

相关文章
|
10月前
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
4月前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。
|
10月前
|
存储 缓存 负载均衡
阿里云服务器实例选择指南:热门实例性能、适用场景解析对比参考
2025年,在阿里云的活动中,主售的云服务器实例规格除了轻量应用服务器之外,还有经济型e、通用算力型u1、计算型c8i、通用型g8i、计算型c7、计算型c8y、通用型g7、通用型g8y、内存型r7、内存型r8y等,以满足不同用户的需求。然而,面对众多实例规格,用户往往感到困惑,不知道如何选择。本文旨在全面解析阿里云服务器实例的各种类型,包括经济型、通用算力型、计算型、通用型和内存型等,以供参考和选择。
|
6月前
|
网络协议
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
利用Private Zone DNS - 搭建AD但不搭建DNS服务器如何加域
|
8月前
|
存储 算法 安全
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
453 41
JWT深度解析:现代Web身份验证的通行证为什么现在都是JWT为什么要restful-优雅草卓伊凡
|
6月前
|
编解码 缓存 监控
如何提高类Web开发范式的性能?
如何提高类Web开发范式的性能?
|
10月前
|
存储 机器学习/深度学习 应用服务中间件
阿里云服务器架构解析:从X86到高性能计算、异构计算等不同架构性能、适用场景及选择参考
当我们准备选购阿里云服务器时,阿里云提供了X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等多种架构,每种架构都有其独特的特点和适用场景。本文将详细解析这些架构的区别,探讨它们的主要特点和适用场景,并为用户提供选择云服务器架构的全面指南。
1079 18
|
8月前
|
网络协议 安全 Linux
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
阿里云服务器国际站dns服务器不可用怎么办?dns可以随便改吗?
2182 0
|
10月前
|
存储 弹性计算 安全
阿里云服务器ECS通用型规格族解析:实例规格、性能基准与场景化应用指南
作为ECS产品矩阵中的核心序列,通用型规格族以均衡的计算、内存、网络和存储性能著称,覆盖从基础应用到高性能计算的广泛场景。通用型规格族属于独享型云服务器,实例采用固定CPU调度模式,实例的每个CPU绑定到一个物理CPU超线程,实例间无CPU资源争抢,实例计算性能稳定且有严格的SLA保证,在性能上会更加稳定,高负载情况下也不会出现资源争夺现象。本文将深度解析阿里云ECS通用型规格族的技术架构、实例规格特性、最新价格政策及典型应用场景,为云计算选型提供参考。
|
10月前
|
存储 机器学习/深度学习 人工智能
阿里云服务器第八代通用型g8i实例评测:性能与适用场景解析
阿里云服务器通用型g8i实例怎么样?g8i实例采用CIPU+飞天技术架构,并搭载最新的Intel 第五代至强可扩展处理器(代号EMR),不仅性能得到大幅提升,同时还拥有AMX加持的AI能力增强,以及全球范围内率先支持的TDX机密虚拟机能力。这些特性使得g8i实例在AI增强和全面安全防护两大方面表现出色,尤其适用于在线音视频及AI相关应用。本文将深入探讨g8i实例的产品特性、优势、适用场景及规格族,以帮助您更好地了解这款产品,以供参考和选择。

推荐镜像

更多
  • DNS