在如今大数据流量急剧攀升的网络应用时代,服务器租用日益成为众多企业和运营商的首选方案。而选择性能与配置不达标的服务器,只会给企业带来种种运营困扰;但若未经实际需求评估,草率选购一台性能强悍、价格高昂的服务器,无疑会造成成本上的浪费;因此,既不能一味图省钱而选用一台极易成为计算瓶颈的服务器,也不能忽视数据冗余方面的考量,这些都会影响业务的正常运转。
要建站、要开展业务,首先得选购一台可靠的服务器。在面对服务器选择时,不要急于纠结该用什么样的CPU、多大的硬盘、多少内存、需要多少兆带宽这类问题,这些其实是我们最终要得出的答案。而在此之前,我们需要先厘清几个需求层面的问题:
1、服务器将运行何种应用?
这是首先要考虑的问题,你需要根据服务器的应用类型,也就是用途,来确定服务器在性能、容量和可靠性方面的需求。我们按照前端服务器+应用程序服务器+数据服务器的常见基础架构来展开讨论:
(1)Web前端:通常来说,大多数Web前端服务器(Front-end)对服务器性能的要求并不高,例如静态Web服务器、动态Web服务器、图片服务器等,因为在现有技术框架下,我们有诸多方案可解决前端服务器的性能扩展与可靠性问题,比如LVS、Nginx反向代理、硬件负载均衡(F5、A10、Radware)等。
(2)应用服务器:由于承担着计算与功能实现的任务,我们需要为基于Web架构的应用程序服务器(Application Server)选配足够快速的服务器,此外应用程序服务器可能需要占用大量内存,尤其是基于Windows架构的Ruby、Python、Java服务器。此类服务器至少需配备单路至强级别的配置。至于可靠性方面,若你的架构中仅有一台应用服务器,那么这台服务器必须足够可靠,RAID绝对是不可忽视的选项。但若有两台或更多应用服务器,且设计了负载均衡机制、具备冗余能力,则不必将每台服务器都武装到最高规格。
(3)特殊应用:除了作为Web架构中的应用程序服务器之外,若你的服务器用于处理流媒体视频编码、服务器虚拟化、媒体服务器(如Asterisk类)业务,或者作为游戏服务器(逻辑、地图、聊天)运行,同样对CPU和内存有较高需求,至少需考虑单路至强级别的服务器,其中服务器虚拟化对存储可靠性的要求尤为严苛。
(4)公共服务:这里指的是邮件服务器、文件服务器、DNS服务器、域控服务器一类。通常我们会部署两台DNS服务器互为备份,域控主服务器也会配备一台备份服务器(专用或非专用均可),因此可靠性方面无需过于苛求。至于邮件服务器,至少需具备足够的硬件可靠性与存储容量,这主要是出于对邮件数据负责的考虑,因为许多用户并没有保存和归档邮件的习惯,一旦重装系统,往往会依赖重新从服务器下载数据。至于性能方面,则需评估具体用户数量后再做决定。
(5)数据库:这是我们最后要讨论的应用类型,也是要求最高、最为关键的服务器。无论采用MySQL、SQLServer还是Oracle,通常我们认为它需要足够快速的CPU、足够充裕的内存,以及足够稳定可靠的硬件。单路至强CPU/4GB内存/Raid1可以说是入门级配置。至于具体准确的配置方案,还需在明确业务需求后再做定夺。
2、服务器需要支撑多少用户访问?
服务器的存在必然是为了提供某种服务,而使用这些服务的用户数量同样是我们必须纳入考量的因素,以下几个具体问题需要你做出评估:
注册用户共有多少?通常情况下会有多少用户同时在线访问?每日同时在线的峰值大约是多少?这些问题,对我们决定采用怎样的CPU、多大的内存有着举足轻重的影响。建议就这些问题最好与业务人员及技术服务团队充分沟通了解。此外,你还需对未来用户增长做出尽可能精准的预测与规划,因为你的服务器需要支撑日益增长的用户规模。
3、需要预留多大空间来存储数据?
这个问题需要从两个维度来测算,其一是数据的类别构成,包括:操作系统本身占用的空间、安装应用程序所需的空间、应用程序产生的数据、数据库、日志文件、邮件数据等,若是Web2.0类网站,还需计算每位用户所占用的存储空间;其二是从时间维度来考量,这些数据每天都在持续增长,你至少要为未来1年(建议以2~3年为宜)的数据增长做出准确测算,这同样需要软件开发人员与业务人员共同提供充分的信息支持。最后,你还需在算出的数字基础上乘以1.5左右的系数,以便日后维护时能从容进行各类数据备份与文件转移操作。
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/yzj/txyzj/3249.html
