This section describes MemSQL software, hardware, and network 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 (Kernel 3.10)||2016.03 (Kernel 4.4)|
|CentOS||6.0 (Kernel 2.6)||7.2 (Kernel 3.10)|
|Debian||7.3 (Kernel 3.2)||8.3 (Kernel 3.16)|
|Fedora||20 (Kernel 3.11)||23 (Kernel 4.2)|
|OpenSUSE||13.1 (Kernel 3.11)||42.1 (Kernel 4.1)|
|Red Hat||6.0 (Kernel 2.6)||7.2 (Kernel 3.10)|
|Ubuntu||12.04 (Kernel 3.2)||14.04 (Kernel 3.13)|
On-Premises Hardware Requirements
MemSQL minimum hardware requirements are:
- 4 CPU cores
- 8 GB RAM
MemSQL recommends the following hardware for on-premises deployments:
|CPU||Two socket x64-based server with at least 4 total cores per socket.|
|Memory||At least 4GB per core, 32GB minimum per node.|
|Storage||Provide a storage system for each node with at least 3 times the capacity of main memory. SSD storage is recommended for columnstore workloads.|
- MemSQL rowstore 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 and AVX2 instruction set extensions, but it will run successfully on x64 systems without these extensions.
- For concurrent loads on columnstore tables, SSD storage will improve performance significantly compared to HDD storage.
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|
|extra large||64-bit||8||68.4||2 x 840||High|
Instruction Set Requirements
For best performance for columnstore query processing, run MemSQL on hardware that supports the Intel AVX2 instruction set extensions. Also, some built-in vector functions in MemSQL require AVX2. Almost all Intel x64 processors made since late 2013 (Haswell and later) support AVX2. MemSQL will operate without AVX2. See here regarding how to verify if your system supports AVX2.
MemSQL requires routing and firewall settings to be configured to:
- allow database clients (e.g. your application) to connect to the MemSQL aggregators
- allow all nodes in the cluster to talk to each other over the MemSQL protocol (3306) and MemSQL Agent protocol (9000). Note that these port assignments are configurable; for more information on how to change them, see the MemSQL Configuration and the AGENT-START topics.
|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.