System Requirements
The following are system requirements for running HSE applications.
Hardware
Hardware requirements are largely dictated by the application embedding HSE and the amount of data stored. The following are general guidelines.
- Architecture: 64-bit Intel® and AMD (x86_64); 64-bit IBM Z® (s390x)
- Memory: 32 GB or more
- Block Storage: SSD volumes only; use NVMe for best performance
- Persistent Memory (optional): must support a DAX-enabled file system
If a KVDB media class is configured on multiple
block storage devices, such
as when using XFS with LVM, performance can be significantly improved by
balancing these devices across NUMA nodes.
Tools like lstopo
can
be helpful in creating and verifying a balanced configuration.
Operating System
HSE should work with most modern Linux® 64-bit operating system distributions. We have run HSE on the following.
- Red Hat® Enterprise Linux® 8 (RHEL 8)
- Ubuntu® 18.04 and 20.04
- Fedora® 34 and 35
- AlmaLinux OS 8
File System
HSE requires the following file system features.
fallocate(2)
with modes zero (0),FALLOC_FL_PUNCH_HOLE
,FALLOC_FL_KEEP_SIZE
openat(2)
with flagO_DIRECT
- DAX if the file system will host a pmem media class
Several common file systems support these features, including XFS and ext4. For most HSE applications we recommend using XFS.
Info
File systems hosting pmem media classes should be mounted with the
option -o dax=always
.
Virtual Memory
HSE performance and quality of service (QoS) can be significantly improved by configuring huge pages and other virtual memory tuning parameters. For most HSE applications we recommend the following settings.
sudo sysctl -w vm.nr_hugepages=256
sudo sysctl -w vm.swappiness=1
sudo sysctl -w vm.dirty_background_ratio=5
sudo sysctl -w vm.dirty_ratio=15