13 ms·
Is Arm ready for server dominance?
- MrBuddyCasino 7y ago"AWS, the biggest of the existing cloud providers released an Arm-based offering in 2018 and now in 2019 catapults that offering to a world-class spot. With results comparable to x86-based instances and AWS’s sure ability to offer a lower price due to well known attributes of the Arm-based servers like power efficiency, we consider the new M6g instances to be a game changer in a red-hot market ripe for change." I'm not sure how that conclusion follows from the numbers presented? Yes, the new ARM processor has become much faster than the older one, but clearly looses against x86 in cpu-heavy benchmarks. Might be a good option for I/O limited workloads, as the NVMe storage is newer and therefore faster.
- timthorn 7y agoThe A1 loses against the M5, but from my reading of the linked article the M6g matches the performance of an equivalent M5.
- aloknnikhil 7y agoThe benchmarks in the article are bottlenecked by I/O. Definitely better than A1, though.
- timthorn 7y agoAre you sure? The raw IO benchmarks presented in the article are higher in all dimensions for the M6g vs M5, so if IO was the bottleneck on the M5 I'd expect the M6g to move ahead.
- glommer 7y agoThey are not, they are all CPU-bound. Look at Figure4, that shows all CPUs at 100% utilization.
- aloknnikhil 7y agoExactly. In fact, I'm sure there will be newer x86 instances paired with the new NVMe storage and the advantage is lost. Perhaps, the power saved is translated to cheaper instances. But I don't think it's worth the performance penalty.
- PeterCorless 7y agoMuch of this depends on whether an app has true linearity in scale-out. If you can use horizontal scalability, you can get the same (or better) aggregate performance while, as you note, still reap savings both in power and dollars. Similar by analogy to how SSDs allowed you to get "good enough" performance for a database compared to all-RAM instances. You could still meet your SLAs and pocket the difference. It's a game changer in that way.
- glommer 7y agoAgree that the advantage on storage is no ARM-specific. It is what it is on AWS and we have shown that. But the whole point is that the Arm platform is doing great. The CPU comparisons matter more
- rwmj 7y agoCan you meaningfully benchmark stuff in the cloud? It seems to make any claims on price/performance you'd want to use two local servers dedicated to the benchmark, with as near identical hardware as possible (apart from the CPUs of course), and you'd want to know the full cost of both servers.
- jafingi 7y agoIf you run things in cloud it makes sense to benchmark that?
- rwmj 7y agoSure - you're benchmarking something a bit different from whether ARM is ready for "server dominance". You're essentially benchmarking Amazon's prices to early adopters of ARM vs the cutthroat x86 cloud marketplace. That may be interesting for many people but tells you little about ARM hardware.
- glommer 7y agoYou can't benchmark "server dominance". You can benchmark what you just described, plus piece other pieces of the puzzle together, like Nuvia Series-A, and then extrapolate from that. At the end it's still my opinion, I don't have a crystal ball =)
- timthorn 7y agoYou can benchmark using bare metal instances to eliminate noisy neighbours, and then you can meaningfully benchmark against other types of instance from the same cloud provider to get a relative cost benefit. I'd agree that obtaining the cost benefit in terms of on prem hardware is a much more involved calculation.
- iagovar 7y agoI tried ARM servers in Scaleway and honestly, unless your profile is sort of a sysadmin or you're motivated, it's just dealing with some issues and less power overall. Also, AFAIR they were around the same price of X86 instances. But then again, I have almost no sysadmin skills, so maybe it was my lack of knowledge.
- bisby 7y agoMy experience with ARM (locally anyway, raspberry pi's and pinebooks) is that everything works great, if it works. ARM binaries available? Great. You're all set. (hopefully its for the right generation of ARM though, I can't get SteamLink software to run on my pinebook because it does raspberry pi hardware version checks that obviously fail). Not available? You're gonna run into one of two scenarios: Closed source app? Sorry. Just never going to get it (unless you want to run it through qemu at a huge performance hit and YMMV). Open source app? Compile it yourself! Which takes noticeably longer than x86 for me. Maybe in server this works out. For desktop, compiling st myself was actually the path of least resistance to getting a terminal I liked. I wouldn't have wanted to compile firefox on ARM though without some serious server horsepower. When I used to build docker images they would sometimes take hours, for things that were less than a minute on x86.
- PeterCorless 7y agoIn the cloud, we believe forward-thinking application developers will have little problem porting their software to support their users on the new chipset. That is definitely more of an issue for on-prem or private use, though.
- Const-me 7y agoCompiling my C++ code on ARM on a daily basis, and here it’s OK. In my case the bottleneck was storage. I’ve solved by building on a mounted network share located on a fast SSD on a windows PC. Gigabit LAN + desktop-grade SSD are much faster than eMMC of my target device.
- qxnqd 7y ago>Open source app? Compile it yourself! Which takes noticeably longer than x86 for me. Heh, it's funny, right? I switched from an x86 server to an arm server and now it takes seconds and seconds to log me in using ssh. It's like the server really struggles when crunching numbers.
- deleted 7y ago[deleted]
- tombert 7y agoI don't know much about the cloud hosting for ARM stuff (since I don't work in that space), but I have been extremely happy with my ARM home-server setup in my basement. Docker swarm has been extremely nice on my ODroids, and I recently upgraded to the Nvidia Jetson Nano, which has perfectly fine Kubernetes support. I'll admit that maybe I'm not doing the most elaborate stress tests, but I mostly use them for my video transcoding and my (very) recent interest in machine learning, and I haven't had much issue. The thing that's given me the biggest headache is older versions of Ubuntu's mediocre support of ZFS, which has largely been fixed.
- syntheticnature 7y agoI've been thinking about moving my home server to an ARM-based setup to reduce power consumption/fan noise. My situation is closer to 'glorified NAS' that runs a few additional oddball things, though. Are you just using USB 3.0 to SATA in the cases where such is needed?
- tombert 7y agoYep! My setup is a bit weird now; I have some cases that holster the drives [0], with a low-wattage ATX power supply that exists solely to power the drives. I a bunch of sata male-to-female cables on the case [1], and then a bunch of USB3 to SATA adapters plugged into a couple USB3 hubs into my leader Jetson. I have ZFS On Linux set up on there, and have an NFS share set up on the ZFS mount. I use Kubernetes to distribute my projects across the cluster, and use NFS for any kind of shared data. It works way better than one might think. [0] https://www.ebay.com/itm/4-Bay-USB3-0-2-5-HDD-SATA-Hard-Drive-Dock-Docking-Station-For-9-5-12-5mm/264295176258?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649 https://www.ebay.com/itm/4-Bay-USB3-0-2-5-HDD-SATA-Hard-Driv... [1] https://www.ebay.com/itm/HDD-SATA-Male-to-SATA-Female-cables-Converter-for-PC-Esata-Hard-Disk-Accessories/143272417945?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2057872.m2749.l2649 https://www.ebay.com/itm/HDD-SATA-Male-to-SATA-Female-cables... EDIT: Just a note, if you decide for some reason to copy my design, I'm flattered; make sure you either get an ATX power supply that's extremely low wattage or is smart enough to lower the wattage based on load. I made the mistake of taking a power supply out of an old gaming rig the first time I did this, and it ended up consistently using 600W all the time, leading to a hefty power bill one month. I was able to find a power supply that peaked at 200W on ebay for ten bucks, and seems to idle at around 50W, which is much more manageable.
- walrus01 7y agoMy concern about this is that with the failure of Qualcomm Centriq, there is no industry standard/affordable/easy to buy ARM based server platform ordinary persons and small/medium sized businesses can acquire. It's great that Amazon has ARM based stuff, but it's something proprietary they're purchasing in large quantities from a manufacturer they have a very close relationship with. Undoubtedly the physical hypervisor platform and motherboard these things are running on is something totally bespoke and designed to Amazon's unique requirements. I can't pull out my visa card and go buy a (atx, microatx, mini-itx) format motherboard for an ARM CPU, the CPU itself, RAM, etc, and build a system to run debian, centos, RHEL, ubuntu whatever on. This means that, sure, you can get an EC2 ARM based server, but it's something you can't physically own and you'll be paying cloud based service rates forever if you want to keep running it. There are some categories of business and government entities where not having things on-premises, or fully owning and controlling the hypervisor all the way down to the bare metal, is a non starter. If the ARM platform Amazon is buying becomes truly price/performance competitive with a single/dual socket xeon or threadripper/epyc, it also gives a possible competitive advantage to Amazon over any medium-sized cloud based VM provider out there currently selling (xen, kvm) based VMs on x86-64 hypervisors. Based on what's available on the market right now I see no signs of there being a viable hardware-purchasing alternative to Intel or AMD based motherboards and CPUs.
- rjsw 7y agoFor AArch64, there is this [1]. [1] https://www.solid-run.com/nxp-lx2160a-family/honeycomb-workstation/ https://www.solid-run.com/nxp-lx2160a-family/honeycomb-works...
- walrus01 7y agoThat thing is $750 and probably performs much worse than a two year old Ryzen 1500X ($159 at the time) on a $105 motherboard. Nevermind a new Ryzen 3500 which is $194.
- sudosysgen 7y agoAnd probably close to an order of magnitude worse.
- techie128 7y agoComparing EBS backed instance performance with an NVME backed x86 is plain wrong. I agree with the rest of the benchmark though.
- glommer 7y agoThat comparison was never done. All CPU tests are on EBS backed instances, and in the end the I/O subsystem is compared in isolation for NVMe-backed instances in both cases.
- RcouF1uZ4gsC 7y agoI think one of the big issues may be with high performance multi-threaded code. x86(I am including x64 in this designation) is a lot stronger memory model than ARM. This has two implications. First, x86 is a lot more tolerant of data races, and missing explicit memory fences. When you port server applications that have been running well on x86 to ARM, you may be in for some surprises as data races and missing fences now manifest as data corruption. The other implication is that on x86, the gap between a sequentially consistent memory order and a relaxed memory order is not that great. Thus, many programmers may use atomics with sequentially consistent memory order to reduce the complexity. On x86, this will generally yield decent performance. On ARM, that gap is much bigger and you are liable to have severe performance regressions.
- dman 7y agoOne upside of code increasingly being written in languages that are predominantly single threaded like Python/JS is that these issues do not matter as much.
- anonuser123456 7y agoIf you want to exploit parallel execution for performance, not having parallelism is not a benefit.
- PeterCorless 7y agoWe do parallelism across CPUs and nodes. We run single-threaded to get the most out of a CPU in a shared-nothing architecture. Many single-threaded apps aren't written to really take advantage of all a CPU has to offer. But there are also prices to pay to run multi-threaded; context switches, etc.
- wongarsu 7y agoNot having (thread-level) parallelism encourages designs with small, well defined interfaces where data crosses threads. In a typical NodeJS server setup with one load balancer and a number of node processes that don't know about each other you will experience fewer concurrency bugs and care less about NUMA than in the equivalent ASP.NET app (requests scheduled onto a thread pool, code can share resources at will). Of course sometimes "small interface" isn't really viable from a performance standpoint and you want a well-engineered multicore application with lots of shared data, and you just can't do that with JS or Python (or at least it's very hard). That's a good reason to choose a different language.
- birdyrooster 7y agoAt Kubecon this year, there were three different vendors doing ARM based storage. Two were capable with NVMe and one only with SATA/SAS. I am sure the answer to the article's title question is a no for right now, but in terms of disaggregated storage, I think the answer is yes!
- magriz 7y agoARM has recently made some real progress into HPC. HPE is delivering ARM clusters in Europe. Fujitsu has developed a "optimised" ARM CPU with SVE and it will power Japans exascale HPC system[1]. [1]https://en.wikipedia.org/wiki/Fugaku_(supercomputer) https://en.wikipedia.org/wiki/Fugaku_(supercomputer)
- petschge 7y agoAnd Cray will happily sell you an XC50 with Arm cores inside if you want that.
- ryuukk_ 7y agono, Java, C#, Node aren't ready for ARM therefore all this bullshit is just insider trading, people want to make money off retarded people
- PeterCorless 7y agoAn important update has been made to the microbenchmarks to this page. I will quote for you my editorial comment: "Editor’s Note: The microbenchmarks in this article have been updated to reflect the fact that running a single instance of stress-ng would skew the results in favor of the x86 platforms, since in SMT architectures a single thread may not be enough to use all resources available in the physical core. Thanks to our readers for bringing this to our attention." You'll note that the newly-used stress-ng command is: "stress-ng --metrics-brief --cache 16 --icache 16 --matrix 16 --cpu 16 --memcpy 16 --qsort 16 --dentry 16 --timer 16 -t 1m" The count on the flags under the old numbers was 1. This update shows even better numbers for Arm than we originally produced. Thanks to our assiduous readers for pointing this out. https://www.scylladb.com/2019/12/05/is-arm-ready-for-server-dominance/ https://www.scylladb.com/2019/12/05/is-arm-ready-for-server-...
- bob1029 7y agoI don't think quite yet. As others have noted, porting x86 apps to ARM can be fraught with issues concerning memory models and concurrency. Especially apps written using unmanaged languages. Newer apps written in things like .NET Core (especially if you can keep any native dependencies out of the equation) are probably going to be a lot easier to port when the time is right. I think we'd have to be at a point where the ARM server is <50% the cost of the x86 server while offering equivalent real-world performance to make the jump worth it for the average shop. You'd also have to have a very accessible ecosystem of reliable ARM machines that developers could purchase and hack on. There are many businesses that will happily incinerate millions of dollars to keep x86 around just because changing things is frowned upon or otherwise scary. For some applications ARM is today and it's an excellent approach. But, for most it's still somewhere on the horizon.
- emmanueloga_ 7y agoQuestion for Common Lisp hackers: I'm curious how good is the quality of the most popular CL compilers on ARM. The table of support for ARM of sbcl [1] and ccl [2] shows only Linux is supported on ARM (versus all sorts of OSs for x86/AMD64). I imagine the Intel targets of these compilers are a lot more widely used and hence had had more opportunities for bug ridding. [1]: http://www.sbcl.org/platform-table.html http://www.sbcl.org/platform-table.html [2]: https://ccl.clozure.com/ https://ccl.clozure.com/
- aidenn0 7y agoARM64 Linux on sbcl is okay, and steadily improving. IIRC there's a port to one of the BSDs (Free?) that is almost done. Obviously there's no ARM64 windows or solaris port in the works.
- mugsie 7y agoThere is a port of windows already out and running on arm - MS even released a laptop running it ... https://www.microsoft.com/en-us/p/surface-pro-x/8vdnrp2m6hhc?activetab=overview https://www.microsoft.com/en-us/p/surface-pro-x/8vdnrp2m6hhc...
- aidenn0 7y agoI guarantee you no SBCL devs have one of those.
- microcolonel 7y agoI bought an AArch64 desktop board based on one of the newer NXP manycore CPUs, because it seems to be the first of its kind. Every SoC vendor should sell an mATX or Mini-ITX board compatible with PC components, if they want server adoption. That goes especially for any vendor facing the even harder uphill battle of bringing RISC-V to servers: the server was dominated by PC clones for a reason.
- contingencies 7y agoIf you want to acquire large numbers of ARM boards for servers, our neighbours in Zhongshan are Firefly. They make a cluster server capable of 11 x their own RK3399 6 core 64-bit 'core boards', so 66 cores in total. It's cheap. http://shop.t-firefly.com/goods.php?id=111 http://shop.t-firefly.com/goods.php?id=111
- pnako 7y agoYes. ARM and MSP430 will surely dominate servers anytime soon.
- Tepix 7y agoI'd like to see cheap ARM server hardware for small servers available for purchase. Something relatively low power (also power efficient) that can replace an entry-level Intel Atom server like those offered by Kimsufi (OVH) and Online.net. The Raspberry Pi 4 with 4GB RAM is getting close in terms of performance but it lacks some things I'd like to see in a server, i.e. at least two SATA or NVME ports and two LAN ports.
- 8fingerlouie 7y agoDepending on your preferences, the Helios4 might do the trick (https://kobol.io/helios4/ https://kobol.io/helios4/). Only 2GB RAM, but 4 SATA ports. Otherwise, Hardkernel.com might have something in their Odroid lineup you might like.
- Tepix 7y agoIt lacks a second LAN port but I guess you could use USB 3.0 for that. But the CPU with its Dual Core Cortex A9 (2011) is probably really slow.
- luord 7y agoThe fact that ARM is written as Arm really threw me for a loop here. At first, I thought they were talking about a new programming language or something.