This section describes MemSQL software, hardware, and network requirements.
Software Requirements
MemSQL requires a 64-bit Linux-based operating system. MemSQL will not run on 32-bit Linux. The following distributions are officially supported:
Distribution | Minimum Version | Recommended Version |
---|---|---|
Amazon AMI | 2014.03 | 2016.03 |
CentOS | 6.0 | 7.2 |
Debian | 7.3 | 8.3 |
Fedora | 20 | 23 |
OpenSUSE | 13.1 | 42.1 |
Red Hat | 6.0 | 7.2 |
Ubuntu | 12.04 | 14.04 |
Hardware Requirements
On-Premises Hardware Requirements
MemSQL minimum hardware requirements are:
- 4 CPU cores
- 8 GB RAM
MemSQL recommends the following hardware for on-premises deployments:
Component | Recommendation |
---|---|
CPU | Two socket x86-64 based server with 8 cores. At a minimum, Intel Core i3 or better processor. |
Memory | >32GB per host |
Hard Drive | Columnstore: SSD with at least 3X memory capacity Rowstore: 7200RPM+ HDD with at least 3X memory capacity |
Considerations:
- MemSQL can run on machines with less than 8GB RAM, but this is not recommended.
- MemSQL storage capacity is limited by the amount of RAM on the host machine. Increasing RAM increases the amount of available data storage.
- It is strongly recommended to run MemSQL leaf nodes on machines all with equal capacity
- MemSQL is optimized for architectures supporting SSE4.2, but it will run successfully on most earlier architectures.
- MemSQL’s Columnstore will run on non-SSDs, but LOAD DATA performance will be severely degraded
Cloud Environment Hardware Requirements
The following table shows the recommended resources to use when deploying MemSQL in a cloud environment, including several options to meet different application performance requirements. MemSQL will work with most public or private cloud providers, as long as the selected resource has comparable specifications to those listed below. All instances should have high network performance and must be a supported 64-bit Linux distribution. All instances should be geographically deployed in a single region. Instance types that support Enhanced Networking should have it enabled.
Instance Type | Processor Architecture | vCPU | Memory (GB) | Instance Storage | Network |
---|---|---|---|---|---|
small | 64-bit | 8 | 7 | 4 x 420 | High |
medium | 64-bit | 4 | 15 | 4 x 420 | High |
large | 64-bit | 8 | 30 | EBS Only | High |
extra large | 64-bit | 8 | 68.4 | 2 x 840 | High |
Network Requirements
MemSQL requires routing and firewall settings to be configured to:
- allow database clients (eg, your application) to connect to the MemSQL aggregators
- allow all nodes in the cluster to talk to each other over the MySQL protocol (3306) and MemSQL Agent protocol (9000)
Port | Source | Destination |
---|---|---|
3306 | Clients | Aggregator Nodes |
3306 | All MemSQL Nodes | All MemSQL Nodes |
9000 | All MemSQL Nodes | All MemSQL Nodes |
We also highly recommend configuring your firewall to prevent other hosts on the Internet from connecting to MemSQL.