Outdated Version

You are viewing an older version of this section. View current production version.

System Requirements min read


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 (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)

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 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.

Considerations:

  • 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
large 64-bit 8 30 EBS Only 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.

Network Requirements

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.
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.

Installing without the Minimum CPU and RAM Requirements

MemSQL is designed to run on machines with at least 4 CPU cores and 8 GB RAM. MemSQL can run on machines with lower resources, but users who choose to run MemSQL this way should understand that this could lead to a less ideal experience.

The only users who should deploy MemSQL this way are those who are:

  1. Running MemSQL on a development environment with low system resources, fully understanding that their test and production systems should have at least 4 CPU cores and 8 GB RAM to function optimally.
  2. Configuring MemSQL on aggregator nodes after having run performance benchmarks on their MemSQL cluster and determining it is acceptable for those machines to run with low resources during peak production workloads.

To run MemSQL on systems below the minimum system requirements, read the full installation guide and do the following:

  1. Install MemSQL Ops using the --ignore-min-requirements flag when running the install.sh script.
  2. Go through the standard process of installing MemSQL using MemSQL Ops.
  3. Add the following lines to the memsql.cnf file for each specific MemSQL node you would like to lower the requirements for:
    minimum_core_count = <NUM_CORES>
    minimum_memory_mb = <NUM_MB>
    
  4. Restart the MemSQL nodes for which you have modified the memsql.cnf file. You can do so using the memsql-ops memsql-restart command.