---

slug: /prepare-servers
---

# Prepare servers

This section describes the number and specifications of servers required for deploying seekdb, as well as the software and hardware requirements for servers, including the operating system and BIOS settings.

## Server configuration requirements

Servers must meet the minimum configuration requirements shown in the following table.

| Product | Number of servers | Minimum configuration | Disk type |
|---------|-----------|-------------|-------------|
| seekdb | 1 | 1 CPU core, 2 GB available memory | SSD storage |

:::info
  * The log disk must be at least 1 times the memory size, and the data disk must meet the storage requirements for the target data volume.
  * The resource requirements listed here refer to the resources reserved for seekdb, not the total resources of the server itself.
:::

## Hardware environment requirements

### Memory

Run the following command to check the memory:

```shell
free -g
```

The return result is as follows:

```shell
              total        used        free      shared  buff/cache   available
Mem:            174          38           6           0         129         123
Swap:             0           0           0
```

Ensure that the available Mem value is sufficient to meet the configuration in the **Server configuration requirements** section above. If it is insufficient, you can try clearing the cache to free up some resources or replace the server.

Run the following command to clear the cache:

```shell
sudo sysctl -w vm.drop_caches=3
# or
sudo echo 3 > /proc/sys/vm/drop_caches
```

## Software environment requirements

### Operating system

#### seekdb operating system

seekdb can be installed on the Linux operating systems shown in the following table.

| Linux operating system | Version | Server architecture |
|-------------------------|-----------|-------------------------------|
| Rocky Linux | 9 | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| Alibaba Cloud Linux | 2, 3 | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| AnolisOS | 8.6 and later | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| KylinOS | V10 | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| UOS | V20 | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| NFSChina | 4.0 and later | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| Inspur kos | 5.8 | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| CentOS / Red Hat Enterprise Linux | 7.x, 8.x | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| SUSE Enterprise Linux | 12SP3 and later | x86_64 (including Hygon) |
| Debian | 8.3 and later | x86_64 (including Hygon) |
| openEuler | 20.03 LTS SP1/SP2 and 22.10 LTS | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |
| LinxOS | V6.0.99, V6.0.100 | x86_64 (including Hygon), ARM_64 (Kunpeng, Phytium) |

:::info
  
  The operating system must be configured with network and software manager (yum or zypper repositories).
:::

#### Check the operating system

##### Red Hat Enterprise Linux Server 7.X

Run the following command to check the operating system information:

```shell
cat /etc/redhat-release
```

The return result is as follows:

```shell
Red Hat Enterprise Linux Server release 7.2 (Maipo)
```

##### CentOS 7.X

Run the following command to check the operating system information:

```shell
cat /etc/redhat-release
```

The return result is as follows:

```shell
CentOS Linux release 7.2.1511 (Core)
```

##### Anolis OS 8.X

Run the following command to check the operating system information:

```shell
cat /etc/os-release
```

The return result is as follows:

```shell
NAME="Anolis OS"
VERSION="8.2"
ID="anolis"
ID_LIKE="rhel fedora centos"
VERSION_ID="8.2"
PLATFORM_ID="platform:an8"
PRETTY_NAME="Anolis OS 8.2"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"
```

##### Ubuntu

Run the following command to check the operating system information:

```shell
cat /etc/os-release
```

The return result is as follows:

```shell
NAME="Ubuntu"
VERSION="20.04.2 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.2 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
```

##### Debian 9

Run the following command to check the operating system information:

```shell
cat /etc/os-release
```

The return result is as follows:

```shell
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
VERSION_CODENAME=stretch
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
```

#### Check the kernel

Check the server kernel information to ensure that the operating system is 3.10.0 or later, and select the corresponding deployment package based on the kernel information.

Run the following command to check the kernel information:

```shell
uname -a
```

### seekdb server BIOS settings

#### BIOS options to disable

* Cstate

* Pstate

* EIST

* Power saving

#### BIOS options to configure

* Automatic Power on After Power Loss: Always on

* Intel Virtualization Technology: Enabled

* Hyper-threading: Enabled

* Hardware prefetcher: Enabled

* VT-d: Enabled

* SR-IOV: Enabled

* Turbo Mode: Enabled

* Energy performance: Set to maximum performance

  :::info
    
    The method for modifying BIOS settings varies by server. For specific operations, refer to the server operation manual.
  :::
