在数字化转型时代,云服务器成为企业 IT 基础设施的核心,其性能直接影响业务运行效率和用户体验。
面对众多云服务商提供的多样配置,如何选择合适的云服务器就变得尤为重要。
云服务器的性能测试对于识别潜在性能瓶颈,确保在高并发和海量数据处理等极端情况下系统的稳定性有重要意义。
测评的结果还帮助企业对优化 IT 支出,避免性能不足导致的业务中断有决策作用。因此,性能测评是选择合适云服务器并保障业务持续稳定发展的关键步骤。
通过本篇的性能测评,小鱼将量化 Flexus X 实例的云服务器在 CPU、内存、存储、网络等方面的表现。
测评方法
Flexus X 实例的规格
- CPU:4核
- 内存:12G
- 磁盘:100G
- 带宽:3M
- 系统:CentOS 7.4
CPU 性能测评
通过评估服务器的处理能力、线程支持、计算密集型任务的处理效率来衡量CPU性能。这一指标直接影响到应用程序的执行速度和多任务处理能力。
查看 Flexus X 实例的云服务器 CPU 参数信息,我们可以通过以下指令输出这些信息。
# CPU信息
cat /proc/cpuinfo
cpuinfo 中会包含 4 核的信息,会顺序输出所有处理器的信息。这里小鱼只截取了其中一个处理器的数据,如下图所示。
- Processor:表示处理器的编号。对于多核或多处理器系统,可以看到多个处理器的编号(从0开始),可以从最大值确认系统中有多少个逻辑处理器(CPU Core + Hyper-Threading)。这里表示第 0 个处理器
- Vendor ID:处理器制造商的标识。Flexus X 实例采用的是一个由Intel制造的CPU。
- CPU Family、Model 和 Stepping:这些字段标识处理器的特定家族、型号和步进版本。通过这些信息,可以进一步确认处理器的架构、制造工艺等。
- Model Name:处理器的具体型号,这包括处理器系列、核心数量、主频等关键信息。这里显示是通用处理器,可能是使用了虚拟化技术。
- CPU MHz:当前处理器的运行频率(单位为MHz)。这是实际的时钟速度,可能随着CPU的负载情况而变化,尤其在支持动态频率调节(如Intel的Turbo Boost)时。这是一个动态值,当前是 2.8GHz。
- Cache Size:CPU缓存的大小。缓存大小影响CPU处理数据的效率,大缓存通常意味着更好的性能,尤其是在处理频繁访问的数据时。这显示了CPU的三级缓存大小为58 MB,可以看到是一个较大的缓存。
- Physical ID 和 Core ID:
Physical ID
标识物理CPU的编号,Core ID
标识该物理CPU上的某个核心。 - Siblings 和 CPU Cores:
Siblings
表示一个物理处理器上总共可见的逻辑处理器数量(包括超线程在内),而CPU Cores
则表示物理核心数量。通过这些信息可以确定是否启用了超线程(Hyper-Threading)技术。Siblings
为 4,表示 4 个逻辑处理器,启用了超线程技术。并且该物理处理器具有2个物理核心。 - Flags:CPU支持的功能和指令集(例如
lm
表示64位支持,sse4_2
表示支持SSE4.2指令集)。这些标志位可以反映出CPU的功能特性,比如是否支持虚拟化(如vmx
表示Intel VT-x支持),或者是否支持高级加密标准(如aes
)。
Sysbench 测试多线程性能
- 安装Sysbench
sudo yum update sudo yum install sysbench
- 运行多线程 CPU 性能测试
sysbench cpu --threads=4 --cpu-max-prime=20000 run
--threads=<线程数>
:指定使用的线程数。例如,参数可以设置为 CPU 的逻辑处理器数量,以测试在满载情况下的性能。--cpu-max-prime=20000
:设置最大的素数计算范围,这个数值越大,测试时间越长,压力越大。可以根据需要调整这个参数。
- 分析
- Events per second:每秒事件处理数,表示 CPU 的处理速度。这个值越高,表示 CPU 性能越强。
- Total time:完成整个测试所需的总时间。
- Latency:延迟统计,包括最小值、平均值、最大值等。延迟越低,CPU 的响应能力越好。
- Threads fairness:线程公平性,展示各线程在处理事件时的均匀程度。标准差越小,表示负载在线程间分布越均匀。
内存性能测评
测量内存的吞吐量、访问延迟和缓存性能,以评估服务器在处理大量数据时的效率。内存性能对于数据库、数据分析等内存密集型应用尤为重要。
# 内存信息
cat /proc/meminfo
我们可以看到总内存 12G,空闲内存 10G。
存储性能测评
通过测试磁盘的读写速度、输入输出操作每秒(IOPS)和延迟来评估存储系统的效率。存储性能决定了数据读写和文件操作的速度,对于数据库和大规模数据存储有着关键影响。
# 硬盘信息
df -lh
- devtmpfs:设备虚拟文件系统,总空间为 5.8G。
- tmpfs(挂载在
/dev/shm
):另一个临时文件系统,总空间为 5.8G。 - tmpfs(挂载在
/run
):临时文件系统,总空间为 5.8G。 - tmpfs(挂载在
/sys/fs/cgroup
):临时文件系统,总空间为 5.8G。 - /dev/vda1:主存储分区,总空间为 99G,已使用 2.9G,可用 92G(已用 4%)。这是挂载在
/
的根文件系统。 - tmpfs(挂载在
/run/user/0
):临时文件系统,总空间为 1.2G。
dd
命令测试磁盘读写速度
# 大文件写入测试
dd if=/dev/zero of=test bs=1G count=1 oflag=direct
# 批量小文件写入测试
dd if=/dev/zero of=test bs=8k count=256k oflag=direct
测试结果大文件写入速度在 181MB/s,小文件批量写入速度在 20.6MB/s,由此可以看到即便是小文件写入也是超过 10M,对于部署网站是完全没有问题的。
网络性能测评
测评包括网络带宽、数据传输延迟、抖动等指标的数据,评估服务器在不同网络环境下的数据传输能力。网络性能对依赖实时数据传输的应用(如视频会议、在线游戏等)至关重要。
测试方法可以使用网络下载文件的方式,即通过 wget
方式进行下载,最后会计算下载的带宽。
wget http://cachefly.cachefly.net/100mb.test
或者使用 iperf
指令,在服务器端和客户端分别安装 iPerf 工具。
这里小鱼将本地的macbook 作为客户端,云服务器作为服务端进行测试。
在云服务端开启iperf,启用服务端。需要在安全组开放 5201 端口
# Flexus X实例
sudo yum install iperf3
iperf3 -s
在macbook
# macbook
brew install iperf3
iperf -c [ip]
这种方式测试受很多因素影响,可以作为一个参考值。
UnixBench 性能跑分测试
UnixBench 是一款知名的 Linux 性能评估工具,通过运行该工具的脚本,可以生成云耀云服务器 L 实例的性能分数,从而初步了解该实例的性能水平。
# 下载UnixBench脚本
wget http://www.CTOHome.com/linux-vps-pack/unixbench.sh
# 提升文件权限(可执行)
chmod +x unixbench.sh
# 运行脚本
./unixbench.sh
Flexus X实例的系统性能的各项测试得分综合值是 4838.4,得分还是挺高的,这也表示Flexus X 实例具有较好的性能表现。通常来说 UnixBench 在服务器上的跑分数值越高,其系统性能就越好。