HI,movno1
分类: WINDOWS
2006-12-23 18:16:33
其实说到服务器,目前最热门的应用无非就是做Web支持和网游平台,国内大部分采购服务器作为网游应用的都是私服,属于侵犯知识产权的行为,虽然短期内容易盈利,但是是违法的,国内已经有架设私服被判刑的先例,所以不便多做讨论,今天想就我个人这几年架设WEB服务器的经验跟大家谈谈WEB服务器和服务器硬件方面的搭配问题。
很多中小型企业的技术人员或者打算以网站、盈利的个人团体组织都经常提出这么一个疑问:究竟什么样的配置可以支持多大的流量?
其实这个问题不可能有准确答案,因为每个网站使用的Web系统都不一样,有些喜欢用IIS+ASP,有些则是用Apache+PHP,这在脚本的执行效率上本身就存在很大的差异,另外,网页系统编写的复杂程度和优化程度也极大的影响着服务器能够承载的访问人数,大部分的新闻资讯、下载类网站都已经使用了静态页面来减少Web系统对服务器处理能力的依赖,但是仍然有不少例如论坛、商城一类的系统需要大量动态代码的支持,所以笼统的去谈论一个服务器能够支持多少访问量是没有实际意义的,还是需要具体的去分析:
首先说说CPU,我们知道,大部分的Web脚本为了安全起见都是在服务器端执行的(Javascript例外),而这些脚本就相当于我们用VB或者C++编程时使用的高级语言,不同的是我们用VB这些软件编程,编辑软件最后会把我们的代码编译成执行效率更高的可执行软件,而我们的Web脚本在保存时是不会被编译的,都是在用户请求访问这个页面时才被相关的编译器进行编译操作,这样一来,结果就是一个页面被访问N次,就得被编译N次,这样对系统资源的占用是非常可怕的,虽然IIS已经对.NET进行优化,会将被访问过的页面编译后缓存起来,下次其他用户进行相同请求时不再需要对这个页面进行编译,但网页脚本的复杂性和庞大性最终还是大量的占用系统资源尤其是处理器资源,这就是为什么热门论坛同时多人在线服务器会变得很慢。其实现在的服务器配置,大多是P4 3.2G或者双路Xeon 3.0G,这样的配置对于动态论坛这种极度消耗资源的系统仍然没有足够的支持能力,根据我的经验,一个服务器上如果是纯粹一个动态论坛而没有其他应用,采用P4 的处理器大概也就同时支持200-300人在线,如果是Web系统效率较高,脚本优化得好,还可以再多100~200人,如果是双路Xeon,千人在线也差不多是极限了。所以,到目前位置,如果想做访问量、想做人气,选用性能比较强劲的CPU还是有足够理由的,个人比较推崇的还是采用Xeon 系统,P4 毕竟是入门级的配置,虽然双核 P4D 性能已经比以前大幅提升,但在多任务处理中,双路 Xeon 的表现还是遥遥领先,而且对于多客户访问的支持也更加稳定。
当然,有人可能会问:如果是静态页面为主的站点,是不是对处理器的要求就比较低了?答案是肯定的。静态页面不需要经过编译,基本就看网络带宽和网卡,如果是图片多的网站,硬盘最好也换成SCSI,高转速高缓存的SCSI硬盘对于多而小的文件读取更有优势,而且稳定性更好,寿命也更长。
接下来说说内存,不管是静态页面的网址还是动态页面的网站,最好都尽量使用大容量内存,尤其是现在的服务器,内存的运行速度已经不是什么重要问题,DDR 333、DDR 400或者DDR2 其实区别都不大,最重要的只有两点:内存的容量和纠错(如ECC)。由于服务器有大量的数据需要临时缓存到内存里,所以访问量大的时候内存的占用也是较大的,而当内存不够用的时候,虚拟内存的工作压力就非常大,其实就是磁盘工作压力会很大,而系统程序跟数据缓存操作不断的争抢内存资源时,当机的几率就高了很多,如果你不希望你的服务器经常重启,配置大容量内存是非常必要的,除非是一天千位数IP的那种小型网站,不然还是建议大家使用 1GB 以上内存,即使有时候内存的使用率不会想我们想象的那么高,但是使用大内存对于降低虚拟内存的使用和减少重启次数都是有很大帮助的。而内存的纠错其实在服务器上是非常必要的,首先很多服务器主板本身就要求搭配ECC REG内存,普通内存根本开不了机,另外,由于内存也是高速设备而且数据刷新频率非常高,所以加入纠错芯片的ECC内存可以有效的帮助系统减少由于数据信息出错而产生的严重后果,另外,由于内存的校验操作都是内存上的独立智检芯片完成,所以不会占用CPU资源,一些用户担心内存纠错会造成系统性能的下降其实是一种心理作用。
至于服务器的硬盘,现在大部分的入门级机型都使用性能出色价格低廉的SATA硬盘,其实这也无可厚非,只不过如果严格比较SATA跟SCSI的区别,在稳定性方面和使用寿命方面SCSI还是有较大优势。我们知道,现在凭借较大的单碟容量,SATA硬盘的性能已经可以跟SCSI媲美,但是服务器这种分分钟要接受用户访问,不断读取、改写磁盘数据的应用环境还是给硬盘带来很大的工作压力,尤其是多人访问以及长时间下载的时候,这样的高强度读写量绝对是桌面级的硬盘无法承受的,哪怕是SATA硬盘,也只是在接口上做了调整,磁盘体和磁头的发热仍然会造成致命伤,而SCSI硬盘设计的时候就考虑到它的工作环境,所以不会一味扩充容量,而是以安全为先决条件,这就是为什么很多二手市场淘汰下来的SCSI硬盘都仍然可以再用个几年。所以,做下载的站点如果资金允许,还是应该尽量选用SCSI硬盘,如果用SATA,也应该定期检查服务器磁盘是否报错以便及时处理减少损失,这绝不是危言耸听,我做过的几个带有资源下载的站点,SATA硬盘基本都是1年左右就开始报错了。
再说说主板吧,一些初级用户觉得用家用主板可以很好的节省成本,其实家用主板跟服务器主板根本就是两回事,为什么“泰安”和“超微”的主板会那么贵?并不是没有道理的:首先是稳定。做服务器的,如果不稳定,一切性能都是空谈。服务器主板的内部总线在设计上要优于家用板,总线带宽够大,能够同时传输的数据才多;另外,服务器主板的用料也非常严格,电容、电阻偷工减料的行为在服务器主板上是不能出现的,还有就是设计问题了,有能力做服务器主板的厂家,设计产品的功力自然要高出一筹,电路设计的合理和优化也是影响主板稳定性的一个因素。最明显的一点:在访问量大的时候,如果是普通主板,不是卡的非常厉害就是立刻罢工,而服务器主板则可以比较平稳的处理这些任务。另外,服务器主板上都会集成一张ATI的入门级显卡,一般是8M显存,显存也是直接集成主板上,为什么这样?因为对服务器来说,显卡是个负担,只有在安装调试的时候才用到,其他时候服务器扔在机柜里面都是不接显示器的,全部通过远程管理,服务器最好没有显卡,因为多一个显卡就多一个负担,需要CPU建立联系处理数据,而且服务器不能集成太强大的显卡,因为性能好的显卡还会发热、耗电,所以专业的服务器主板都是内建一张ATI入门级显卡。
最后说说网卡。既然是服务器,肯定都是要接入网络来工作,而服务器访问量一般都很大,这时候专业网卡跟普通网卡的区别就非常明显!例如我们常用的30元一块的普通10/100M网卡,或者是大多数主板集成的网卡,当然现在也有不少千兆的网卡卖到这个价或者集成在主板上,但是,这些都是个人上网使用的,用了这样的网卡,服务器根本顶不住几百个人在线,因为网卡的线程到了极限,完全依赖CPU的处理,同时这些网卡用料比较省,寿命也不长,像服务器这样长时间工作,这种网卡是最先挂掉的,我以前就见过有人在服务器上使用这种网卡最后网卡烧掉的。另外也有一些好一点的网卡,价格在60-180之间,其实这些也不行,因为线程不存在瓶颈的时候吞吐量已经到了极限,大家不要简单的把吞吐量看成是数据流量,而是数据零碎的处理速度,举例来说,一个大力士一次搬动100KG的东西,你搬10KG的,但是你速度快,你能搬的速度比他快10倍,那你说是你比较效率高。其实错了,因为你搬起和放下比他多9次,而且每次你都用脑子去记录,他可以完全不动脑子,而脑子就是CPU。服务器必须使用专业网卡,例如3com、intel的,这些网卡单独出售价格都在几百到几千元,不过服务器主板上一般都会集成有,这类网卡才是最适用的,因为基本不依赖CPU,能直接和内存沟通数据,有自己的很大的缓存区,甚至有的能直接分离垃圾数据请求。我们个人平时使用,其实任何网卡都是一样,不过拿到服务器上,好的网卡和差的网卡,立刻分出区别。
说了这些,其实还是希望大家对服务器各个配件有一些了解,特别是现在很多人选择组装的方式构建服务器,就更应该用稳定和适用去衡量产品,而不要一味降低成本,结果弄出一台服务器拿到机房经常死机,后期维护起来让自己头疼。