
Silkroad Server Setup: MSSQL Configuration and Process Management
A guide to setting up a Silkroad Online private server: Windows Server preparation, MSSQL memory limits, database restore, process startup order and port security.
Silkroad Server Setup
Most of the performance problems people hit while setting up a Silkroad Online private server come not from the game files but from the MSSQL configuration. This guide covers Windows Server preparation, database settings and process management.
Server Architecture
Silkroad runs several interconnected processes together:
| Process | Role | Resource behaviour |
|---|---|---|
| GatewayServer | Initial connection and server list | Light load |
| AgentServer | Core game logic | Processor intensive |
| DownloadServer | Client update files | Network intensive |
| MSSQL | Database | Memory and disk intensive |
💡 Joymax publishes nothing official about how the server processes use cores. Plan your resources for peak load such as job wars and unique spawns rather than around architectural assumptions.
1. Windows Server Preparation
First things to do after installation:
- Install the required Visual C++ Redistributable packages
- Change the remote desktop port from the default 3389
- Set a strong password on the administrator account
- Open only the necessary ports in the firewall
New-NetFirewallRule -DisplayName "Silkroad-Gateway" -Direction Inbound -Protocol TCP -LocalPort 15779 -Action Allow
New-NetFirewallRule -DisplayName "Silkroad-Agent" -Direction Inbound -Protocol TCP -LocalPort 15884 -Action Allow2. MSSQL Installation and Memory Limit
Choose Mixed Mode Authentication during installation. The most critical setting to apply right after installation is the memory limit:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 4096;
RECONFIGURE;A practical split:
| Total RAM | MSSQL maximum | 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 |
⚠️ Without a limit, MSSQL will gradually claim almost all available memory. That is the most common answer to the question “why does the server freeze in the evenings”.
3. Restoring the Databases
Silkroad typically uses several databases (SRO_VT_SHARD, SRO_VT_ACCOUNT, SRO_VT_LOG):
RESTORE DATABASE SRO_VT_SHARD
FROM DISK = 'C:\backup\SRO_VT_SHARD.bak'
WITH MOVE 'SRO_VT_SHARD' TO 'C:\MSSQL\DATA\SRO_VT_SHARD.mdf',
MOVE 'SRO_VT_SHARD_log' TO 'C:\MSSQL\DATA\SRO_VT_SHARD_log.ldf',
REPLACE;After the restore, remember to update the IP and port values in _RefShardTable to match your own server. Half of all failed installations come down to skipping this step.
4. Process Startup Order
Order matters; processes started in the wrong sequence cannot find each other:
- MSSQL service running
- GatewayServer
- AgentServer
- DownloadServer
To make processes restart automatically after a crash, set up a Task Scheduler rule or a monitoring script.
5. Port Security
| Port | Protocol | Should it be publicly open? |
|---|---|---|
| 15779 | TCP | Yes (Gateway) |
| 15884 | TCP | Yes (Agent) |
| 1433 | TCP | No (MSSQL) |
⚠️ Do not expose the MSSQL port to the internet. The database should only be reachable from the server itself or from a secure internal network. An open 1433 port is one of the most common reasons private servers lose their data.
6. Backup Plan
Character and inventory data is your most critical asset:
BACKUP DATABASE SRO_VT_SHARD
TO DISK = 'D:\backup\shard_full.bak'
WITH INIT, COMPRESSION;Take a full backup daily and keep the backups on a different server. On an NVMe SSD the operation takes seconds and players never notice it.
7. Performance Monitoring
When your server starts to stutter, check these three things:
- MSSQL memory usage: is the limit actually being enforced?
- AgentServer CPU usage: if one core sits pinned at 100%, move to a higher-frequency plan
- Disk queue length: if it is high, consider moving the database to separate storage
Conclusion
A Silkroad server setup runs stably once 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.
👉 For package matching, see our Silkroad server rental page, and for other MMORPG options take a look at our game server rental page.