Kibana: Investigate developer experience on ARM based Apple devices

Created on 10 Nov 2020  路  8Comments  路  Source: elastic/kibana

Today Apple announced the first devices in its lineup, including the Macbook Pro, to receive ARM-based processors. While it's an exciting time for many to upgrade, we ask that anyone relying on this device for Kibana development hold off for the time being.

Once we receive a device we will report here on the developer experience.

Operations

Most helpful comment

M1 Macs seem to only be able to run 1 external monitor through Thunderbolt ports. Mac Mini can run two external monitors but it's the exception (and still is the same total number of monitors compared to laptops): one over Thunderbolt and another over HDMI.

https://appleinsider.com/articles/20/11/11/how-apple-silicon-on-a-m1-mac-changes-monitor-support-and-what-you-can-connect

All 8 comments

Pinging @elastic/kibana-operations (Team:Operations)

++
Anandtech is enthusiastic, based on how the A14 is already very performance competitive with Intel processors.
M1 should be thermally constrained to a much lower degree, and should have architectural improvements over the already impressive A14.
Plus its way superior performance per watt should inspire increasing use of ARM in the data centers.
Meanwhile Intel is losing benchmarks to AMD, due to lagging in fab process, likely an issue for the next 1-3 years.

Just got my Mac Mini, going to start recording some metrics and compare them to the macs I have around. Let me know what metrics you want to see?

Let me know what metrics you want to see?

Can you provide metrics for typescript type check?

node scripts/type_check --project=x-pack/tsconfig.json
node scripts/type_check --project=tsconfig.json

More so than specific metrics, I'm more interested in the ease of just getting to work. Notes like homebrew and node support are the most helpful in understanding on whether or not this is something that is actually worth it for me.

I haven't really dug into this much yet but if you know of anything else that might have rocky support, getting that outlined would be awesome.

Notes from an afternoon with the M1 Mac Mini:

  • homebrew doesn't support ARM yet so I needed to run terminal in Rosetta (told finder to launch terminal.app in Rosetta via "Get Info" pane)
  • node isn't published for darwin-arm64 yet, but since I installed an x86 version of bash via homebrew nvm installed the darwin-x64 version of node and everything was great
  • Docker doesn't work on the M1 at all yet, we don't rely on it for any core components but there are some fleet tests that do use it
  • Running the entire dev setup via Rosetta doesn't seem to cause any issues
  • Biggest issue I expect will be the lack of support for dual external displays and fewer USB4/USB-C ports
  • Overall, performance for standard development seems totally comparable to the MacBook I have, though I'm interested how the latest 16" model performs these tasks.
  • The Mac Mini doesn't have the same thermal limits as the MacBook Air, but should have similar thermal performance as the MacBook Pro based on other benchmarks

All tests were run on commit 31014bfc9aa7df1ad71803d2be6bf23232fcbb02
Mac Mini: M1, 16GB, 1TB model, all code running under Rosetta 2 for now
MacBook Pro: 2019 15", 32GB, 2.4Ghz 8-Core i9
iMac Pro: 2017, 64GB, 3 GHz 10-Core Intel Xeon W

| task | Mac Mini | MacBook Pro | iMac Pro |
| --- | --- | --- | --- |
| yarn kbn bootstrap without a yarn cache | 222s | 284s | 236s |
| yarn kbn clean | 6s | 11s | 14s |
| yarn kbn bootstrap with yarn cache | 206s | 185s | 186s |
| node scripts/build_kibana_platform_plugins | 170s (4 workers) | 175s (8 workers) | 105s (10 workers) |
| yarn start -> login page loaded | 210s | 200s | 129s |
| node scripts/jest | 300s | 226s | 162s |
| node scripts/type_check --project=tsconfig.json | first run: 16m40s, second: 14s | first run: 22m10s, second: 9s | first run: 20m44s, second: 11s |
| node scripts/type_check --project=x-pack/tsconfig.json | 2m15s | 2m23s | 2m14s |

Biggest issue I expect will be the lack of support for dual external displays

Could you elaborate on that?

M1 Macs seem to only be able to run 1 external monitor through Thunderbolt ports. Mac Mini can run two external monitors but it's the exception (and still is the same total number of monitors compared to laptops): one over Thunderbolt and another over HDMI.

https://appleinsider.com/articles/20/11/11/how-apple-silicon-on-a-m1-mac-changes-monitor-support-and-what-you-can-connect

Was this page helpful?
0 / 5 - 0 ratings

Related issues

bradvido picture bradvido  路  3Comments

tbragin picture tbragin  路  3Comments

stacey-gammon picture stacey-gammon  路  3Comments

LukeMathWalker picture LukeMathWalker  路  3Comments

ctindel picture ctindel  路  3Comments