Knight Online Server Setup: Windows Server and MSSQL Configuration

Knight Online Server Setup: Windows Server and MSSQL Configuration

Windows Server setup for a Knight Online private server, MSSQL memory limits, the resource profile of the Ebenezer and AIServer processes, and sizing your server by player count.

White Bilişim

Knight Online Server Setup: Windows Server and MSSQL Configuration

Most of the performance problems people hit when opening a Knight Online private server come from the MSSQL configuration, not from the game files. An MSSQL instance left on its defaults will gradually hold on to nearly all of the memory on the machine and squeeze the game processes out. This guide covers preparing Windows Server, planning MSSQL memory and sizing your resources.

Why Windows Server?

KO server files are built to run on Windows against an MSSQL database. Three main processes run together:

ProcessRoleResource behaviour
EbenezerMain game serverProcessed serially, benefits from clock speed
AIServerMonster AISpreads work by zone, benefits from core count
LoginLogin and account verificationLight load
MSSQLDatabaseMemory and disk heavy

💡 Mgame publishes no official hardware documentation for these processes. In practice Ebenezer benefits from clock speed and AIServer from core count, so pick a plan that covers both.

1. Preparing Windows Server

What to do right after installation:

  • Update the server and install the required Visual C++ Redistributable packages
  • Move the remote desktop port off the default 3389
  • Open only the ports you actually need on the firewall
  • Set a strong password on the administrator account
# Changing the RDP port (example: 53389)
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value 53389
New-NetFirewallRule -DisplayName "RDP-Custom" -Direction Inbound -Protocol TCP -LocalPort 53389 -Action Allow

⚠️ After changing the port, make sure the new rule was actually added before you restart the server. Otherwise you will lock yourself out.

2. Installing MSSQL and Setting the Memory Limit

During installation, choose Mixed Mode Authentication and give the sa account a strong password. The most critical setting to apply immediately after installation is the maximum memory limit:

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 4096;
RECONFIGURE;

A practical split looks like this:

Total RAMMSSQL max memoryGame processes + system
8 GB3 GB5 GB
10 GB3-4 GB6-7 GB
16 GB5-6 GB10-11 GB
32 GB10-12 GB20-22 GB

The rule is simple: roughly one third of total memory to MSSQL, the rest to the game processes.

3. Restoring the Database

Restore the .bak file you have:

RESTORE DATABASE KN_online
FROM DISK = 'C:\backup\KN_online.bak'
WITH MOVE 'KN_online' TO 'C:\MSSQL\DATA\KN_online.mdf',
     MOVE 'KN_online_log' TO 'C:\MSSQL\DATA\KN_online_log.ldf',
     REPLACE;

After the restore, remember to define the ODBC connection (32-bit). The KO processes connect through the 32-bit ODBC driver.

4. Process Startup Order

Order matters. Processes started in the wrong order will not find each other:

  1. The MSSQL service must be running
  2. The Login server
  3. Ebenezer
  4. AIServer

Set up a Task Scheduler rule or a monitoring script so the processes restart automatically if they crash.

5. Ports

PortProtocolPurpose
15100TCPLogin server
15001TCPGame server
1433TCPMSSQL (must be closed externally)

⚠️ Do not expose the MSSQL port (1433) to the internet. The database should only be reachable from the server itself or from a secure internal network.

Choosing a Package by Player Count

The table below assumes a setup where the game processes and MSSQL run on the same server:

ScaleSuggested packageSpecs
Test / developmentENT-46 vCPU, 8 GB RAM, 80 GB NVMe
100-300 onlinePRO-48 vCPU Ryzen, 10 GB RAM, 100 GB NVMe
300-700 onlinePRO-612 vCPU Ryzen, 16 GB RAM, 160 GB NVMe
700+ onlinePRO-820 vCPU Ryzen, 32 GB RAM, 320 GB NVMe

Once you go past 700 concurrent players, moving MSSQL onto a separate server gives the game processes room to breathe.

Backup Plan

Character and inventory data is the most critical asset a KO server has. Take a daily full backup and hourly log backups:

BACKUP DATABASE KN_online
TO DISK = 'D:\backup\KN_online_full.bak'
WITH INIT, COMPRESSION;

Store the backups on a different server. On an NVMe SSD this takes seconds and does not affect players.

Preparing for Attacks

KO private servers are attack targets, especially on launch day. Firewall rules inside the server are not enough against volumetric attacks, because the filtering has to happen at the infrastructure level. Find out in advance whether your provider null routes your IP during an attack.

Conclusion

Knight Online server setup runs stably when the MSSQL memory limit is set correctly and the processor is sized for peak load. The most common mistake is leaving MSSQL uncapped and then hunting for the problem in the game files.

👉 See our Knight Online server hosting page for servers with Windows Server preinstalled, or browse game server hosting for other titles.