咱们抛开 租用服务器仍是自行购买服务器进行托管的问题,在这篇文章里,咱们讨论的是不管租用或托管都要面临的一个问题,那就是选择服务器的硬件配置。由于上帝不会给你一台服务器来知足全部需求,解决全部的问题。尤为是咱们身处在这样一个飞速变化的时代,当你还在为最新款最强劲的CPU乍舌不已的时候,Intel、AMD却已经在密谋下一次洗劫你钱包的时机了,其实,他们早已经将将来10年的CPU演进道路设计稳当,布好一个又一个的坑在等着你跳进去,简直就像阴谋通常。没错,这一切就是阴谋!

不成功的服务器选择会给企业带来不少运营问题:若是不经认真仔细的评估,轻率的选择一台性能超级强劲让你高枕无忧但价格昂贵的服务器,毫无疑问会带来成本上的极大浪费;但若是一味为了省钱,而选择一台很容易成为计算瓶颈,或没有充分考虑冗余措施的服务器,就会极大影响业务的运行,客户投诉网站速度超慢,硬盘出现故障致使数据丢失,由于这些,你今后没有了美好的睡眠,每日提心吊胆,更要命的是,公司所以丢失了几十万元的订单。

你须要从不一样的角度来决定选择一台什么样的服务器,找到知足技术须要、业务发展和成本控制之间的最佳平衡点,为了作到这一点,绝对仍是须要一点智慧。51IDC将在下面为你们介绍一些易于理解,尽量全面的建议,并帮助你作出决定。

先不要急于决定须要怎样的CPU,几个硬盘,几个G内存,须要多少兆带宽这样的问题,那些是咱们最后须要获得的答案。在这以前,先一块儿梳理几个问题。在下面,咱们列出了一些“多少”或“什么样”的问题,拿起你的笔或在Windows记事本里新建一个文件,尝试根据下面四个问题来评估本身的需求:

服务器运行什么应用?

须要支持多少用户访问?

须要多大空间来存储数据?

个人业务有多重要?

1 服务器运行什么应用?这是首先须要考虑的问题,在这里你要根据服务器的应用类型,也就是用途,来决定服务器的性能、容量和可靠性需求。咱们按照前端服务器+应用程序服务器+数据服务器的常见基础架构来讨论:

1.1 Web前端:正常状况下,咱们认为大多数Web前端服务器(Front-end)对服务器的要求不大,例如静态Web服务器、动态Web服务器、图片服务器等等,由于在现有的技术框架中,咱们有不少方案能够解决前端服务器的性能扩展和可靠性问题,例如LVS、Nginx反向代理、硬件负载均衡(F5,A10,Radware)等。甚至在不少访问量不高(几百个用户同时在线)的应用中,51IDC的经典酷睿服务器就能够知足需求。

1.2应用服务器:因为承担了计算和功能实现,咱们须要为基于Web架构的应用程序服务器(Application Server)选择足够快的服务器,另外应用程序服务器可能须要用大量的内存,尤为是基于Windows基础架构的Ruby,Python,Java服务器。这一类服务器至少须要使用单路至强的配置。对于可靠性的问题,若是你的架构中只有一台应用服务器,那确定须要这台服务器足够可靠,RAID绝对是不能忽视的选项。但若是有两台或更多的应用服务器,并设计了负载均衡机制,具备冗余功能,那咱们则没必要将每台服务器武装到底。

1.3 特殊的应用:除了做为Web架构中的应用程序服务器以外,若是你的服务器是用来处理流媒体视频编码、服务器虚拟化、媒体服务器(Asterisk之类),或者做为游戏服务器(逻辑、地图、聊天)运行,则一样对CPU和内存需求比较高,咱们至少要考虑单路至强的服务器。其中服务器虚拟化对存储的可靠性的要求都很是高,由于一个篮子里有十几个鸡蛋,篮子必定要足够牢靠才是。

1.4公共服务:咱们指的是邮件服务器、文件服务器、DNS服务器、域控服务器这类服务器。一般状况咱们会部署两台DNS服务器做为互相备份,域控主服务器也会拥有一台备份服务器(专用的或非专用的),因此对于可靠性,无需达到苛刻的地步。至于邮件服务器,至少须要具有足够的硬件可靠性和容量大小,这主要是为了对邮件数据负责,由于不少用户没有保存和归档邮件数据的习惯,当他们重装系统后,总会依赖从新下载服务器上的数据。至于性能问题,咱们认为须要评估用户数量才能决定。

1.5数据库:咱们最后讨论的应用,也是要求最高,最重要的服务器。不管你使用的是MySQL、SQLServer仍是Oralce,通常状况下,咱们认为它须要足够快的CPU,足够大的内存,足够稳定可靠的硬件。单路至强CPU/4GB内存/Raid1绝对是入门配置。关于准确的配置咱们须要再讨论业务需求后才能做决定。

2 服务器须要支持多少用户访问?服务器确定是为了提供某种服务,而使用这些服务的用户一样是咱们必须考虑的因素,有几个具体的问题你须要作出评估:

有多少注册用户?正常状况下有多少用户会同时在线访问?天天同时在线访问的最高峰值大概是多少?

这些问题,对咱们决定采用什么样的CPU,多大的内存有着相当重要的影响。51IDC建议你的技术人员和业务部门坐在一块儿来讨论这几个问题,最后甚至须要按照特定的技术模型和算法,将这些数字转化为一些更具体的技术数字,例如并发多少个链接(不少时候,用户数与链接数不是一个概念)。同时,你还要对将来的用户增加作一个尽量准确的预测和规划,你的服务器须要支持愈来愈多的用户。

3须要多大空间来存储数据?咱们须要从两个角度来计算这个问题,一个角度是有哪些类别的数据,包括:操做系统自己占用的空间、安装应用程序所须要的空间、应用程序所产生的数据、数据库、日志文件、邮件数据等等,若是是Web2.0类的网站,你还要计算每一个用户的存储空间;另外一个角度是从时间轴来考虑,这些数据天天都在增加,你至少要为将来1年(咱们建议2~3年)的数据增加作个准确的测算,这可能仍然须要你的软件开发人员和业务人员一块儿提供足够的信息。最后你仍然须要为计算出来的数字结果乘1.5左右的系数,方便维护的时候作各类数据备份和文件转移操做。

4个人业务有多重要:你须要根据自身的业务领域,来遵循一些要求,咱们在下面举几个简单的例子,帮助你理解这些服务器对可靠性、数据完整性等方面的要求:

4.1 若是你的服务器用来运行一个WordPress博客,与朋友们分享观点。那么我相信,一台酷睿服务器,1G内存外加一块160GB的硬盘就足够了。就算服务器出现了一点硬件故障,致使几个小时甚至一两天不能提供访问,生活会照常继续,天也不会塌下来。

4.2 若是你的服务器用来做为测试平台,那么就不会如生产环境那样,对可靠性有极高的要求,你所须要的可能只是作好例行的数据备份,服务器宕机后,能有我的在今天把问题解决掉就OK了

4.3若是你是一个电子商务公司,服务器正在运行电子商务网站平台,那么请必定要像重视女友同样重视服务器,当硬件发生故障而致使宕机,你须要对如下危言耸听的后果作好心理准备:投诉电话被打爆、顾客大量流失、顾客要求退款、市场推广费用打水漂、员工无事可干,公司运营陷入瘫痪、数据丢失(这是最痛苦最灾难的结果,咱们经历了太多这样的案例,它甚至会致使一个公司就此消亡)

在这里,咱们其实只须要简单讨论你的业务对服务器硬件可靠性的要求。换言之,若是你以为业务不能承担硬盘损坏带来的停机或数据丢失风险,那么必定要选择一个合适的Raid卡,对于冗余电源问题,道理同样。(全面解决这个问题,不单考虑单个服务器的硬件,还须要结合系统架构的规划设计和运维管理来分析,这部分咱们将单独撰写文章来讨论。)

在完成以上问题后,咱们接下来就能够决定这些具体选项:

选择什么CPU?

回忆一下上面”服务器运行什么应用?“和 “须要支持多少用户访问?”两个问题的答案,这将帮助咱们来选择合适的CPU。毫无疑问,CPU的主频越高,其性能也更高;两个CPU要比一个CPU来得更爽,至强确定比酷睿更生猛。但咱们究竟须要选择怎样的CPU?咱们在这里为你提供一些常见状况下的建议:

1 若是你的业务刚刚起步,预算不是很充足,建议你选择一款经典酷睿服务器,毕竟51IDC的E5300服务器最便宜只须要450块钱一个月。并且,之后你能够根据业务发展状况,随时升级到更高配置的服务器。

2 若是你须要在一台服务器同时运行多种应用服务,例如.Net+Exchange+SQLServer,那么一个单路至强(例如X3330)或新一代酷睿I3/I7(双核四线程)将是最佳的选择。虽然从技术角度,这不是一个好主意,但至少可以帮你节约一大笔成本。

3若是你的服务器运行SQLServer、MySQL或者Oracle,并且目前有几百个用户同时在线,将来还会不断增加,那么你至少应该选择安装一个E5504(或更高主频)的至强服务器。当半年后负载愈来愈大的时候,能够选择增长一个CPU。

4 若是你须要一台游戏服务器,那么咱们建议你选择一台单路或双路的至强服务器。

5须要注意的是,使用双路CPU须要应用程序的支持,若是应用程序自己没有对双路CPU进行代码优化,就不会带来性能的显著提高,并且将形成投资的极大浪费。

须要多大的内存?

一样,”服务器运行什么应用?“和 “须要支持多少用户访问?”两个问题的答案,也将帮助咱们来选择合适的内存容量。相比于CPU,咱们更认为内存(RAM)是影响性能的最关键因素。由于在至关多正在运行的服务器中,咱们发现CPU利用率通常都在10%~30%之间,甚至更低。但咱们发现因为内存容量不够而致使服务器运行缓慢的案例比比皆是,若是服务器不能分配足够的内存给应用程序,应用程序就须要经过缓慢的硬盘接口来交换读写数据,这将致使网站慢的使人没法接受。内存大小主要取决于服务器的用户数量,固然也和应用软件对内存的最低需求和内存管理机制有关系,因此,最好由你的程序员或软件开发商给你最佳的内存配置建议。咱们一样在下面给出了一些常见应用环境下的内存配置建议:

1不管是Windows下的IIS仍是Linux下的Apache,通常状况下Web前端服务器不须要配置特别高的内存,尤为是在集群架构中,1GB-2GB就已足够。只有当几千个并发用户,并运行动态脚本的时候,咱们才会考虑使用4GB或更高的内存。

2对于运行Tomcat、Resin、WebLogic、Websphere或.Net这样的应用服务器,2GB内存应该是基准配置。更准确数字须要根据用户数量和技术架构来肯定。

3 数据库服务器的内存由数据库实例的数量、表大小、索引、用户数来决定,通常建议配置4GB以上的内存,咱们甚至在不少的客户案例中使用了24GB到48GB的内存。

4诸如Imail、Notes、Exchange这样的邮件服务器对内存的要求也并不高,1GB-2GB就能够知足了。

5对于一台文件服务器,1GB内存可能就足够了。

6还有一些特殊的服务器,咱们须要为之配置尽量高的内存容量,包括Squid,Varnish这样的缓存服务器,和Memcached Server。

事实上,上面的数字已经足够慷慨,因为内存技术的不断进化和价格不断下降,咱们才得以近乎奢侈的讨论4G、8G、16GB这些曾经不可想象的内存容量。早在2000年的时候,我面对的大多数服务器都是256MB、512MB内存,1GB已经算是高配,而那时一样也须要知足大量用户的访问。因此,除了花钱购买内存来知足应用程序的贪婪以外,系统优化和内存管理仍然是咱们须要重视的问题。

须要怎样的硬盘存储系统?

硬盘存储系统的选择和配置是整个服务器系统里最为复杂的一部分,咱们须要考虑硬盘的数量、容量、接口类型、转速、缓存大小,以及是否须要Raid卡,Raid卡的型号和Raid级别等问题。甚至在一些高可靠性高性能的应用环境中,咱们还须要考虑使用怎样的外部存储系统(SAN、NAS或DAS)。下面的图表能够帮助咱们顺利地决定硬盘系统的相关问题。



网卡的问题

若是你的基础架构是多服务器环境,并且服务器之间有大量的数据交换,那么咱们建议你为每台服务器配置两个或更多的网卡,一个用来对外提供服务,另外一个用来作内部数据交换。若是你对安全的要求特别高,咱们甚至能够单独安装一个用于系统管理和平常维护的网卡。

至于网卡端口的速率问题,这主要取决于你对带宽流量的评估。大多数状况下,百兆网卡足够用来对外提供服务,而内部数据交换建议使用千兆网卡。但话说回来,除了经典酷睿服务器以外,咱们如今很难找到百兆接口的服务器主板了。

还有一种状况须要注意,若是你选择51IDC的数据备份服务(Managed Backup Service),则须要一块单独的网卡链接到专有的数据备份网络中,进行天天的数据备份,这会带来几个好处:不会占用宝贵的外网带宽、保证数据传输的安全、提供快速的数据备份速度。

咱们很是但愿这篇文章可以帮助你为服务器选择合适的硬件配置,若是你阅读后发现有不正确的地方,请在评论中指出来,咱们会及时更新并感谢你的热情指正。
前端