
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.
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:
| Process | Role | Resource behaviour |
|---|---|---|
| Ebenezer | Main game server | Processed serially, benefits from clock speed |
| AIServer | Monster AI | Spreads work by zone, benefits from core count |
| Login | Login and account verification | Light load |
| MSSQL | Database | Memory 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 RAM | MSSQL max memory | Game processes + system |
|---|---|---|
| 8 GB | 3 GB | 5 GB |
| 10 GB | 3-4 GB | 6-7 GB |
| 16 GB | 5-6 GB | 10-11 GB |
| 32 GB | 10-12 GB | 20-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:
- The MSSQL service must be running
- The Login server
- Ebenezer
- AIServer
Set up a Task Scheduler rule or a monitoring script so the processes restart automatically if they crash.
5. Ports
| Port | Protocol | Purpose |
|---|---|---|
| 15100 | TCP | Login server |
| 15001 | TCP | Game server |
| 1433 | TCP | MSSQL (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:
| Scale | Suggested package | Specs |
|---|---|---|
| Test / development | ENT-4 | 6 vCPU, 8 GB RAM, 80 GB NVMe |
| 100-300 online | PRO-4 | 8 vCPU Ryzen, 10 GB RAM, 100 GB NVMe |
| 300-700 online | PRO-6 | 12 vCPU Ryzen, 16 GB RAM, 160 GB NVMe |
| 700+ online | PRO-8 | 20 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.