GitHub-hosted larger runners の CPU モデルを調べてみた

Posted on

GitHub Actions で実行しているとあるテストに時間がかかるようになってきました。そのテストはマシンパワーを必要とするので、テストのカバレッジが上がるほど時間がかかる状態でした。

そこで今年 6 月に GA した GitHub-hosted larger runners を試してみることにしました。

larger runners を有効にすれば最大 64 vCPUs で実行することができるため、マルチコアを活かせるテストは並列度を上げることができます。

料金は単純明快で、vCPUs が倍になると料金も倍になります(以下は Linux の場合)。もし vCPUs を倍にして時間が半分になるのであれば、必要なコストは同じになります。

vCPUs Per-minute rate
2 $0.008
4 $0.016
8 $0.032
16 $0.064
32 $0.128
64 $0.256

GitHub-hosted larger runners は CPU モデルが違う

larger runners で何度かテストを実行したところ、マルチコアを使えるように調整せずとも速くなっていることに気が付きました(standard runners の 2 vCPUs で並列度を上げると不安定になるので、明示的に 1 並列で実行するようにしていました)。

気になったので次のようなワークフローで 2 vCPUs 〜 64 vCPUs の /proc/cpuinfo を確認してみました。

name: Check cpuinfo

on: push

jobs:
  ubuntu-latest:
    runs-on: ubuntu-latest
    steps:
      - run: cat /proc/cpuinfo

  ubuntu-latest-4core:
    runs-on: ubuntu-latest-4core
    steps:
      - run: cat /proc/cpuinfo

  ubuntu-latest-8core:
    runs-on: ubuntu-latest-8core
    steps:
      - run: cat /proc/cpuinfo

  ubuntu-latest-16core:
    runs-on: ubuntu-latest-16core
    steps:
      - run: cat /proc/cpuinfo

  ubuntu-latest-32core:
    runs-on: ubuntu-latest-32core
    steps:
      - run: cat /proc/cpuinfo

  ubuntu-latest-64core:
    runs-on: ubuntu-latest-64core
    steps:
      - run: cat /proc/cpuinfo

結果は次のとおりです。 2 vCPUs の standard runners は Intel Xeon プロセッサ、4 vCPUs 以上の larger runners は AMD EPYC プロセッサが使われていました。

vCPUs CPU model
2 Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
4 AMD EPYC 7763 64-Core Processor
8 AMD EPYC 7763 64-Core Processor
16 AMD EPYC 7763 64-Core Processor
32 AMD EPYC 7763 64-Core Processor
64 AMD EPYC 7763 64-Core Processor

Public IP から推測すると、GitHub Actions はおそらく Azure VM で動いているはずです(GitHub は 2018 年に Microsoft に買収されていますし)。

Azure VM には上記の CPU を採用したシリーズは複数ありますが、CPU の性能(特に 1 コアあたりの性能)が向上していることは間違いなさそうです。仮に D シリーズだとすると、v4 と v5 の違いがありそうです。

Dv4 および Ddv4 仮想マシンは、カスタム Intel® Xeon® Platinum 8272CL プロセッサに基づいています。

Dasv5 および Dadsv5 シリーズの仮想マシンは、第 3 世代の AMD EPYC™ 7763v (Premium) プロセッサに基づいています。

AMD EPYC 7763 は物理コア数が 64 なので、Azuru VM で新しい世代がリリースされない限りは 64 vCPUs 以上の larger runners は登場しないと思われます。

まとめ

上にも書いたとおり vCPUs と料金は比例する関係にあるので、マルチコアを使ってテストを並列化できる場合は larger runners を使ったほうがコストメリットがありそうです。

ただし、 larger runners はプランに含まれる無料分には含まれないので注意してください(たとえば Team プランだと 3,000 minutes/month の無料枠が付いていますが、larger runners はここには含まれません)。

Popular Entries

Recent Entries