WEB服务器的优化方法简介

WEB服务器的优化方法简介,第1张

WEB服务器的优化方法简介

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

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

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

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

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

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

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

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

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

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

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

如今的Web服务器有很多种,大家在做项目的时候根据自己的需求进行灵活的选择。下面我就给大家分享一下目前都有哪些Web服务器以及他们的优缺点。

01

Apache

Apache也被叫做httpd服务器,是目前使用最广泛的web服务器,它被应用于各种平台之中。Apache刚开始被推出的时候有很多的缺陷,如今已经被修复的越来越完善,如果你是web服务器的钻研者,我建议你一定要学习一下Apache的使用。

优点:小巧,灵活,可扩展,稳定。

缺点:软件开源,所以很多的漏洞可能很容易被人查找到。

02

Nginx

Nginx是Linux平台下的优秀Web服务器,我以前用过这个服务器,它让本来运行很慢的应用程序提升了很大的速度。

优点:压缩率高,支持负载均衡,速度快

缺点:需要掌握熟练的Linux命令才能应用

03

IIS

IIS是微软平台的Web服务器,是针对Windows平台的服务器。它和NET语言非常的搭配,新手掌握起来也比较快。

优点:安装配置简单,学习起来容易

缺点:平台适用性单一,安全性有待提高

04

WebLogic

WebLogic是专门应用于企业级开发的web服务器,比较常见的是和Java语言搭配,使用起来和Apache差不多,同时它的架构也非常的优秀。

优点:安全性高,专业性强,耦合度低

缺点:不容易掌握,需要有一定的专业积累才能熟练应用

05

Tomcat

Tomcat是很多Java学习者都非常熟悉的web服务器,一般刚开始学习Java Web开发的人都会使用Tomcat作为服务器进行练习。它既有可视化的操作界面,也有命令语句,是不错的入门级服务器。

优点:简单易掌握,部署容易,应用广泛

缺点:扩展性不强,可配置性弱,大并发能力不强

06

Lighttpd

Lighttpd是一款开源的web服务器,比较的轻巧,功能也很多。目前在使用率上比较少,还没有推广起来。

优点:小巧精致,功能强大

缺点:漏洞较多,学习资源不多

07

Sun

Sun是一款针对Solaris的web服务器,应用范围不是很广泛,只应用于Sun公司的相应web产品。另外一般的开发者轻易的用不了这款服务器。

优点:针对性强,并发性高,速度快,效率高

缺点:掌握难,适应性不高

08

Jetty

Jetty是专门针对Java Web的服务器,它被用来运行Servlet程序,是众多服务器中最局限的一个了。我并不建议大家掌握这款服务器。

优点:内容简单,容易掌握

WEB服务器

优点:下载稳定,能执行动态网页程序,速率快,不断线

缺点:不能直接上传文件,虽然能打开上传功能,但是不需要帐号密码,即使设置帐号密码也非常繁琐

FTP服务器

优点:能存放、下载文件,可以很简单的设置帐号和密码,保密度高

缺点:不能执行网页程序,整一个就是网络硬盘


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/621581.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-15
下一篇2023-07-15

发表评论

登录后才能评论

评论列表(0条)

    保存