Linux vs Windows Optimization

The 7 Days to Die dedicated server runs on both Linux and Windows. Both work; both have quirks. The right OS is the one your operator is comfortable maintaining — there's no killer performance gap that justifies forcing yourself onto an OS you don't know. This guide covers the real differences (operator workflow, OS feature surface) and the OS-specific tuning that's worth doing on each.

Picking an OS

Linux (Ubuntu/Debian)Windows (Server or 10/11)
InstallSteamCMD +app_update 294420 validateSteamCMD on Windows or via Steam client
Service supervisorsystemd (or any init system)Service Control Manager + NSSM, or Task Scheduler
LogsPlain text file (path set in startserver.sh) or journalctl if wrapped in systemdPlain text file (path set in startserver.bat) or Event Log if wrapped via NSSM
RAM overhead from OSLower for headless servers — no GUI shellHigher unless using Server Core (no Desktop Experience)
Operator skill matchIf you're comfortable with shell, cron, systemdIf you're comfortable with PowerShell, Task Scheduler, RDP
Common gotchasFile-descriptor limits, AppArmor / SELinux, missing 32-bit libs on a fresh installAntivirus scanning the save folder, Defender real-time protection, power plan throttling

Performance differences between the two on equivalent hardware are usually within noise — what dominates is single-thread CPU speed, RAM bandwidth, and the number of zombies/players (see Blood Moon balancing). Don't switch OS for a 5% paper gain; switch only if you're more comfortable on the other side.

Linux Tuning

Run headless, no desktop

Use a server install (Ubuntu Server, Debian without GNOME/KDE) so the desktop environment isn't competing for RAM. The dedicated server is a pure Unity headless process — it has no use for X11 or Wayland.

File-descriptor limit

Unity-based servers can open many sockets and chunk files concurrently. The default per-process limit on stock Linux distros (often 1024 or 4096 soft, higher hard cap) is sometimes too low for busy or modded servers. Raise it for the user that runs the game:

# /etc/security/limits.d/7dtd.conf
<your-game-user> soft nofile 65535
<your-game-user> hard nofile 65535

If you run under systemd, also add LimitNOFILE=65535 to the unit's [Service] section. systemd's limit overrides PAM's limits.conf for services. Verify with cat /proc/<pid>/limits after start.

Run under systemd

A simple unit gives you supervised restart-on-crash, timer-based scheduled restarts, and journalctl integration:

# /etc/systemd/system/7dtd.service
[Unit]
Description=7 Days to Die dedicated server
After=network-online.target

[Service]
Type=simple
User=<your-game-user>
WorkingDirectory=/home/<your-game-user>/7dtd
ExecStart=/home/<your-game-user>/7dtd/startserver.sh -configfile=serverconfig.xml
Restart=on-failure
RestartSec=10
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

Pair with the timer pattern from Scheduling Automated Restarts for nightly graceful restarts.

Required 32-bit libraries

SteamCMD itself is 32-bit on most distros. On a 64-bit Debian/Ubuntu install, you'll need lib32gcc-s1 (or lib32gcc1 on older releases). Install before SteamCMD's first run, otherwise SteamCMD silently fails to bootstrap.

Disable swap or tune vm.swappiness

If the server starts swapping, performance falls off a cliff — Unity's GC plus swap is brutal. Either size your RAM so swap is never needed, or set vm.swappiness=10 (default 60) to discourage the kernel from swapping while RAM is available. Don't disable swap entirely on small VPS instances; the OOM killer is worse.

Windows Tuning

Use Server Core or a clean install

If you're standing up a dedicated host, Windows Server with no Desktop Experience (Server Core) saves RAM and reduces background processes. For a home dedicated box, a clean Windows 10/11 install with non-essential apps removed is fine.

Power plan

Set the system power plan to High Performance (or Ultimate Performance, available on Workstation/Server SKUs). Default Windows power plans down-clock the CPU during low load, which causes mid-tick stutters when the server suddenly needs full speed (e.g. Blood Moon spawn waves). powercfg /setactive SCHEME_MIN from an elevated PowerShell prompt sets High Performance.

Antivirus / Defender exclusions

Real-time AV scanning of the save folder while the server is writing chunks causes intermittent stalls and can — in worst cases — hold a write open long enough that the next save tick fails. Add exclusions:

  • The dedicated-server install directory (e.g. C:\7DaysToDieServer\)
  • The save data path (default is under %APPDATA%\7DaysToDie\Saves\ for the user running the server, or wherever your startserver.bat redirects it)
  • The 7DaysToDieServer.exe process

For Defender: Settings → Virus & threat protection → Exclusions.

Process priority & affinity

Setting 7DaysToDieServer.exe to Above Normal priority helps the server win CPU time over background tasks. Higher than that (High / Realtime) can starve other system services and is rarely worth the risk on Windows.

If your CPU has efficiency-cores (Intel 12th gen+), pin the process to performance-cores via Task Manager → Details → Set affinity. The server is heavily single-thread-sensitive; e-cores are slower per thread.

Run as a service, not RDP'd-in

Use NSSM (Non-Sucking Service Manager) to wrap the server as a Windows Service so it survives RDP disconnects and reboots. Without this, the server runs only while a logged-in session holds the process — log out and the server dies.

Tuning That Applies to Both

  • SSD for the save directory. Chunk writes are frequent and small. Spinning rust causes save-tick stalls that look like server lag.
  • Match RAM to player count. A safe rule: 4 GB for the server itself + 0.5–1 GB per concurrent player + headroom for the OS. Modded servers can double these numbers.
  • Pin to a non-virtualized host if you can. Cheap shared VPS plans oversell CPU, and Unity dedicated servers expose that immediately. Dedicated CPU cores beat shared cores at the same advertised clock.
  • Schedule restarts. See Scheduling Automated Restarts. The OS doesn't matter for this — both sides benefit.