CircleCIのリソース情報を軽く調べてみた #CircleCI

今年は懲りずにCircleCIネタを投下していこうと思います。

さて、CircleCIのコンテナ内で色々コマンド打ってマシンリソースを調べてみました。ちなみにCircleCIはAWS上で運用されており、起動するコンテナはLXCを利用した軽量コンテナです。

uname -r

Linux box212 3.14.22-031422-generic #201410150835 SMP Wed Oct 15 07:37:25 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Linux Kernel 3.14.22系。ちなみにbox212の部分は、毎度コンテナが起動する度に変わります。boxについてる識別子は、おそらくコンテナの識別子でしょうか。4桁は見たことがありません。

cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.5 LTS"

Dockerを利用できるってのもあってUbuntuです。

cat /proc/cpuinfo

あくまでコンテナのホストマシンのCPU情報。長いのでプロセッサ別情報は省略。

processor    : 0
vendor_id   : GenuineIntel
cpu family  : 6
model       : 62
model name  : Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz
stepping    : 4
microcode   : 0x415
cpu MHz     : 2494.046
cache size  : 25600 KB
physical id : 0
siblings    : 16
core id     : 0
cpu cores   : 8
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm xsaveopt fsgsbase smep erms
bogomips    : 4988.09
clflush size    : 64
cache_alignment : 64
address sizes   : 46 bits physical, 48 bits virtual
power management:

Intel® Xeon® CPU E5-2670の8コア

cat /proc/meminfo

続いてメモリ。こちらも長いので省略。

MemTotal:       251901420 kB
MemFree:        187777260 kB
MemAvailable:   238269736 kB
Buffers:           35404 kB
Cached:         48581248 kB
SwapCached:            0 kB
Active:         30464880 kB
Inactive:       28778924 kB
Active(anon):   10644784 kB
Inactive(anon):   118388 kB
Active(file):   19820096 kB
Inactive(file): 28660536 kB

240GBってとこでしょうか。

ディスクIO

EBSをマウントしてるっぽいんですが、ベンチかけるのはさすがに迷惑かけそうなんで自重・・・。

LXCリソース

LXCにマウントするリソースに制限が設定されているかを生成されたコンテナからどうやって調べられるかがちょっとわからない(ホストとれればわかるんだけどそれは無理)。

ホストで起動しているコンテナが1つであれば当然十分なパフォーマンスを発揮できるが、複数コンテナが稼働してビルドが走る状況だと性能が劣化することもあるでしょうね(1ホストあたりの同時稼働コンテナ数は不明ですが)。

ただ、メモリに関してはコンテナにおいて2GBを超えるとOOM Killerを引き起こす可能性があるとOOM Killer ranの項目に記載されている。

The reason for this is your builds run in a VM with 2GB of available RAM. If you go over that limit, Linux kills a process, somewhat arbitrarily.

ふむ。

まあこれだけリソースを備えているのであれば、ビルド環境としてもスクラップスクラップな検証環境としても十分ですよね。