ARM環境まとめ
最近のARM(aarch64)周り
この1年で本番環境を全てarm64サーバーに切り替えたりDocker環境を作ったりしてarm64周りのナレッジが溜まってきた。
ハマり続けたメモ。思い出したら追記する
ブチ当たった問題の情報がネットに無い場合も多く、もしかしたらarm64周りを弄ってるエンジニアの中でもカッティングエッジに近い所まで来てるんじゃないかな・・・・
ビジネス環境
勢いがある。時間を先行投資する価値を感じる。
株主不安
SoftbankがARMの競合と目されているNVIDIAへ売却
AWS
Graviton2インスタンスが提供されており、intel CPUインスタンスより2割程安く、HWアクセラレータ周りも充実している
ElasticCache(Redis)
5%程割安で、しかし明らかに2倍くらい速度が遅い。
Redisは1CPUしか使わないので影響が出やすいのと、Speculative_executionの差なのか?
Apple
M1チップ搭載のMacが販売開始
Linux
amd64 / arm64
良く目検に失敗する・・・aarch64に統一してほしい・・・
Ubuntuパッケージ
ミラーサーバーがaarch64をサポートしていない場合がある
原因特定までメチャクチャ時間がかかる
Ubuntu 日本語環境
ubuntu-ja.listが使えない
Docker on Mac
ARM版のLinuxも一応動く
しかしカーネルエミュレータ周りの互換性がイマイチでそこかしこでエラーを吐く
遅い、固有の問題多すぎ。
互換性に問題のあるdockerコンテナなぞ価値なし!
Chrome
Chromeが提供されておらず、Chromiumを使うしかない
Ruby webdrivers
何も考えずx86_64のライブラリを引っ張ってきて起動でコケる
Feature specではOSにインストール済みのChromiumをバイナリを使う
JS karma
環境変数CHROME_BINにインストール済みのChromiumバイナリのパスを指定
JS puppeteer
launchのパラメータexecutablePathにインストール済みのChromiumバイナリのパスを指定
screen
化石エンジニア御用達の仮想コンソール
なぜかアタッチに分単位の時間がかかる
ElasticSearch
docker imageは7.8以降のみ対応
完全対応は7.13以降
大体、2020年6月以前のバージョンは非対応
7.13も起動が異常に遅い問題を確認している
rubyjs/libv8
https://github.com/rubyjs/libv8/issues/261
RailsでJS実行する際に必要だがビルド出来ない問題が2018年から放置
docker使って自前ビルドしたlibv8をvender/cacheに放り込ん動かす