1. 题记:
服务器选型工作是项目规划检讨的一项非常重要的工作,本文详细深入总结服务器选型。
2. 服务器基础知识概览
2.1 服务器的定义与功能
2.1 .1 定义
服务器是一种高性能计算机,其设计目的是在网络中提供服务。它可以处理来自多个客户端的请求,如数据存储、文件共享、电子邮件处理、网页服务等多种功能。与普通个人计算机相比,服务器通常具有更高的性能、可靠性和可扩展性。
2.1 .2 功能
2.2 服务器的分类
2.2 .1 按应用场景分类
2.2 .2 按外形结构分类
机架式服务器:外形像一个柜子,服务器被安装在标准的 19 英寸或 23 英寸机架中。这种服务器的优点是节省空间、易于管理和维护,适合于数据中心等大规模部署的环境。例如,在一个大型互联网数据中心,数百台机架式服务器可以整齐地排列在机架上,方便进行布线、散热和监控等操作。
塔式服务器:外形类似于普通的个人计算机机箱,通常是独立放置的。它的优点是内部空间较大,便于扩展硬件,适合于小型企业或部门级应用,不需要太多的服务器设备。例如,一个小型广告公司可以使用塔式服务器来运行其设计软件和文件存储等服务。
刀片式服务器:将多个服务器主板(称为刀片)安装在一个机箱内,共享电源、散热和网络等资源。这种服务器的特点是密度高、节省空间和能耗较低,适合于高性能计算和云计算等对空间和能源效率要求较高的环境。例如,在一个云计算数据中心,刀片式服务器可以在有限的空间内提供大量的计算资源。
2.3 服务器的硬件组成
2.3.1 处理器(CPU)
服务器的核心部件,负责执行计算机程序的指令。服务器 CPU 通常具有多个核心,能够同时处理多个任务。例如,一个具有 8 核心的服务器 CPU 可以同时处理 8 个不同的线程任务,提高服务器的处理效率。此外,服务器 CPU 还具有较大的缓存(如 L3 缓存),用于存储经常访问的数据和指令,减少从内存中读取数据的时间。
2.3.2 内存(RAM)
用于存储服务器正在运行的程序和数据。服务器内存的容量大小直接影响服务器能够同时处理的任务数量和数据量。例如,一个具有 32GB 内存的服务器可以比一个 16GB 内存的服务器加载更多的应用程序和数据。服务器内存通常采用 ECC(Error – Correcting Code)内存,这种内存能够检测和纠正数据错误,提高服务器的稳定性和可靠性。
2.3.3 存储设备
2.3.4 网络接口卡(NIC)
用于服务器与网络之间的连接。网卡的速度(如 1Gbps、10Gbps、40Gbps 等)决定了服务器与外界的数据传输速度。在高性能服务器中,通常会配备高速网卡,以满足大量数据传输的需求。此外,一些网卡还支持多种网络协议(如 TCP/IP、iSCSI 等),方便服务器在不同的网络环境中使用。
2.3.5 电源供应单元(PSU)
为服务器提供电力支持。服务器电源通常具有较高的功率,以满足服务器硬件的用电需求。一些服务器还配备了冗余电源,当一个电源出现故障时,另一个电源可以继续为服务器供电,保证服务器的正常运行。
2.3.6 机箱和散热系统
机箱用于保护服务器内部的硬件组件,并且提供安装和固定的位置。散热系统(如风扇、散热片等)则用于保持服务器内部的温度在合适的范围内。由于服务器在运行过程中会产生大量的热量,如果散热不良,可能会导致硬件故障。因此,服务器的散热系统是非常重要的。
2.4 服务器的软件系统
2.4.1 操作系统
服务器操作系统是服务器软件的基础,常见的服务器操作系统有 Windows Server、Linux(如 Ubuntu Server、CentOS、Red Hat Enterprise Linux 等)和 Unix(如 Solaris、AIX 等)。这些操作系统为服务器提供了基本的管理功能,如文件系统管理、进程管理、用户管理和网络管理等。例如,Windows Server 操作系统提供了图形化的管理界面,方便管理员进行服务器的配置和管理;Linux 操作系统则以其稳定性、安全性和开源性而受到广泛应用。
2.4.2 服务器软件
根据服务器的应用场景,需要安装不同的服务器软件。例如,Web 服务器需要安装 Web 服务器软件(如 Apache 或 Nginx),数据库服务器需要安装数据库管理系统(如 MySQL 或 Oracle),邮件服务器需要安装邮件服务器软件(如 Postfix 或 Exchange Server)等。这些服务器软件负责实现服务器的具体功能,如接收和处理客户端请求、存储和管理数据等。
3. 服务器选型的原则
服务器选型是一个复杂的过程,需要综合考虑多个因素:
3.1 性能因素
3.1.1 处理器(CPU)
3.1.2 内存(RAM)
3.1.3 存储系统
3.1.4 网络性能
3.2 可靠性和可用性因素
3.2.1 冗余设计
3.2.2 热插拔功能
热插拔硬盘、电源和风扇等组件允许在服务器运行时更换故障部件,减少服务器停机时间。例如,在企业级服务器中,热插拔硬盘可以在不关闭服务器的情况下更换故障硬盘,提高系统的可用性。
3.2.3 硬件质量和品牌信誉:
选择知名品牌的服务器,其硬件质量通常更有保障,可靠性更高。这些品牌在生产过程中采用严格的质量控制标准,并且有完善的售后服务体系。例如,戴尔、惠普、IBM 等品牌在服务器市场有多年的经验和良好的口碑。
3.3 可扩展性因素
3.3.1 处理器和内存扩展性:
服务器主板应支持添加更多的 CPU 和内存。例如,一些服务器主板有多个 CPU 插槽,可以在未来需要提高性能时添加 CPU。同时,内存插槽的数量也决定了内存的最大可扩展容量。
3.3.2 存储扩展性:
存储系统应该易于扩展,无论是通过添加硬盘到现有的存储阵列,还是通过连接新的存储设备。例如,一些 NAS 设备可以通过添加硬盘扩展柜来增加存储容量,而 SAN 可以通过添加存储节点来扩展。
3.3.3网络扩展性:
服务器的网络接口应该能够支持更高的带宽升级,或者可以添加新的网络接口卡。例如,服务器主板上可能有额外的 PCI – Express 插槽,可以用于添加高速网卡以满足未来网络流量增长的需求。
3.4 应用场景因素
3.4.1 Web 服务器
对于 Web 服务器,重点关注网络性能和内存。需要足够的内存来缓存网页内容,提高响应速度。同时,高速网卡可以快速处理大量的用户请求。例如,一个高流量的电商网站服务器可能需要至少 16GB 的内存和 10Gbps 的网卡。
3.4.2 数据库服务器
数据库服务器需要强大的 CPU 和大量的内存来处理复杂的查询和数据操作。存储系统的性能和可靠性也至关重要,通常采用高速固态硬盘和 RAID 技术。例如,一个大型企业的关系型数据库服务器可能需要多个高核心数的 CPU、数百 GB 的内存和高性能的 SSD 存储阵列。
3.4.3 虚拟化服务器
虚拟化服务器需要大量的内存和 CPU 资源来支持多个虚拟机。同时,存储和网络的 I/O 性能也很重要。例如,一个用于企业虚拟化环境的服务器可能需要支持硬件辅助虚拟化技术,并且有足够的资源来分配给多个虚拟机,包括 CPU 核心、内存和存储容量。
3.5 成本因素
3.5.1 采购成本:
包括服务器硬件本身的价格、操作系统和软件许可证的费用。不同品牌、配置的服务器价格差异很大。例如,入门级服务器可能只需几千元,而高端企业级服务器可能要几十万元。
3.5.2 运营成本:
包括电力消耗、冷却成本、维护和管理成本。高性能服务器通常消耗更多的电力,需要更好的冷却系统。同时,维护和管理复杂的服务器系统也需要专业人员和相应的费用。例如,一个数据中心的服务器每年的电力和冷却成本可能占服务器总成本的相当一部分。
3.5.3 升级成本:
考虑未来升级服务器组件(如 CPU、内存、存储)的成本。一些服务器可能在升级兼容性方面有更好的设计,降低升级成本。例如,某些服务器主板可以方便地升级到新一代的 CPU,而无需更换整个主板。
4. 目前一些主流的服务器
本文帮大家列举一些目前市场上比较热门的服务器供大家参考,先声明不是打广告,排名也不分先后。
4.1 浪潮:
4.2 华为:
4.3 超聚变:
4.4 戴尔:
4.5 惠普:
4.6 联想:
5. 服务器性能测试
服务器性能测试是评估服务器在各种负载条件下的性能表现的过程,也是项目上线前必做的,本文总结了服务器测试所涉及的几乎所有项目。
5.1 性能测试的目的
5.1.1评估服务器能力
确定服务器是否能够满足当前和未来业务需求。例如,对于一个计划上线新电商平台的企业,通过性能测试可以了解服务器是否能够处理预期的用户流量、订单处理量等业务负载。 了解服务器在不同工作负载下的性能瓶颈,以便针对性地进行优化。比如,发现服务器在高并发数据库查询时 CPU 利用率过高,可能就需要考虑升级 CPU 或者优化数据库查询语句。
5.1.2 比较不同服务器配置或型号
当企业需要采购新服务器时,性能测试可以帮助比较不同品牌、型号或配置的服务器。例如,比较戴尔和惠普同类型服务器在相同负载下的性能,包括处理速度、响应时间等指标,从而选择最适合业务需求且性价比高的服务器。
5.1.3 验证服务器优化效果
在对服务器进行硬件升级(如增加内存、更换更快的硬盘)或软件优化(如调整操作系统参数、优化应用程序代码)后,通过性能测试来验证这些优化措施是否有效,以及提升了多少性能。
5.2 性能测试的指标
5.2.1 处理器性能指标
CPU 利用率: 表示 CPU 被使用的百分比。在性能测试中,通过监控 CPU 利用率可以了解服务器的计算负载情况。例如,在正常负载下,CPU 利用率应该保持在一个合理的范围内(如 60% – 80%),如果持续超过 90%,可能表示服务器计算能力不足。 每秒指令数(IPS)或每秒浮点运算次数(FLOPS): 这两个指标分别衡量 CPU 处理整数指令和浮点运算的速度。对于科学计算、数据分析等应用场景,FLOPS 是一个重要的指标,而 IPS 对于一般的业务逻辑处理有重要参考价值。例如,高性能计算服务器需要很高的 FLOPS 来快速处理复杂的数学模型。
5.2.2 内存性能指标
内存带宽: 指内存与 CPU 之间的数据传输速率,单位通常是 GB/s。较高的内存带宽意味着内存能够更快地向 CPU 提供数据,减少 CPU 等待数据的时间。例如,DDR4 内存带宽一般比 DDR3 内存带宽高,在内存密集型应用中可以提高性能。 内存使用率和缓存命中率: 内存使用率反映了内存资源的占用情况,缓存命中率则表示 CPU 从缓存中获取数据的成功率。高缓存命中率可以减少 CPU 访问内存的次数,提高性能。例如,在数据库服务器中,合理的缓存设置可以提高缓存命中率,从而加速数据查询。
5.2.3 存储性能指标
顺序读写速度和随机读写速度: 顺序读写是指按照数据在存储介质上的顺序进行读写操作,随机读写则是对存储介质上任意位置的数据进行读写。对于文件服务器,顺序读写速度很重要,而对于数据库服务器,随机读写速度更为关键。例如,固态硬盘(SSD)的顺序读写速度可以达到数 GB/s,随机读写速度也比机械硬盘(HDD)高很多。 存储延迟(I/O Latency): 指从发出存储读写请求到完成操作的时间间隔。较低的存储延迟意味着更快的存储响应,对于需要快速数据访问的应用(如实时交易系统)非常重要。
5.2.4 网络性能指标
网络带宽(Bandwidth): 指服务器网络接口能够传输数据的最大速率,单位通常是 Mbps 或 Gbps。例如,10Gbps 的网络带宽比 1Gbps 能够传输更多的数据。 网络延迟(Latency)和抖动(Jitter): 网络延迟是指数据从发送端到接收端所需的时间,抖动则是延迟的变化情况。在实时通信、在线游戏等对网络实时性要求高的应用中,低延迟和小抖动是关键性能指标。 网络吞吐量(Throughput): 指单位时间内通过网络传输的数据量,是衡量网络实际传输能力的指标。
5.3 性能测试工具
5.3.1 系统自带工具
Windows Server 性能监视器(Performance Monitor): 可以实时监控服务器的各种性能指标,如 CPU、内存、磁盘和网络等。它能够收集和记录性能数据,通过图表、报表等形式展示,方便管理员分析服务器性能。例如,可以用它来查看在用户登录高峰时段服务器的 CPU 利用率变化情况。 Linux 系统中的工具如 top、vmstat、iostat 等: top 命令可以实时显示系统中各个进程的资源占用情况,包括 CPU、内存等;vmstat 可以提供虚拟内存、磁盘 I/O、CPU 等系统整体运行情况的统计信息;iostat 主要用于监控磁盘 I/O 性能。这些工具对于在 Linux 服务器上进行性能监控和分析非常实用。
5.3.2 专业性能测试软件
SPEC CPU2017: 用于测试服务器 CPU 性能,通过运行一系列标准化的测试程序,得出 CPU 在不同类型计算任务下的性能得分,从而可以在不同服务器之间比较 CPU 性能。 IOmeter: 专门用于测试存储系统的性能,能够模拟不同的 I/O 负载,如顺序读写、随机读写等,测量存储设备的带宽、I/O 操作每秒次数(IOPS)等性能指标。 Netperf: 主要用于网络性能测试,可以测试网络带宽、延迟、吞吐量等指标。它通过在服务器和客户端之间建立测试连接,模拟不同的网络流量模式来进行测试。
5.4 性能测试的流程
5.4.1 测试计划制定
5.4.2 测试环境搭建
5.4.3 执行测试
5.4.4 数据分析与报告
6. 后记
服务器检讨规划能力和性能评估是一个硬件工程师必备的能力,也是计算机从业者(尤其是DBA等)都要熟悉的技能。
码字不易,宝贵经验分享不易,请各位支持原创,转载注明出处,多多关注作者,家人们的点赞和关注是我笔耕不辍的动力。
评论前必须登录!
注册