从此页面我看到 t2 CPU 可以将频率提升至 3.3Ghz:https://aws.amazon.com/ec2/instance-types/。
这个AWS官方视频说t2 CPU可以比m4快60%:https://youtu.be/FkMslBsVYFU?t=447
然后我做了一个测试:
启动一个t2.micro实例(ubuntu 16.04),使用系统工作台让 CPU 一直以 100% 的速度运行。在此期间,我打开了另一个终端选项卡并重复命令grep MHz /proc/cpuinfo
,但结果始终是 2.4(我预期是 3.3)。我也在 m4 实例上进行了相同的 CPU 基准测试,运行时间与 t2 相同。
那么,如何让 t2 CPU 比 m4 CPU 运行速度快 60%?
答案1
首先,你永远不会在云/虚拟服务器上看到真实的MHz,因为主机操作系统的设计目的是仿真真正的硬件,而不是是硬件。
其次,您发布的图表是以 ECU 而不是 MHz 来计量的。
我做了额外的研究,结果如下。您可能知道,t2 实例具有突发能力,并且在突发期间,它们的 CPU 利用率超过 100%,但这可以在实际任务中测量,而不是以 MHz 为单位。
我运行了两个实例:t2.medium 和 c4.large,如视频的第一张截图所示。所有实例均使用相同的 Amazon Linux 2 LTS Candidate AMI 2017.12.0 (HVM)、SSD 卷类型 - ami-db1688a2 创建
为了创建负载我使用了https://github.com/phoronix-test-suite/phoronix-test-suite/:
yum install -y php php-cli php-common php-gd php-pdo php-process php-xml
mkdir tmp; cd tmp
wget http://phoronix-test-suite.com/releases/phoronix-test-suite-7.6.0.tar.gz
tar -xvf phoronix-test-suite-7.6.0.tar.gz
cd phoronix-test-suite
./phoronix-test-suite install pts/build-apache
./phoronix-test-suite batch-setup # (answers are no and no)
然后运行每个测试三次
./phoronix-test-suite batch-run pts/build-apache
并记录每次测试的平均值,如下所示:
结果如图所示,数据以秒为单位,越少越好:
增益约为 20%,比您的屏幕截图中显示的要少,但我们不知道 AWS 使用了哪些测试(我问过但他们没有回答),不过,正如您所见,t2.medium 比 c4.large 更快。
ps 我也运行了 bz2 解压缩测试:t2.medium 在那里速度较慢,可能是因为磁盘使用率更高(我使用了最便宜的磁盘选项)。