通过上一篇文章华为云云耀云服务器 L 实例评测 |云服务器选购,我已经购买了一台 Centos 系统的云耀云服务器 L 实例。
在获得云耀云服务器 L 实例后,首要任务是熟悉云耀云服务器 L 实例的性能,对云耀云服务器 L 实例的性能进行测评,充分了解云耀云服务器 L 实例的性能状态,以便于针对业务部署模块进行调整,而不是立即对云耀云服务器 L 实例进行服务器配置、业务模块的环境部署、或部署安全防护软件和应用程序。
这类似于我们拿到一把斧头后,需要首先判断斧头是否锐利,熟悉工具的性能特点,才能在实际战斗中正确精准地运用,工欲善其事,必先利其器。
那么,我们在进行云耀云服务器 L 实例的性能测试时,应该重点关注哪些方面呢?
CPU 性能测评
- 查看 CPU 基础信息
观察云耀云服务器 L 实例 CPU 是几核的,这个在购买的时候基本就已经知道了,主要是观察 CPU 单核的频率。
cat /proc/cpuinfo
cat /proc/meminfo
df -lh
cat /proc/cpuinfo
是一个 Linux 命令,用于显示关于系统中每个 CPU 核心的详细信息。运行这个命令会输出一系列 CPU 信息,包括核心数、型号、速度、缓存大小等。
如上图,每个"processor"部分对应一个 CPU 核心的信息,可以看到我购买的云耀云服务器 L 实例拥有 2 个核心。
图中各个参数表示含义如下:
- processor:CPU 核心的编号,通常从 0 开始递增,每个核心都有一个唯一的编号。
- vendor_id:CPU 制造商的标识符,云耀云服务器 L 实例是 GenuineIntel,表示这是一颗由 Intel 制造的 CPU。
- cpu family:CPU 家族的标识符,云耀云服务器 L 实例是 6,表示属于 Intel 的第六代 CPU。
- model:CPU 型号的标识符,云耀云服务器 L 实例是 85。
- model name:CPU 的型号名称,通常包括制造商、系列和型号信息。在云耀云服务器 L 实例中被标识为"General Purpose Processor",通常这是虚拟机或模拟器中的通用 CPU 型号。
- stepping:CPU 的步进值,表示硅片的生产批次。
- microcode:CPU 微码版本,用于修复或改进 CPU 的功能。
- cpu MHz:CPU 的时钟频率,以 MHz 为单位。在云耀云服务器 L 实例中,频率为 2600.004 MHz,即 2.6 GHz。
- cache size:CPU 缓存大小,以 KB 为单位。云耀云服务器 L 实例是 36608 KB,表示 36 MB 的缓存。
- physical id:物理 CPU 的标识符,如果系统有多颗物理 CPU,这个值会有所不同。
- siblings:CPU 的兄弟核心数量,表示在同一物理 CPU 上有多少个逻辑核心。
- core id:核心的标识符,表示 CPU 内部的核心编号。
- cpu cores:CPU 的核心数量,通常是物理核心的数量,云耀云服务器 L 实例是 1。
- apicid:高级可编程中断控制器(APIC)的标识符,用于处理中断。
- fpu:浮点数处理单元的存在,云耀云服务器 L 实例是支持的。
- flags:CPU 的功能标志,包括支持的指令集和特性。这里列出了各种支持的指令集和功能,如 SSE、AVX 等。
- bogomips:用于估算 CPU 性能的 BogoMIPS 值,通常用于早期 Linux 内核的启动。
- clflush size:缓存行的大小,以字节为单位,云耀云服务器 L 实例是 64 字节。
- cache_alignment:缓存对齐的字节大小,通常与缓存行大小一致,云耀云服务器 L 实例也是 64 字节。
- address sizes:地址大小,包括物理地址和虚拟地址的位数。在云耀云服务器 L 实例中,物理地址有 42 位,虚拟地址有 48 位。
- power management:有关 CPU 的节能和电源管理特性的信息。
另一个核心数据是相同的,可以参考核心 0 的数据。
通过这些参数我们就可以初步知道 CPU 的整体性能了,主要参考model name、cpu MHz、cache size、bogomips、flags等字段。
对于云耀云服务器 L 实例 CPU 的型号和时钟频率,通常来说更高的时钟频率拥有更高的性能,同时型号也很重要,因为不同型号的 CPU 可能具有不同的架构和功能。对于缓存大小也同样影响着 CPU 性能,较大的缓存通常对性能有利,缓存可以加速数据访问。CPU 的核心数量和线程数代表着多任务处理的能力,通常多核心和多线程可以提高多任务处理性能。再一个是 CPU 的指令集支持,例如,SSE、AVX 和 AES-NI 等指令集对于特定类型的工作负载可以提供加速,如果在这方面有特殊要求的可以重点关注。最后一个是BogoMIPS参数,这只是一个估算值,不是一个准确的性能度量,但我们可以由这个数值对云耀云服务器 L 实例有一个大致的性能估计。通常较高的 BogoMIPS 值表示更高的性能。
cat /proc/meminfo
是一个 Linux 命令,用于显示系统内存的详细信息。
如上图,各个参数表示含义如下:
- MemTotal: 物理内存的总量,单位为千字节(KB)。在云耀云服务器 L 实例是 1881264 KB,约等于 1.88 GB。
- MemFree: 当前未被系统或进程使用的空闲内存,单位为 KB。在云耀云服务器 L 实例是 932748 KB,约等于 0.93 GB。
- MemAvailable: 当前可供系统使用的内存,考虑了缓存和缓冲区后的内存量,单位为 KB。在云耀云服务器 L 实例是 1582848 KB,约等于 1.58 GB。
- Buffers: 用于缓存块设备数据的内存量,单位为 KB。这些缓冲区用于提高磁盘 I/O 性能,云耀云服务器 L 实例是 122388 KB。
- Cached: 用于文件系统缓存的内存量,单位为 KB。这包括文件和目录的缓存,云耀云服务器 L 实例是 649488 KB。
- SwapCached: 已被交换到磁盘上的内存缓存,单位为 KB。在云耀云服务器 L 实例是 0 KB,表示没有交换缓存。
- Active: 当前正在使用的活动内存总量,包括正在使用的和可能被释放的内存,云耀云服务器 L 实例是 331728 KB。
- Inactive: 未被使用的内存总量,包括未被使用的和可能被重用的内存,云耀云服务器 L 实例是 513404 KB。
- Active(anon): 当前正在使用的匿名内存(不属于文件缓存)的总量,云耀云服务器 L 实例是 73500 KB。
- Inactive(anon): 未使用的匿名内存的总量,云耀云服务器 L 实例是 8456 KB。
- Active(file): 当前正在使用的文件缓存的总量,云耀云服务器 L 实例是 258228 KB。
- Inactive(file): 未使用的文件缓存的总量,云耀云服务器 L 实例是 504948 KB。
- Dirty: 已经修改但还没有写入磁盘的内存页的总数,单位为 KB,云耀云服务器 L 实例是 32 KB。
- AnonPages: 匿名内存页的总数,云耀云服务器 L 实例是 73276 KB。
- Mapped: 映射到进程地址空间的文件页的总数,云耀云服务器 L 实例是 43140 KB。
- Shmem: 共享内存的总量,云耀云服务器 L 实例是 8704 KB。
- Slab: 内核对象的分配缓存总量,云耀云服务器 L 实例是 52368 KB。
- SReclaimable: 可回收的 Slab 内存,表示可以被释放的内核对象,云耀云服务器 L 实例是 36164 KB。
- SUnreclaim: 不可回收的 Slab 内存,表示不会被释放的内核对象,云耀云服务器 L 实例是 16204 KB。
- KernelStack: 内核栈的总量,用于保存内核线程的信息,云耀云服务器 L 实例是 2144 KB。
- PageTables: 用于管理页表的内存总量,云耀云服务器 L 实例是 4744 KB。
- CommitLimit: 当前系统可以分配的内存总量的上限,单位为 KB,云耀云服务器 L 实例是 940632 KB。
- Committed_AS: 当前已分配但尚未使用的内存总量,单位为 KB,云耀云服务器 L 实例是 602984 KB。
- VmallocTotal: 虚拟内存总量,单位为 KB,云耀云服务器 L 实例是 34359738367 KB(约为 32 TB)。
- VmallocUsed: 已经分配的虚拟内存总量,单位为 KB,云耀云服务器 L 实例是 9272 KB。
- VmallocChunk: 最大可分配的虚拟内存块大小,单位为 KB,云耀云服务器 L 实例是 34359724540 KB(约为 32 TB)。
- Hugepagesize: 大页面的大小,单位为 KB,云耀云服务器 L 实例是 2048 KB。
- DirectMap4k: 用于映射 4KB 页的内存总量,单位为 KB,云耀云服务器 L 实例是 56832 KB。
- DirectMap2M: 用于映射 2MB 页的内存总量,单位为 KB,云耀云服务器 L 实例是 2039808 KB。
- DirectMap1G: 用于映射 1GB 页的内存总量,单位为 KB,云耀云服务器 L 实例是 0 KB(没有启用)。
df -lh
命令,用于显示文件系统磁盘空间的使用情况。
我购买的 40GB 系统盘的云耀云服务器 L 实例,可以由上图看到/dev/vda1
的文件系统,容量 40G,已使用 2.5G,可用 35G,已使用 7%,这个系统盘也是根文件系统,被挂载到/
目录。
系统盘 IO 性能测评
通过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
参数解释:
if=/dev/zero
: 这部分指定了输入文件(if
表示 “input file”),即 /dev/zero
,它是一个特殊的设备文件,提供无限多的零字节数据。
of=test
: 这部分指定了输出文件(of
表示 “output file”),即 “test”,它是要创建的目标文件的名称。
bs=1G
: 这部分指定了块大小(bs
表示 “block size”),即第一个命令每次写入的数据块大小为 1 GB,第二个命令每次写入 8 KB。
count=4k
: 这部分指定了写入数据块的数量(count
表示 “count”),第一个命令表示要写入 1 个数据块,因此总共将写入 1GB 的数据。第二个命令表示要写入 256,000 个数据块,因此总共将写入 256,000 x 8 KB = 2 GB 的数据。
oflag=direct
: 这部分设置了输出标志(oflag
表示 “output flags”),其中 direct
表示要直接写入磁盘,而不经过文件系统缓存。这可以用于测试磁盘的原始性能。
测试结果大文件写入速度在 115MB/秒,小文件批量写入速度在 15.3MB/秒,由此可以看到即便是小文件写入也是超过 10M,对于部署网站是完全没有问题的。
网络性能测评
测试方法是用云耀云服务器 L 实例下载远程文件,下载后会输出下载的网速,换算之后就可以得到带宽。
wget http://cachefly.cachefly.net/100mb.test
由上图可知道网速为 713KB/s,带宽为 713*8/1024=5.57Mbps。而我购买的云耀云服务器 L 实例带宽为 3Mbps,可以看到实测带宽是要超出购买云耀云服务器 L 实例的峰值带宽的,这不就是主打一个足量嘛。
测试具有局限性,未多次测试取平均值,仅供参考。
UnixBench 跑分
UnixBench 是一款知名的 Linux 性能评估工具,是一个 sh 脚本文件,运行脚本就可以生成的云耀云服务器 L 实例的性能分数,由此可以初步得知云耀云服务器 L 实例的性能水平。
wget http://www.CTOHome.com/linux-vps-pack/unixbench.sh
chmod +x unixbench.sh
./unixbench.sh
脚本会执行较长的时间。
云耀云服务器 L 实例的系统性能的各项测试得分综合值是 1899.6,得分较高,表示系统较好的性能。通常 UnixBench 跑分越高,表示更好的系统性能。