Metin2 Server Setup: Choosing a FreeBSD Version and Planning Resources

Metin2 Server Setup: Choosing a FreeBSD Version and Planning Resources

Which FreeBSD version should you pick when setting up a Metin2 private server? A guide to channel architecture, MySQL memory planning, file permissions and sizing server resources by player count.

White Bilişim

Metin2 Server Setup: Choosing a FreeBSD Version and Planning Resources

Most people who set out to open a Metin2 pvp server hit their first wall at the operating system version. If your server files were compiled for FreeBSD 11.4 but the machine is running FreeBSD 14.0, the error messages you get have nothing to do with the game and everything to do with library incompatibility. This guide covers version selection, the resource cost of channel architecture, and MySQL memory planning.

Why FreeBSD?

Metin2 server files have traditionally been compiled on FreeBSD, and most of the ready made file packages circulating today still follow that tradition. Setups that run on Linux do exist, but if the files in your hands contain FreeBSD binaries, matching the version is the right path.

FreeBSD versionTypical useNote
11.4Older file packagesThe most common legacy version
12.2Mid age filesBroad compatibility
13.0Current filesPreferred for newer builds
14.0Compiling from scratchIf you build your own source

💡 If you are not sure which version you need, check the README or the build scripts shipped with your file package. The expected uname -r output is usually stated there.

Channel Architecture and Core Count

In Metin2 a channel is not a single process: each one is made up of several game processes that share out the map groups. This has a direct impact on resource planning:

  • Neither Ymir nor Gameforge publishes anything official about how those processes use cores
  • As the channel and process count grows, core count starts to matter
  • At the same core count, a higher-frequency processor leaves more headroom
Recommended core count ≈ (number of channels) + (2 for MySQL) + (1 for the system)

By that formula a four channel server wants roughly 7 cores, and in practice a plan with 8 to 10 cores runs comfortably.

MySQL Memory Planning

In Metin2 the database fills memory quickly as the player count rises. A practical split looks like this:

Total RAMAllocated to MySQLGame processesSuitable player count
8 GB2-3 GB4-5 GB100-300 online
12 GB4 GB7 GB300-800 online
16 GB5-6 GB9-10 GB800+ online

Set an explicit limit on the InnoDB buffer pool size in my.cnf:

[mysqld]
innodb_buffer_pool_size = 4G
innodb_flush_log_at_trx_commit = 2
max_connections = 500

⚠️ Without a limit, MySQL will gradually claim most of the available memory and the game processes will start to stutter. This is the most common answer to the question “why does my server freeze in the evenings”.

File Permissions and Running the Server

On FreeBSD the server files need their execute bit set:

chmod +x /usr/metin2/game/ch1/game
chmod +x /usr/metin2/db/db

Run the server under a dedicated user rather than root. Use screen or tmux to keep the processes alive in the background:

pkg install screen
screen -S ch1
cd /usr/metin2/game/ch1 && ./game

Press Ctrl + A followed by D to detach from the session.

Choosing a Plan by Player Count

The table below assumes a standard setup where the game and the database run on the same server:

ScaleRecommended planHardware
Testing and compilingENT-34 vCPU, 6 GB RAM, 60 GB NVMe
100-300 online · 2 channelsPRO-36 vCPU Ryzen, 8 GB RAM, 80 GB NVMe
300-800 online · 3-4 channelsPRO-510 vCPU Ryzen, 12 GB RAM, 120 GB NVMe
800+ online · many channelsPRO-612 vCPU Ryzen, 16 GB RAM, 160 GB NVMe

Once you push past 800 concurrent players, consider moving the database to a second server. Internal traffic between your servers is not billed.

Backups: The Critical Step People Skip

The most valuable asset a Metin2 server has is its character database. Do not open a server without daily automatic backups in place:

mysqldump --single-transaction -u root -p player > /backup/player_$(date +%F).sql

Run that command daily with cron and store the backups on a different server. For the details of setting up automated backups, see our guide on automatic backups on a Linux server.

Preparing for Attacks

Metin2 pvp servers are attack targets, especially on launch day and during events. What you can do at the server level is limited, because volumetric attacks have to be filtered at the infrastructure level. Find out in advance whether your hosting provider null routes your IP the moment an attack starts. That single detail is what saves your launch day.

Conclusion

A Metin2 server setup starts with the right FreeBSD version and stays alive on the right memory split. The processor share per channel, the memory allocated to MySQL, and regular backups are the three settings that determine how long your server lasts.

👉 For servers that come with FreeBSD installed, see our Metin2 server hosting page, or browse all of our plans on the game server hosting page.