
x86_64
インスタンスが実行されていると仮定すると、そのインスタンスで何を実行して、それが重力ベース/ARM であるかどうかを検出できますか?
考えてみたのですが、この場合役に立つものは何も見つかりませんでした。また、インスタンス タイプ (例: vs )curl -s http://169.254.169.254/latest/meta-data/...
を使用して検出することも可能ですが、もっと簡単な方法が欲しいです。t4g.*
t3.*
何かありますか?
答え1
素早く簡単なチェック:uname -m
インテル/AMD:
t3a.large:~ $ uname -m
x86_64
グラビトン / ARM:
t4g.large:~ $ uname -m
aarch64
詳細を表示:lscpu
たとえば、AMD CPU の場合:
t3a.large:~ $ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 48 bits physical, 48 bits virtual
CPU(s): 2
On-line CPU(s) list: 0,1
Thread(s) per core: 2
Core(s) per socket: 1
Socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 23
Model name: AMD EPYC 7571
CPU MHz: 2199.880
BogoMIPS: 4399.76
Hypervisor vendor: KVM
Virtualization type: full
L1d cache: 32 KiB
L1i cache: 64 KiB
L2 cache: 512 KiB
L3 cache: 8 MiB
NUMA node0 CPU(s): 0,1
...
スクリプトで簡単に使用できるように、出力を JSON 形式で表示することもできます (ここでは Graviton の場合)。
t4g.large:~ $ lscpu -J
{
"lscpu": [
{"field":"Architecture:", "data":"aarch64"},
{"field":"CPU op-mode(s):", "data":"32-bit, 64-bit"},
{"field":"Byte Order:", "data":"Little Endian"},
{"field":"CPU(s):", "data":"2"},
{"field":"On-line CPU(s) list:", "data":"0,1"},
{"field":"Thread(s) per core:", "data":"1"},
{"field":"Core(s) per socket:", "data":"2"},
{"field":"Vendor ID:", "data":"ARM"},
{"field":"Model name:", "data":"Neoverse-N1"},
...
]
}
お役に立てれば幸いです :)