硬件 软件 机房:谈服务器托管方案 |
来源:中国IDC圈 时间:2007-4-18 11:18:55 作者:idcquan 进入论坛 |
三、幕后英雄,选购二弹奏 1、主机托管,锁定“1U” 在许多用户看来,一个Web网站的成败主要在于它所提供的内容和功能,殊不知支持这些内容和功能的Web服务器才是真正的幕后英雄。很多企业用户都知道托管机房租个位置不便宜,再加上初期花费在网站内容的技术支持已经花费不少,想在硬件投资上尽可能节约,但是却要学会如何去省,不该省的可别省了。托管主机建议是托管1U的机架式服务器,虽然初期硬件成本高一点,但是长远看还是这样比较合算,因为电信机房的托管费都是按照1U每年多少钱来计算的,假如你的服务器个头太高,无疑就要多付出更多的托管费用,例如,在北京某机房,托管1U服务器4000元/年,托管2U服务器就要6000元/年,由此可见,1U服务器在主机托管领域的应用是很有实际意义的。托管1U服务器与托管其他种类的服务器(例如2U服务器、塔式服务器等)相比,托管费肯定是最便宜的。 要知道,机房里“寸土如金”,锁定在1U才是节约的长远之道,不过要学会真正的节省,还是要学会如何选择适合企业网站需求的服务器。正如GNU/Linux的哲学一样,就是更据自己的需要和实际情况选择适合自己的工具。 2、关键因素,操作系统的选择之道 在介绍产品前,笔者觉得还是有必要再讲下操作系统对WEB服务器性能的各方面影响。其实你决定什么样的操作系统也必然影响到你所选择的服务器硬件的类`型以及WEB软件系统。 很多朋友都会发现,Windows操作系统从Win NT到Windows 2000/XP在到Windows2003在服务器应用环境领域一直以惊人的分份额在持续快速增长。其主要原因,它具有非常体贴用户的易操作性及出类拔萃的开发工具,很多新手都非常喜欢Windows这种“平民化”的操作截面,它极大的简化了日常的管理工作;对开发人员来说,又有Microsoft提供了目前最完整、最有效率的开发环境。后来的系统不但解决了Windows NT采用静态内核的弊端,而且还加强了大量的远程管理手段。现在最新的Windows 2003可以说是一个不错的服务器操作系统。 关于Solaris,是UNIX操作系统在市场上最流行的一种变体。在互联网上大部分站点都采用Solaris提供WEB服务,拥有很大的用户群体。由于Solaris系统能够提供真实的企业级可靠性和高性能,其他平台是很难以与之媲美。虽然Solaris也支持Intel硬件平台,但支持软件的数量明显不多,而且在硬件的高级特性上也受到了限制(比如CPU或者内存的热插拔升级),相对而言,企业拥护采用基于SPARC芯片的Solaris操作系统更具有优势。 像Linux和FreeBSD开放源代码操作系统,已被业界几乎每一个专业用户所大力推崇。其实这种操作系统大多是被小企业和个人所选用,往往这类用户实际上买不起操作系统,连企业级商业软件也无购买能力,不过大多用户为了节约开支,习惯Linux系统免费使用的做法了,对开放源代码操作系统支持的呼吁很强烈。由于Linux 和Apache都是自由软件,所以两者的组合方案就具有最高的性能价格比,但这类平台学习和理解有很大的难度。因此,对于所有用户而言,都不是绝对的。 总之,对于那些WEB服务需求小,硬件资源紧张的小公司来说,他们一般更愿意采用一款开放源码操作系统(而不采用商业解决方案)。而对于缺少经验的公司来说,他们则倾向选择安全可靠的Windows解决方案。那些对WEB发布需求巨大,同时要求系统正常运行时间比率超过99%或以上的公司也许会选择Solaris平台。因为Solaris的稳定性可以为满足这种苛刻的运行要求提供更大保障。 四、瓶颈分析,WEB服务器选购 1、风萧萧兮,典型产品点评 浪潮英信NF180是我国浪潮集团公司的一款专门面向中小企业的机架式Web/邮件服务器,支持2路英特尔至强处理器,主频最高可达3.06GHz;支持ECC DDR266内存,最大容量可扩展到8GB;集成Ultra320 SCSI控制器和2个IDE通道,最大可扩展到3个SCSI热插拔硬盘,集成Ultra320 SCSI RAID,RAID1+hot spare;集成2个Intel千兆网卡,支持负载均衡和冗余;提供2个64位PCI-X扩展插槽。从以上配置可以出,总体配置还是不错的。在看下来的点评时,你可以结合选购深层分析加以参考。 这款服务器由于采用的是1U架构的机架式结构,在可扩展性方面要做出一定的牺牲,不过是值得的,毕竟牺牲仅是对于Web应用不是很大关系的部件扩展功能,便于托管才是它的价值所在。虽然最高内存容量只有8GB容量,已具有相当的可扩展空间;磁盘方面可能差些,只提供了最高3块SCSI磁盘(最高可达500GB),但这或许更符合一些中小型企业用户需求,毕竟具有较高的性价比。至于扩展插槽方面对于Web服务器则影响不大。重要的是它的网卡配置方面仍保持了双千兆,确保了系统冗余或均衡。 在服务器可用性方面,虽然在1U架构中不可以实现太多部件冗余,但是它还是提供一定的冗余能力,其中最明显的,也是最关键的就是它的双千兆网卡。另外它采用支持ECC的DDR内存;引入了领先的无线缆设计技术,确保系统散热效果;集成Ultra320 SCSI RAID,在不需要外添组件的情况下实现RAID1+Hot spare,确保关键数据的可靠。还有,NF180支持浪潮猎鹰服务器管理软件,可帮助用户对系统运行状态进行实时监控,并可以进行服务、进程的调整及日志的管理。 浪潮的服务器保修是主要部件三年免费上门维修,次要部件一年免费、上门维修;并承诺一小时内回应,四小时内提出解决方案。也算不错,特别是响应速度较快。虽然这款服务器在一些与Web应用关系不是很大的组件上配置有些偏低,但对于对价格比较敏感的中小企业用户来说,在不影响使用的情况下,这款服务器却能以¥16400.00元的低价上市,确实还是具有相当的吸引力的。 除了浪潮英信NF180,还有华硕最近才推出的AP1600R-E2(CS3)以及HP ProLiant DL360 G4、DELL PowerEdge 1850都是不错的选择,在低端领域则有IBM xSeries 306的典型代表。之前笔者在托管服务器导购都有涉及,限于文章篇幅,不再重复。不过在这里要强调一点,并不是所有的企业在部署WEB服务器时都是采用单一服务器模式(把所有与Web应用的服务器系统都集成在一台服务器中)。虽然这样最大的好处当然就是成本低了但对于大多数大中型企业来说,这种应用模式是非常不可取的,一方面会使WEB应用效率降低,另一方面还将带来巨大的安全隐患。因为如果把Web应用所需的数据库系统也放在Web服务器上的话,因为Web应用需要在防火墙上开启相应的端口,这样业电子商务的数据库系统也就暴露在外部网络中,非常不安全。 目前主流的应用模式是采用2台服务器,一台为前端的Web服务器,另一台作为后台的数据库服务器。Web服务器可置于防火墙的DMZ区,而后台的数据库服务器则可置于防火墙保护中的内部网络。前端Web服务器承载实现Web应用的软件及中间件,数据库服务器主要承载后端的数据库应用,实现访问时的数据库调用。 2、缓解瓶颈,WEB服务器选购深层分析 就上面提到的几款产品,我们只知道它们适用于WEB服务器,但具有什么样的性能呢?一般来说,可以通过衡量指标来测试,例如单位时间TCP连接总数、TCP连接建立时间、HTTP响应时间、单位时间HTTP成功响应数目、吞吐量以及HTTP交易的成功比例。如果确实让用户以这种标准来选购产品是不可能的。因此在对WEB服务器性能考察方面,主要还是集中在服务器系统的硬件配置和可扩展性等方面。为了能让用户能了解透彻,我们分别从关联的瓶颈根据对系统的影响程度逐个列出。 网络带宽 可用的带宽对于那些主要由静态页面构成的站点来说,也许是最关键的因素,因为静态的HTML页面严格地由标准的HTML语言构成,并不需要服务器端即时运算生成,服务器只是简单地将该HTML文档传输到客户端。整个过程占用的CPU的资源很小,所以对于静态HTML瓶颈是网络带宽,还有就是磁盘IO及缓存(现今高端SCIS以及刚推出的SATAII硬盘都具有很强的IO速率以及高达16M的缓存,在磁盘方面构不上很大的瓶颈问题)。尽管现在完全采用静态HTML来搭建网站已经越来越少,但几乎所有站点均不同程度上大量采用这种“元素”。所以对WEB服务器瓶颈首先要解决的就是网络带宽。 但事实上问题往往并不如你想象的那么简单。我们撇开网络的吞吐总量以及响应速度不讲,在高负载的环境下,系统的突发传输速率是非常重要的。尽管现在IDC托管商骨干网络传输速率提供的总带宽对一个特定的站点而言也许绰绰有余,但有时其最大的传输速率也可能不足以应付系统的高峰传输负载。在用户访问的高峰期,某些站点也许根本无法访问。这样的站点在用户企图访问它时显得慢如蜗牛,而服务器自身却仍旧非常空闲。对于托管的企业用户,必须考虑好需要独享还是共享带宽?共享100M和独享10M是有很的区别的,两者是完全不同的两个概念。因此,要成功搭建一个web主机,考虑清楚你到底需要多大的带宽显然是非常重要的。 内存 可用的物理内存是另外一个重要因素,这是因为对内存的占用率会直接随着对服务器请求数量的增加而增加。计算分配给每个并发用户的内存数量以及并发用户的平均数量,只是你要考虑的事情中的一部分。文件缓冲区也是非常重要的,因为它能将磁盘的使用频率降到最低程度,明显加快事务处理的总体速度。 对内存的需求很大程度上取决于使用在特定服务器上的软件的具体情况。除了操作系统的管理能力和文件系统的缓冲区大小之外,你还需要将你所选择的web服务器软件对硬件的特殊要求调查清楚。举个简单的例子,每款WEB服务软件对每个TCP的请求的响应方式以及速度都有所不同。有的软件系统是在客户端还没有发出请求,就已经预先执行好每个TCP要回复的程序,这样必然提高HTTP的响应时间,但也占用了更多的内存。特别是每款WEB软件在应付高峰传输负载的情况下,处理的方式都有所不同,这都造成对内存占用率的变化。而且对于动态网页而言,内存的占用率变化情况会加倍的变化,因为对于一个动态的页面,客户端虽然用鼠标点击发送一次TCP请求,但实际上,每个动态网站里面存在多少个动态对象,就得接受服务器端的回复再发请求,这样的话,我们以一个动态网站有N个对象来计算,那么整个动态网站的响应时间就是2(N+1)*TIME (TIME为一次回来请求的响应时间)。 基于上面,我们知道动态网页对内存的需求比静态网页要求更高。一般情况下,你都可以认为200次/秒访问情况需要256~512MB的内存;500次/秒的需要512MB~1GB,而1000次的访问/秒则需要1~8GB的内存需求。 存储 和存储介质有关的读写时间指标也是非常重要的,对大型文件库和数据库(文件缓冲区的作用在这明显削弱)而言,尤其如此。在多设备协同工作的条件下,Web服务器的磁盘系统必须有卓越的性能,推荐采用SCSI硬盘或RAID阵列。对于那些主要放开了“只读”权限的站点(用户不能上传数据),RAID是最佳的解决方案。这是因为,在RAID阵列中存在多个硬盘磁头,能明显提升读取操作的数据吞吐量。 尽管如此,文件缓冲区大小对于应付动态网站被访问高峰瓶颈也有限制作用。一般情况下,你都可以认为200次/秒访问情况需要50GB的硬盘容量;500次/秒的需要100GB,而1000次的访问/秒则需要500GB的内存需求。 中央处理器 对于那些主要由静态页面构成的站点来说,CPU只是你需要考虑的最次要的一个因素。这是因为,即便是一个非常低端的PC电脑也能充分发掘T1通道的传输速率。但是,对于服务器端运行的代码。这种HTML页面是CGI程序的升级版本(因为它的执行效率更高)。目前,内嵌的服务器端扩展集,比如ASP、PHP3,甚或是普通的服务器端支持的扩展集,已得到了非常普遍的使用。开发这种扩展集的目的是要使网站上的内容更生动活泼,更模块化,以利于维护。此外,服务器解析文档改善了性能相对低下的客户端工作模式,将客户端的负载降低到最低程度,同时也降低了数据传输对带宽的要求。很显然,你要得到这一切,就必须付出金钱的代价。因为服务器解析文档必须在其传输到客户端前就通过服务器来进行解释,所以,你要给你的服务器添加额外的CPU。但是,如果存在多个用户同时对大批量的页面提出访问请求,那么在这种情况下(尤其在这些页面均以独立的进程或线程模式打开情况下),多CPU系统(即使这些CPU的速度都很慢)也许更为管用。 比方Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器数。 【责任编辑:Yoyo】
|







