<@U0A71G31CDV> what is the recommended architectur...
# questions-and-troubleshooting
t
@Rocky what is the recommended architecture for starrocks, x64 or arm64. we are planning to deploy starrocks on eks with ec2, and are in the stage to decide which architecture to be adapted.
r
For a StarRocks deployment on AWS EKS with EC2, the choice between x86_64 and ARM64 (Graviton) depends on whether you are prioritizing maximum raw performance or price-performance (cost savings). 1. Recommended for Maximum Performance: x86_64 If your primary goal is the fastest possible query execution, x86_64 is the recommended architecture. * Vectorization: StarRocks' core performance advantage comes from its vectorized execution engine, which is highly optimized for the AVX2 instruction set found in modern x86 CPUs. * EC2 Instance Types: Recommended types include the C6i/M6i or C7i/M7i families (Intel) and C6a/M6a (AMD). * Verification: Ensure your chosen instances support AVX2 by running
cat /proc/cpuinfo | grep avx2
on the node. 2. Recommended for Price-Performance: ARM64 (AWS Graviton) If you are looking to reduce your AWS bill while maintaining strong performance, ARM64 (specifically Graviton3 or newer) is a highly viable and officially supported choice. * Cost Efficiency: StarRocks benchmarks on AWS Graviton3 (m7g/c7g) have shown up to a 50% improvement in price-performance compared to previous generations. * Native Support: StarRocks has native ARM64 support. In newer versions (v3.0+), the stateless Compute Nodes (CN) used in shared-data architectures are particularly well-suited for Graviton instances. * EC2 Instance Types: Use C7g/M7g or C6g/M6g instances. Avoid older Graviton generations for production analytics workloads. Deployment Considerations for EKS * Consistency: Do not mix x86 and ARM64 nodes within the same StarRocks cluster for Backend (BE) or Compute Nodes (CN). Hardware heterogeneity can lead to inconsistent query performance and load balancing issues. * Shared-Data Architecture: If you are using StarRocks 3.x, consider the Shared-Data (存算分离) architecture. This allows you to use Graviton-based Compute Nodes (CN) while keeping your data in S3, making it very easy to scale or even switch architectures later without migrating data. * Docker Images: Ensure you use the correct multi-arch Docker images (e.g.,
starrocks/be-ubuntu
or
starrocks/cn-ubuntu
) which support both
linux/amd64
and
linux/arm64
. Summary Recommendation: * Choose x86_64 (C7i/M7i) if you have extremely latency-sensitive, heavy-compute workloads where every millisecond counts. * Choose ARM64 (C7g/M7g) for most standard production workloads to achieve the best balance of performance and lower cloud costs. References • faq/Deploy_faq.md • deployment/environment_configurations.md • deployment/plan_cluster.md • deployment/deployment_prerequisites.md • introduction/Architecture.md