ARM server market
perspectives.mvdirona.com
perspectives.mvdirona.com
I'd love to see more diversity in the server space, but reality is harsh.
I've been able to scale my scraping to over almost 100 requests per second in aggregate across 1.8MM domains. And these little Atom quad core machines are great.
I just got my account upgraded to "developer" which mean I can spin up 100 machine (400 cores!), so I'm going to be experimenting with that.
Also, we cannot forget POWER is very good with single threaded performance.
I assume these server-class ARM systems are better?
https://www.arm.com/about/newsroom/arm-ecosystem-collaborate...
No more random fork of uboot, proprietary boot method and guess-the-device-tree. Instead you get the goodness(?) of UEFI, ACPI and standard minimum hardware.
However it's unlikely you'll find a small format SBSA-compliant board any time soon, because the server stack simply assumes a lot more RAM than is available on phone/tablet SoCs. For example, the minimum RAM required to run RHEL/aarch64 is 1 GB/pCPU (so in reality 4-8GB min), and even the Snapdragon 808 only has 3 GB. I personally wouldn't be happy doing development work for 64 bit ARM SBSA with less than 8 GB of RAM, and for OpenStack, 32 GB is the minimum I'd recommend.
(I do run Fedora/aarch64 on my LG G4 phone though :-)
In cloud deployments, though, sharing a bigger box amongst lots of virtual machines just seems way more economical.
And even for smaller purposes, x86 SoCs are getting good, like PCEngines' 6-12W APU boards that serve nicely as routers/firewalls.
For many other chores, I'm not sure if it makes as much sense... but that's juse my $.02 on the issue. I still think it's a pretty cool option, but not sure how well it works for a lot of different areas.
So where does ARM's Server Chip actually offer an Advantage?
Price - The CPU is only part of the Server's Cost. When you look at the whole picture, The Memory, I/O Controller & SSD, Network, will all cost the same. The higher price of the memory and SSD / HDD, the lower total cost % of the CPU. And once you lowered to a certain percentage, you want an incredibly cheap, Atom Server CPU is available for less then $50.
Performance - Even in the chance that any ARM's Server CPU market manage to make a competitive CPU core against Xeon, which in itself is an incredible achievement, they will have to also compete against Intel's world class ECC Memory Controller, Network Controller, and I/O controller. All three are the main reason AMD CPU didn't offer any competition even when they are much cheaper.
Power - This is similar to Price, once you factor in the memory and I/O, CPU's role is relatively small. And the power / energy usage scenario on a server much flavor Intel's rather then ARM.
So where does it offer a advantage? When you want a small baremetal server that is cheap, but in the world where VM is a common place, there is no reason why you cant have a small instance of it running on a much larger CPU. And even Intel admit it, none of their Server Customers, ( Read NONE ) wanted the Atom as they thought. It turns out everyone wanted Xeon-D, you pay a little premium for HUGE amount of flexibility. Intel wanted the Atom to disrupt itself rather then ARM, and it turns out it was the Xeon-D that did that.
https://www.digitalocean.com/pricing/ https://www.scaleway.com/pricing/
A DO instance with the same amount of memory costs $20, compared to €2 for an IP-less server on Scacleway.
They have stated in multiple pages that they plan to meter bandwidth.
Imagine how fast Cassandra or something similar could run if your filtering nodes ran with the data, and much more widely distributed than typical... it could literally be a night and day difference in the amount of data that can be processed in a rack.
Are these servers running virtualized instances? Are they much cheaper as far as $/request or watt/request (or other efficiency metric? How do they compare to a slice of an Intel server, which has the benefit of a more mature environment?
That's enabled people to cram significantly more processing cores into a server rack. 4 years ago HP release a server line with 288 quad-core ARM processors in 4U, for a total of 1152 cores. Obviously that introduces the complexity of needing code that is suited to massive parallelism. Each processor there took up just 1.5 watts idle, 5 watts under load. By comparison the Atom from Intel at the time had comparable performance, but consumed 8.5 watts, just over 70% more, and didn't idle to as low consumption.
There are a number of problems that are significant with large scale data-centre operations, but power consumption and heat generation are way up there at the top. In theory a data-centre filled with ARM based servers would give you comparable performance, but with cheaper electrical and climate control bills.
The emphasis there is on "in theory" :) The reality at the moment is that companies have spent years trying to get ARM based, massive core count servers to be a thing, and it hasn't really worked out. Switching processor architectures is never something that can be done lightly. Software has to be compiled and supported provided for it, and isn't necessarily tuned for the ARM architecture. The x86 architecture's performance characteristics have been really well understood, and software likely designed with those characteristics in mind.
Historically ARM has also lacked Windows server support, and had very variable quality linux support (not helped by every Tom, Dick and Harry SoC company do the darnedest things in pursuit of creating 'value'.) As far as I've heard, they've since done (or started on?) a huge restructuring of the ARM path in the kernel to clean up the mess and provide significantly better customisation opportunities.
In part it has also seemed like a case of "no one ever got fired for buying IBM". You've only got a certain budget, do you gamble on an unproven (to you) architecture, or stick the the tried and tested Intel?
i_have_to_speak : Current ARM server chips are much worse than Intel chips on the performance/watt metric.
It's hard to square these two statements. It might depend on how you define "efficiency". If efficiency is the amount of energy to perform a calculation, I don't think ARM is more efficient. This paper from a couple years ago concludes that ISA is no longer a defining factor: http://www.embedded.com/design/connectivity/4436593/Analysis...
Separately, this is an excellent article comparing recent generations of Intel against each other, showing that although power use has been going up, "instructions per cycle" has been going up even faster, resulting in a net improvement in energy efficiency: http://kentcz.com/downloads/P149-ISCA14-Preprint.pdf
Modern Intel processors can shut down unneeded cores almost completely, and frequency scaling gives you another range of efficient power reduction. It's only when you get lower than that that you are losing significant power at 'idle'.
Unlike a small battery powered device, I'd guess that the difference in idle power for the CPU is never going to be the deciding factor, as keeping the non-CPU rest-of-the-machine running will dwarf the difference. What workload would you envision as having the greatest advantage? Maybe if you were running a single instance per dedicated core?
If my server farm is idle any significant amount, I'm going to take those servers offline. If I need capacity, I'll spin up some cloud instances in the short term, and I'll bring my own servers online until I'm at an appropriate idle/busy metric.
I suspect that the days of 99% idle servers are long gone. I suspect that utilization is probably above 70%.
There are 2, maybe 3 interesting markets that will come to dominate computing even more than they already do in the next few years:
Cloud, Mobile and IoT (maybe)
Desktops, personal servers and any other non-cloud server workloads will be a rounding error.
AMD's SeaMicro was arguably the best shot at offering an alternate ARM-server commoditization model. AMD shut down SeaMicro in April [2].
[1] http://www.anandtech.com/show/8357/exploring-the-low-end-and... [2] http://www.theregister.co.uk/2015/04/16/amd_q1_2015_earnings...
The default java on Ubuntu trusty (14.04) and vivid (15.04) LTS releases is openjdk. From my 48 core aarch64 platform running trusty.
ed@arm64:~/jdk8/jdk8$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=14.04 DISTRIB_CODENAME=trusty DISTRIB_DESCRIPTION="Ubuntu Trusty Tahr (development branch)" ed@arm64:~/jdk8/jdk8$ uname -a Linux arm64 3.18.0-g57fcd51 #1 SMP Fri Jun 26 17:33:54 PDT 2015 aarch64 aarch64 aarch64 GNU/Linux ed@arm64:~/jdk8/jdk8$ java -version java version "1.7.0_51" OpenJDK Runtime Environment (IcedTea 2.4.6) (7u51-2.4.6-1ubuntu4) OpenJDK 64-Bit Server VM (build 25.0-b70, mixed mode) ed@arm64:~/jdk8/jdk8$
OpenJDK is also the default java on RHEL and fedora.
https://archive.fosdem.org/2014/schedule/event/openjdk_aarch...
From his Linkedin :
VP & Distinguished Engineer
Amazon.com
December 2008 – Present (6 years 11 months)
A member of the Amazon Web Services team. Specializes in infrastructure efficiency, reliability and scaling. Prior to joining Amazon.com, James was Microsoft Data Center Futures Architect. He has spent more than 20 years working on high-scale services, database management systems, and compilers.
And a couple of biographies :
http://highscalability.com/blog/2015/1/12/the-stunning-scale...
http://blog.mvdirona.com/http://webcache.googleusercontent.com/search?q=cache:CAYvaWj...