温柔网

 找回密码
 注册

查看: 643|回复: 0

WEB服务器的选择

[复制链接]
发表于 2004-9-13 20:11:45 | 显示全部楼层 |阅读模式

本文先介绍一下各种WEB服务器平台,然后对影响WEB服务器性能的各方面做了分析,最后解析了目前使用最普遍的Apache服务器在服务请求高峰时的响应延迟现象,希望能对WEB服务器性能瓶颈的分析有所帮助。

  各种各样的web平台

  对于互联网上的web平台,究竟有多少种不同的软硬件组合方式?你肯定会对这个数字感到吃惊。从配置了最新版本的IIS(Internet Information Server,因特网信息服务器)的WindowsXP系统到运行在Apache服务器上“古老”的SunOS 4.x系统,真是数之不尽。当然,最流行的几种平台也就那么几种。Windows NT类(尤其是同时配置了IIS和SQL Server的系统)是近来很常见的web平台。同时,运行在SUN公司SPARC工作站上的Solaris(安装了Netscape公司企业版的Webserver)和免费的Apache服务器系统也比较常见。此外,令人相当吃惊的是,Linux和FreeBSD这两款开放源代码的顶级操作系统对上述几类平台构成了巨大的威胁。正在改变服务器操作系统的分布格局。

  为什么很多人选择Windows NT/2000/XP?

  先撇开卓越的运行稳定性、系统正常稳定运行时间或表现等不论,Windows NT类操作系统在服务器应用环境领域占据的市场份额以惊人的速度持续快速增长,原因主要是,它具有非常体贴用户的易操作性及出类拔萃的开发工具。

  很多刚进入IT领域的用户非常喜欢Windows的这种“平民化”的界面,因为它极大地简化了日常的管理工作。对于开发人员来说,则因Microsoft提供的目前最完整、最有效率的开发环境,而从NT系统中获益不小。类似InterDev的一些开发工具与Visual Source Safe(在庞大的工程中对软件版本进行管理)结合使用,能轻松地削减开发人员的开发时间。

  为什么有的人不选择Windows NT?

  Windows NT毕竟仍属Windows家族的一员,也存在众多该系列操作系统所遭遇的问题,从而影响到一些运算量大、资源消耗多的应用程序的稳定性和可执行性。Windows NT 4采用的是一个静态的内核,这就使得即使是执行一些非常简单的任务,比如装载一个新的驱动器,也必须重启机器。此外,和UNIX 相较而言,Windows NT还缺少大量的远程管理手段。不过,随着微软新版的服务器操作系统2000/XP的发布,这些问题正在得到解决,最新的WindwoXP服务器版可以说是一个不错的服务器操作系统。

  

  关于Solaris

  Solaris是UNIX操作系统在市场上最流行的一种变体。互联网上大部分站点都采用Solaris提供web服务。在UNIX所有不同的变体中,Solaris拥有最大的用户群体,相应地,它也是利润最丰厚的一款软件。各种应用服务器和应用环境专为Solaris设计的版本,比如ColdFusion(普遍使用在Windows NT上)均已推出。Solaris系统能够提供真实的企业级可靠性和高性能,其他平台很难与之媲美。与Windows NT不同的是,当你给系统添加额外的硬盘时,并不需要将Solaris系统重启。另外,在Sun公司更大型的企业级服务器上,你甚至能够在不关机的情况下,更换内存条和CPU。与众多平台相比,Solaris还能提供最佳的多重处理(multiprocessing)性能。

  为什么有人不愿意选择Solaris?
  

  好了,为了公平起见,我来说说人们不选择Solaris的原因。先要指出的是,基于Intel芯片的Solaris平台不等同基于SPARC芯片的Solaris平台。尽管Intel芯片版本的Solaris系统拥有与SPARC芯片版本一样的高可靠性,但用于前者的商用软件的数量明显不如后者多,同时,由于硬件上的一些限制,Solaris系统的一些相对高级的特性(比如CPU或内存的热插拔升级)在Intel芯片版本中无法实现。前段时间甚至有消息说最新的Solaris将不再支持Intel平台,这对采用Intel硬件平台的用户可说是一种遗憾。

  选择Linux还是FressBSD?

    开放源代码操作系统(如Linux、FreeBSD)在市场上抢占着越来越大的市场份额,人们对这类系统的总体接受程度也开始以惊人的速度增长。几年前,只有少数几家公司知道Linux到底是什么,但是目前它已被业界几乎每一个专业用户所大力推崇。举个例子,你可以在市场上买到更多的基于Linux平台的商业软件,如Oracle、Sybase等等。

  同时,FreeBSD也取得了相当一部分商业支持,其中一些是由于Linux流行的原因而带来的。很多大型网站,比如Yahoo,跑的都是FreeBSD平台。FreeBSD和Linux之间的兼容性问题很小。因此,我们会发现,这两款操作系统的用户群体将同步持续增长。

  不幸的是,很多使用开放源代码操作系统的用户由于不希望缴纳相关的成本费用,实际上在抵制使用Linux平台上的商业软件。从某个角度来看,仿佛是因为这些用户由于习惯了Linux系统免费使用的做法,而不愿意为服务器的其他应用付费。从目前情况看,这已对市场产生了激冷效应。我估计,随着越来越多基于该平台的软件发布,这种情况将会更加恶化。

  这主要是因为Linux操作系统大多是被小公司和个人所选用,而这类群体实际上根本买不起企业级的商业软件。这种状况只有在opensource操作系统的技术和市场成熟壮大起来,并被更多的大公司(他们往往拥有更大的需求)接纳之后才会逐渐改变。

  在互联网上,对开放源码操作系统支持的呼声很高,但是,人们对这类平台学习和理解的难度比Windows,甚或是Solaris要大得多。另外,所有的这类软件均处在一个快速发展的过程中。所以,你在寻找你需要的东西的时候,也许总会不经意地发现系统的一些小bug(错误的计算机程序代码或例行程序上的瑕疵)及不完整的软件包。

  对于那些WEB服务需求小,硬件资源紧张的小公司来说,他们一般更愿意采用一款开放源码操作系统(而不采用商业解决方案)。而对于缺少经验的公司来说,他们则倾向选择安全可靠的Windows解决方案。那些对Web 发布需求巨大,同时要求系统正常运行时间比率超过99%或以上的公司也许会选择Solaris平台。因为olaris的稳定性可以为满足这种苛刻的运行要求提供更大保障。

  关于各种Web平台的性能

  一台提供web发布服务的服务器与其他大多数的常规主机相比较,被更宽泛的负载状态(load conditions)所影响。事实上,一个web站点里能够容纳大量各种各样的内容,即使是其中一个简单的HTTP服务器(软件意义上的服务器),其负载也远远超出了HTTP协议设计者当初所能预料的范围。

  实际上,目前的web站点能够采用各种技术,包括静态HTML、内嵌或服务器解析的HTML(inline/server-parsed HTML)和CGI(Common Gateway Interface,公共网关接口),并以ODBC(Open Database Connectivity,开放式数据库互接)实现数据库的互连。这些不同的数据源中有一部分非常普通,而其余部分却并非如此。不管如何,每一种数据源均以其独特的方式在web服务中发挥着作用。在决定你的站点到底适合采用哪种服务器之前,你应该明确一下,你的需求究竟是什么。

  静态HTML

  这是互联网上任何站点最基本的一种构成“元素”。尽管真正意义上完全采用静态HTML来搭建的站点数量越来越少,但是,几乎所有的站点均不同程度地采用了这种“元素”。静态的HTML页面严格地由标准的HTML标示语言构成,并不需要服务器端即时运算生成。这意味着,对一个静态HTML文档发出访问请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占用了很小的CPU资源。为了提高静态HTML的访问效率,主要可以对以下几个方面进行优化:网络带宽、磁盘I/O以及cache(高速缓冲存储器)。

  服务器解析的HTML

  依靠服务器解析的HTML页面包括两部分的代码,一是标准的HTML代码,二是服务器端运行的代码(由第三方的处理程序或web服务器自己在页面传输到客户端前对其进行解释)。这种HTML页面是CGI程序的升级版本(因为它的执行效率更高)。目前,内嵌的服务器端扩展集,比如ASP、PHP3,甚或是普通的服务器端支持的扩展集,已得到了非常普遍的使用。开发这种扩展集的目的是要使网站上的内容更生动活泼,更模块化,以利于维护。此外,服务器解析文档改善了性能相对低下的客户端工作模式,将客户端的负载降低到最低程度,同时也降低了数据传输对带宽的要求。很显然,你要得到这一切,就必须付出金钱的代价。因为服务器解析文档必须在其传输到客户端前就通过服务器来进行解释,所以,你要给你的服务器添加额外的CPU。

  公共网关接口(CGI)

  CGI使Web站点具有更佳的交互性和实用性。它可以用来收集用户的输入数据,允许运行外部程序以执行众多与用户输入相关的任务以及输出执行结果等,因此,应用CGI后,互联网的用途被大大扩充了。但是,要使用CGI,就必须付出一定开销。特别在CGI与解释器(譬如PERL)配合使用时,CGI的调用成本会很高。如果您的系统运行在极端繁重的负载条件下,该成本更是高居不下。如果可能的话,您应该考虑选用ASP或PHP3来取代CGI。

  数据库的互连性

  目前,互联网上最大的资源杀手当非在线数据库(online databases)和电子商务(e-commerce)等应用莫属。提供web功能的数据库和应用服务器近年来飞速增长,显示出强劲的发展势头。从性能的角度来看,在线数据库(基于Oracle、 SQL Server或 Sybase等)及应用如日中升,迫使人们更加关注服务器的性能状况。对于大型网站来说,高负载的HTTP传输和数据库处理事务互相抢占资源,并最终可能导致服务器在极短的时间内崩溃或者变得慢如蜗牛。在这种情况下,推荐您使用专门的后台运行的数据库服务器(当然也是出于安全的考虑)以及前台处理的HTTP服务器。


您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|温柔网 ( 浙ICP备13033583号-8 )

GMT+8, 2024-11-21 19:52 , Processed in 0.037648 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表