AWS Cassandra: Cassandra, NUMA and EC2
AWS Cassandra and NUMA
The i3.8xlarge
, c4.8xlarge
, m4.10xlarge
, and above EC2 instance types use more than 1 CPU, which means NUMA controls are available.
A good read on this is from Al Tolbert’s blog post.
The quickest way to tell if a machine is NUMA is to run “numactl –hardware”. -Al Tobey blog post on Cassandra tuning
NUMA stands for Non-Uniform Memory Architecture. Modern x86 CPUs contain an integrated memory controller. Multi-socket system, have two memory controllers. Each CPU gets a share of the memory. If one CPU socket needs memory that another CPU socket has, the memory is transferred. Transferring this memory between CPUs is more expensive than if the memory only existed in one CPUs memory. When a JVM thread only uses memory local to one CPU, things go fast, and if not slower (10 CPU cycles vs. 100 or some order of magnitude).