我正在使用 Jenkins 在 Google Kubernetes Engine (GKE) 上构建我的 Angular 应用程序。有一次我注意到在 GKE 上构建所花的时间比在我旧的(私有)环境中花费的时间要长得多,所以我开始进行一些测试。在所有情况下,在 GCE 上构建所花的时间都是原来的两倍。另一方面,AWS 的时间与我旧的私有环境的时间相差只有几个百分点,所以我用它进行比较。
我慢慢地删除了所有层(Jenkins、Kubernetes 等...),并一直得到相同的结果。为了进行比较,在GCE 上的实例和 AWS 上的实例上直接n1-standard-1
运行构建时, 我得到了以下结果:n1-highcpu-4
t2-medium
Instance | vCPUs | Mem | Duration | Cost/Build
------------------+-------+------+----------+-----------
GCE:n1-standard-1 | 1 | 3.7G | 610642ms | $0.0089
GCE:n1-highcpu-4 | 4 | 3.6G | 472999ms | $0.018
AWS:t2-medium | 2 | 4.0G | 373039ms | $0.0051
我知道 GCE 中的一个 vCPU 由一个超线程支持,但从上表可以看出,在 GCE 中,构建时间更长,我支付的费用也更多。尽管使用 ,n1-highcpu-4
我为 vCPU 支付的费用比 高得多t2-medium
,但运行相同工作负载仍需要更长的时间。
我是否遗漏了 Google 针对这种 CPU 密集型工作负载进行优化的机器类型?还有其他人在 GCE/GKE 上运行构建吗?