如何根据服务器应用选购服务器?

chaicp 2022-08-10 11:42:18 转载 2086
无论是企业自己投建IT资产还是选用IDC托管,或者采用云主机,我们都要面临一个问题,那就是选择服务器的硬件配置,选购硬件配置时要根据服务器的应用需求而定。因为只通过一台服务器是无法满足所有的需求,并解决所有问题的。

无论是企业自己投建IT资产还是选用IDC托管,或者采用云主机,我们都要面临一个问题,那就是选择服务器的硬件配置,选购硬件配置时要根据服务器的应用需求而定。因为只通过一台服务器是无法满足所有的需求,并解决所有问题的。以下是选购租用服务器主要考虑的一些因素:

服务器要运行什么应用

需要支持多少用户访问

需要多大空间来存储数据

业务有多重要

服务器网卡方面的考虑

安全方面的考虑

机架安排是否合理化

服务器价格是否超出预算

如何根据服务器应用选购服务器?

1.服务器运行什么应用?

应用类型决定服务器的性能、容量和可靠性要求。

负载均衡端:除了网卡要求,其它方面要求低;LVS方案,会将所有连接要求转给后端web应用服务器;Haproxy负载均衡器,由于它的运行机制跟LVS不一样,流量必需双向经过HAproxy机器本身,对CPU运行有要求

缓存服务器:主要是Varnish和redis,对CPU及其他方面要求一般,但在内存方面要求尽量多谢。

应用服务器:承担了计算和功能的双重责任,需要为基于web架构的应用程序服务器选择足够快的服务器,另外应用服务器可能要用到大量的内存,尤其是基于windows基础架构的Ruby/Python/Java服务器。

特殊应用:用于除了web架构的应用程序外,如果服务器还要出来流媒体视频编码/服务器虚拟化/媒体服务器,或者游戏服务器(逻辑/地图/聊天)运行,那么同样对CPU和内存的需求比较高;

公共服务:邮件服务器/文件服务器/域控服务器/DNS服务器,通常都会部署两台互相备份,所以对于可靠性,无须过于苛刻。邮件服务器至少具备足够的硬件可靠性和容量大小,这主要是对邮件数据负责。

数据库服务器:足够快的CPU、足够大的内存、足够稳定可靠的硬件。如果预算充分,建议用固态硬盘做RAID10,因为数据库对服务器磁盘I/O要求很高。

2.服务器需要支持多少用户访问?

服务器就是用来给用户提供某种服务访问的,所以使用这些服务的用户同样是我们必须考虑的因素,可以从下面几个具体的方面进行评估:

有多少注册用户

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

3.需要多大空间来存储数据

关于这个问题需要从两个方面来考虑,一方面是有哪些类别的数据,包括:操作系统本身占用的空间,安装应用程序所需要的空间,应用程序所产生的数据、数据库、日志文件、邮件数据等,如果网站是web2.0的,还要计算每个用户的存储空间;另一方面是从时间轴上来考虑,这些数据每天都在增长,至少要为未来两三年的数据增长做个准确的预算,这就需要软件开发人员和业务人员一起来提供充分的信息了。最后将计算出来的结果乘上1.5左右的系数,以方便维护的时候做各种数据的备份和文件转移操作。

4.我的业务有多重要

根据自身的业务领域来考虑,举个领子,有助于理解这些服务器对可靠性、数据完整性等方面的要求:

如果服务器运行一个WordPress博客,那么一台酷睿处理器的服务器,1GB内存,外加160GB的硬盘就够了。就算服务器出现一点硬件故障,导致几个小时不能提供访问,生活也会照常继续;

如果服务器是用作测试平台,则不会如生产系统那样对可靠性有极高的要求,做需要的可能只是做好例行的数据备份即可,若服务器宕机,只要能够在当天解决问题即可;

如果是一家电子商务公司的服务器,运行电子商务网站平台,当硬件发生故障导致宕机时,你需要对以下“危言耸听”的后果做好心理准备:投诉电话被打爆、顾客大量流失、顾客要求退款、市场推广费用打水漂、员工无事可干、公司运营陷入瘫痪状态、数据丢失。

如果是大型广告类或者门户类网站,那么建议选择CDN系统。由于他们具有较高的响应速度、负载均衡、有效抵御DDoS攻击等特点,相对而言,每个节点都会有大量的冗余。

这里其实只是简单地讨论下业务对服务器硬件的可靠性要求。要全面地解决这个问题,不能只考虑服务器的硬件,还需要考虑系统架构的规划设计。

(1)选择什么CPU

如果业务刚刚起步,预算不是很充足,建议选择一款经典的酷睿服务器,这可以帮你节约大量的成本。而且,以后还可以根据业务发展的情况,随时升级到更高配置的服务器。

如果需要在一台服务器上运行多种应用服务,例如基于LNMP架构的Web网站,那么一个单核至强或新一代I5(双核四线程)讲师最佳的选择。虽然从技术角度来说,这并不是一个好主意,但至少能节省一大笔成本。

如果服务器要运行MySQL或者Oracle数据库,而且目前有几百个用户同时在线,未来还会增长,那么至少应该选择安装一个双四核服务器。

(2)需要多大的内存

相比于CPU,内存(RAM)才是影响性能的最关键因素。因为在很多正在运行的服务器中,CPU的利用率一般都在10%-30%之间,甚至更低。但由于内存容量不足而导致服务器运行缓慢的案例比比皆是,如果服务器不能分配足够的内存给应用程序,那么应用程序就需要通过硬盘接口缓慢地交换读写数据了,这将导致网络慢的令人无法接受。

无论是Apache还是Nginx服务器,一般情况下Web前端服务器都不需要配置特别高的内存,尤其是在集群架构中,4GB的内存已经足够了。如果用户数量持续增加,我们才会考虑使用8GB或更大的内存。单个Apache Web机器,在配置了16GB的内存后,可以抗6000个并发连接。

对于运行Tomcat、Resin、Weblogic的应用服务器,8GB内存应该是基准配置。

数据库服务器的内存有数据库实例的数量、表大小、索引、用户数量等来决定,一般建议配置16GB以上的内存;

诸如Postfix和exchange这样的邮件服务器对内存的要求并不高,1GB-2GB就可以满足了。

还有一些特殊的服务器,需要为之配置尽可能大的内存容量,比如配置有Varnish、Memcached的缓存服务器。

事实上,由于内存技术不断进化,价格不断降低,因此才得以近乎奢侈地讨论4GB、8GB、16GB这些曾经不可想象的内存空间容量。

(3)需要怎样的硬盘存储系统

硬盘存储系统的选择和配置时整个服务器系统里最复杂的一部分,需要考虑硬盘的数量、容量、接口类型、转速、缓存大小,以及是否按照RAID卡、RAID卡的型号和RAID级别问题。甚至在一些高可靠性高性能的应用环境中,还需要使用怎样的外部存储系统(SAN、NAS、DAS)。

如果用作缓存服务器,比如Varnish或Redis,可以考虑使用RAID0;

如果是跑Nginx+FastCGI或Nginx等应用,则可以考虑用RAID1;

如果是内网开发服务器或存放重要代码的服务器,则可以考虑用RAID5;

如果是跑MySQL或Oracle等数据库应用,可以考虑用固态硬盘做RAID5或RAID10;

5.网卡方面的考虑

如果基础架构师多服务器环境,而且服务器之间有大量的数据交换,那么建议为每台服务器配置两个或更多的网卡,一个用来对外提供服务,另一个用来做内部数据交换。如果在项目外端都置于防火墙内,许多时候单网卡就足够了。建议大家选用万兆网卡。另外,建议交换机也要选择千兆网卡级别的。如果经常使用AWS EC2机器,AWS将机器的网卡分成了3个级别:Low(20Mbit/s)、Moderate(40Mbit/s)、High(80~100Mbit/s)。

6.服务器安全方面的考虑

目前国内的DDoS攻击还是比较普遍的,因此建议给每个项目方案和自己的电子商务网站配置硬件防火墙,虽然这些问题是网站后期运营维护需要考虑的,这里只是让大家有个概念性的认识。此外,建议租赁CDN服务,这样万一不幸遭遇恶意的DDos流量攻击,CDN还能帮助抵挡部分恶意流量,核心机房的业务不至于在很短的时间内就会崩溃。

7.根据机架数合理安排服务器的数量

选择服务器时应该明确服务器的规格,即到底是1U、2U还是4U的,到底有多少台服务器和交换机,应该如何安排,毕竟机柜只有42U的容量。

8.成本考虑:服务器的价格问题

无论公司采购,还是项目实施过程中,成本都是非常重要的问题。笔者的方案经常退回,理由是超出预算。我们经常面对的问题是,客户给出的成本预算有限,而实际应用又需要比较多的服务器,这时候,就不得不另外设计一套最小化成本预算方案来折中处理。

声明:本文转载于:互联网,如有侵犯,请联系service@Juming.com删除
相关文章推荐